Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Add navigation widget and compiled succesfully.
  • Loading branch information
ismailsunni committed Jun 6, 2019
1 parent 8d64301 commit f87043d
Show file tree
Hide file tree
Showing 5 changed files with 106 additions and 0 deletions.
6 changes: 6 additions & 0 deletions src/app/3d/qgs3dmapcanvas.cpp
Expand Up @@ -19,12 +19,14 @@
#include <Qt3DExtras/Qt3DWindow>
#include <Qt3DRender/QRenderCapture>
#include <QMouseEvent>
#include <QPushButton>

#include "qgscameracontroller.h"
#include "qgs3dmapsettings.h"
#include "qgs3dmapscene.h"
#include "qgs3dmaptool.h"
#include "qgswindow3dengine.h"
#include "qgs3dnavigationwidget.h"


Qgs3DMapCanvas::Qgs3DMapCanvas( QWidget *parent )
Expand All @@ -40,9 +42,13 @@ Qgs3DMapCanvas::Qgs3DMapCanvas( QWidget *parent )

mContainer = QWidget::createWindowContainer( mEngine->window() );

mNavigationWidget = new Qgs3DNavigationWidget();
mNavigationWidget->setParent(this);

QHBoxLayout *hLayout = new QHBoxLayout( this );
hLayout->setMargin( 0 );
hLayout->addWidget( mContainer, 1 );
hLayout->addWidget( mNavigationWidget );

mEngine->window()->setCursor( Qt::OpenHandCursor );
}
Expand Down
4 changes: 4 additions & 0 deletions src/app/3d/qgs3dmapcanvas.h
Expand Up @@ -30,6 +30,7 @@ class Qgs3DMapTool;
class QgsWindow3DEngine;
class QgsCameraController;
class QgsPointXY;
class Qgs3DNavigationWidget;


class Qgs3DMapCanvas : public QWidget
Expand Down Expand Up @@ -95,6 +96,9 @@ class Qgs3DMapCanvas : public QWidget

//! Active map tool that receives events (if NULLPTR then mouse/keyboard events are used for camera manipulation)
Qgs3DMapTool *mMapTool = nullptr;

//! On-Screen Navigation widget.
Qgs3DNavigationWidget *mNavigationWidget = nullptr;
};

#endif // QGS3DMAPCANVAS_H
51 changes: 51 additions & 0 deletions src/app/3d/qgs3dnavigationwidget.cpp
@@ -0,0 +1,51 @@
#include <QGridLayout>
#include <QPushButton>
#include <QDial>

#include "qgs3dnavigationwidget.h"

Qgs3DNavigationWidget::Qgs3DNavigationWidget(QWidget *parent) : QWidget(parent)
{
// Zoom in button
mZoomInButton = new QPushButton(this);
mZoomInButton->setText(QStringLiteral("+"));
mZoomInButton->setToolTip(QStringLiteral("Zoom In"));
mZoomInButton->setAutoRepeat(true);

// Zoom out button
mZoomOutButton = new QPushButton(this);
mZoomOutButton->setText(QStringLiteral("-"));
mZoomOutButton->setToolTip(QStringLiteral("Zoom Out"));
mZoomOutButton->setAutoRepeat(true);

// Tilt up button
mTiltUpButton = new QPushButton(this);
mTiltUpButton->setText(QString::fromUtf8("\u25B3"));
mTiltUpButton->setToolTip(QStringLiteral("Tilt Up"));
mTiltUpButton->setAutoRepeat(true);

// Tilt down button
mTiltDownButton = new QPushButton(this);
mTiltDownButton ->setText(QString::fromUtf8("\u25BD"));
mTiltDownButton->setToolTip(QStringLiteral("Tilt Down"));
mTiltDownButton->setAutoRepeat(true);

// Rotate scene dial
mRotateSceneDial = new QDial(this);
mRotateSceneDial->setWrapping(true);
mRotateSceneDial->setMaximum(359);
mRotateSceneDial->setValue(180);

QGridLayout *gridLayout = new QGridLayout(this);
gridLayout->addWidget(mTiltUpButton, 0, 0);
gridLayout->addWidget(mTiltDownButton, 3, 0);
gridLayout->addWidget(mZoomInButton, 0, 3);
gridLayout->addWidget(mZoomOutButton, 3, 3);
gridLayout->addWidget(mRotateSceneDial, 1, 1, 2, 2);

}

Qgs3DNavigationWidget::~Qgs3DNavigationWidget()
{

}
43 changes: 43 additions & 0 deletions src/app/3d/qgs3dnavigationwidget.h
@@ -0,0 +1,43 @@
/***************************************************************************
qgs3dnavigationwidget.h
--------------------------------------
Date : July 2017
Copyright : (C) 2017 by Martin Dobias
Email : wonder dot sk at gmail dot com
***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/

#ifndef QGS3DNAVIGATIONWIDGET_H
#define QGS3DNAVIGATIONWIDGET_H

#include <QWidget>
#include <QPushButton>
#include <QDial>
#include <QGridLayout>

class Qgs3DNavigationWidget : public QWidget
{
Q_OBJECT
public:
Qgs3DNavigationWidget(QWidget *parent = nullptr);
~Qgs3DNavigationWidget();

signals:

public slots:

private:
QPushButton *mZoomInButton = nullptr;
QPushButton *mZoomOutButton = nullptr;
QPushButton *mTiltUpButton = nullptr;
QPushButton *mTiltDownButton = nullptr;
QDial *mRotateSceneDial = nullptr;
};

#endif // QGS3DNAVIGATIONWIDGET_H
2 changes: 2 additions & 0 deletions src/app/CMakeLists.txt
Expand Up @@ -485,6 +485,7 @@ IF (WITH_3D)
3d/qgs3dmapconfigwidget.cpp
3d/qgs3dmaptool.cpp
3d/qgs3dmaptoolidentify.cpp
3d/qgs3dnavigationwidget.cpp
3d/qgslightswidget.cpp
3d/qgsline3dsymbolwidget.cpp
3d/qgsmesh3dsymbolwidget.cpp
Expand All @@ -507,6 +508,7 @@ IF (WITH_3D)
3d/qgs3dmapconfigwidget.h
3d/qgs3dmaptool.h
3d/qgs3dmaptoolidentify.h
3d/qgs3dnavigationwidget.h
3d/qgslightswidget.h
3d/qgsline3dsymbolwidget.h
3d/qgsmesh3dsymbolwidget.h
Expand Down

0 comments on commit f87043d

Please sign in to comment.