QGIS API Documentation 3.99.0-Master (d270888f95f)
Loading...
Searching...
No Matches
qgsadvanceddigitizingfloater.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsadvanceddigitizingfloater.cpp - floater for CAD tools
3 ----------------------
4 begin : May 2019
5 copyright : (C) Olivier Dalang
7 ***************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
15
16#ifndef QGSADVANCEDDIGITIZINGFLOATER
17#define QGSADVANCEDDIGITIZINGFLOATER
18
19#include "ui_qgsadvanceddigitizingfloaterbase.h"
20
21#include "qgis_gui.h"
22#include "qgis_sip.h"
24
25#include <QPointer>
26#include <QString>
27#include <QWidget>
28
29class QgsMapCanvas;
31
42class GUI_EXPORT QgsAdvancedDigitizingFloater : public QWidget, private Ui::QgsAdvancedDigitizingFloaterBase
43{
44 Q_OBJECT
45
46 public:
48 enum class FloaterItem : int SIP_ENUM_BASETYPE( IntFlag )
49 {
50 XCoordinate = 1 << 1,
51 YCoordinate = 1 << 2,
52 MCoordinate = 1 << 3,
53 ZCoordinate = 1 << 4,
54 Angle = 1 << 5,
55 CommonAngleSnapping = 1 << 6,
56 Distance = 1 << 7,
57 Bearing = 1 << 8,
58 Weight = 1 << 9,
59 };
60 Q_DECLARE_FLAGS( FloaterItems, FloaterItem )
61 Q_FLAG( FloaterItem )
62
63
64
71
77 bool active();
78
86
87 public slots:
88
96 void setActive( bool active );
97
105 void setItemVisibility( const QgsAdvancedDigitizingFloater::FloaterItem &item, bool visible );
106
107 public slots:
108
114 void changeWeight( const QString &text );
115
121 void enabledChangedWeight( bool enabled );
122
127 void focusOnWeight();
128
129 private slots:
130
131 void changeX( const QString &text );
132 void changeY( const QString &text );
133 void changeZ( const QString &text );
134 void changeM( const QString &text );
135 void changeCommonAngleSnapping( double angle );
136 void changeDistance( const QString &text );
137 void changeAngle( const QString &text );
138 void changeBearing( const QString &text );
139 void changeLockX( bool locked );
140 void changeLockY( bool locked );
141 void changeLockZ( bool locked );
142 void changeLockM( bool locked );
143 void changeLockDistance( bool locked );
144 void changeLockAngle( bool locked );
145 void changeRelativeX( bool relative );
146 void changeRelativeY( bool relative );
147 void changeRelativeZ( bool relative );
148 void changeRelativeM( bool relative );
149 // void changeRelativeDistance( bool relative ); // doesn't happen
150 void changeRelativeAngle( bool relative );
151 void focusOnX();
152 void focusOnY();
153 void focusOnZ();
154 void focusOnM();
155 void focusOnAngle();
156 void focusOnDistance();
157 void enabledChangedX( bool enabled );
158 void enabledChangedY( bool enabled );
159 void enabledChangedZ( bool enabled );
160 void enabledChangedM( bool enabled );
161 void enabledChangedAngle( bool enabled );
162 void enabledChangedDistance( bool enabled );
163 void enabledCommonAngleSnapping( bool enabled );
164 void enabledChangedBearing( bool enabled );
165
166 private:
168 QgsMapCanvas *mMapCanvas = nullptr;
169
171 QPointer<QgsAdvancedDigitizingDockWidget> mCadDockWidget;
172
177 bool eventFilter( QObject *obj, QEvent *event ) override SIP_FORCE;
178
183 void updatePos( const QPoint &pos );
184
188 void hideIfDisabled();
189
191 bool mActive = false;
192
193 FloaterItems mItemsVisibility;
194};
195
196#endif // QGSADVANCEDDIGITIZINGFLOATER_H
A dockable widget used to handle the CAD tools on top of a selection of map tools.
QgsAdvancedDigitizingFloater(QgsMapCanvas *canvas, QgsAdvancedDigitizingDockWidget *cadDockWidget)
Create an advanced digitizing floater widget.
void setItemVisibility(const QgsAdvancedDigitizingFloater::FloaterItem &item, bool visible)
Set whether the floater item should be visible or not.
bool itemVisibility(const QgsAdvancedDigitizingFloater::FloaterItem &item) const
Returns true if the floater item visibility setting is enabled.
void setActive(bool active)
Set whether the floater should be active or not.
void enabledChangedWeight(bool enabled)
Shows or hides the weight widget in the floater for NURBSCurve.
void focusOnWeight()
Requests focus on the weight input field for NURBSCurve.
void changeWeight(const QString &text)
Updates the weight value displayed in the floater for NURBSCurve.
bool active()
Whether the floater is active or not.
Map canvas is a class for displaying all GIS data types on a canvas.
#define SIP_FORCE
Definition qgis_sip.h:139
#define SIP_ENUM_BASETYPE(type)
Definition qgis_sip.h:275