-
-
Notifications
You must be signed in to change notification settings - Fork 3k
/
qgsprojectproperties.h
239 lines (187 loc) · 6.89 KB
/
qgsprojectproperties.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
/***************************************************************************
qgsprojectproperties.h
Set various project properties (inherits qgsprojectpropertiesbase)
-------------------
begin : May 18, 2004
copyright : (C) 2004 by Gary E.Sherman
email : sherman at mrcc.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. *
* *
***************************************************************************/
#include "qgsoptionsdialogbase.h"
#include "ui_qgsprojectpropertiesbase.h"
#include "qgis.h"
#include "qgsunittypes.h"
#include "qgsguiutils.h"
#include "qgshelp.h"
#include "qgis_app.h"
class QgsMapCanvas;
class QgsRelationManagerDialog;
class QgsStyle;
class QgsExpressionContext;
class QgsLayerTreeGroup;
class QgsMetadataWidget;
class QgsTreeWidgetItem;
/**
* Dialog to set project level properties
\note actual state is stored in QgsProject singleton instance
*/
class APP_EXPORT QgsProjectProperties : public QgsOptionsDialogBase, private Ui::QgsProjectPropertiesBase
{
Q_OBJECT
public:
//! Constructor
QgsProjectProperties( QgsMapCanvas *mapCanvas, QWidget *parent = nullptr, Qt::WindowFlags fl = QgsGuiUtils::ModalDialogFlags );
QMap< QString, QString > pageWidgetNameMap();
void setCurrentPage( const QString & );
~QgsProjectProperties() override;
/**
Every project has a title
*/
QString title() const;
void title( QString const &title );
//! Returns the projection as a WKT string
QString projectionWkt();
public slots:
/**
* Slot called when apply button is pressed or dialog is accepted
*/
void apply();
/**
* Slot to show the projections tab when the dialog is opened
*/
void showProjectionsTab();
/**
* Let the user add a scale to the list of project scales
* used in scale combobox instead of global ones */
void pbnAddScale_clicked();
/**
* Let the user remove a scale from the list of project scales
* used in scale combobox instead of global ones */
void pbnRemoveScale_clicked();
//! Let the user load scales from file
void pbnImportScales_clicked();
//! Let the user load scales from file
void pbnExportScales_clicked();
//! A scale in the list of project scales changed
void scaleItemChanged( QListWidgetItem *changedScaleItem );
//! generate the ts file with the locale selected in the checkbox
void onGenerateTsFileButton() const;
/**
* Set WMS default extent to current canvas extent
*/
void pbnWMSExtCanvas_clicked();
void pbnWMSAddSRS_clicked();
void pbnWMSRemoveSRS_clicked();
void pbnWMSSetUsedSRS_clicked();
void mAddWMSPrintLayoutButton_clicked();
void mRemoveWMSPrintLayoutButton_clicked();
void mAddLayerRestrictionButton_clicked();
void mRemoveLayerRestrictionButton_clicked();
void mWMSInspireScenario1_toggled( bool on );
void mWMSInspireScenario2_toggled( bool on );
/**
* Slots to select/deselect all the WFS layers
*/
void pbnWFSLayersSelectAll_clicked();
void pbnWFSLayersDeselectAll_clicked();
/**
* Slots to select/deselect all the WCS layers
*/
void pbnWCSLayersSelectAll_clicked();
void pbnWCSLayersDeselectAll_clicked();
/**
* Slots to launch OWS test
*/
void pbnLaunchOWSChecker_clicked();
/**
* Slots for Styles
*/
void pbtnStyleManager_clicked();
void pbtnStyleMarker_clicked();
void pbtnStyleLine_clicked();
void pbtnStyleFill_clicked();
void pbtnStyleColorRamp_clicked();
/**
* Slot to link WFS checkboxes
*/
void cbxWFSPubliedStateChanged( int aIdx );
/**
* Slot to link WCS checkboxes
*/
void cbxWCSPubliedStateChanged( int aIdx );
/**
* If user changes the CRS, set the corresponding map units
*/
void srIdUpdated();
/* Update ComboBox accorindg to the selected new index
* Also sets the new selected Ellipsoid. */
void updateEllipsoidUI( int newIndex );
//! sets the right ellipsoid for measuring (from settings)
void projectionSelectorInitialized();
void mButtonAddColor_clicked();
signals:
//! Signal used to inform listeners that the mouse display precision may have changed
void displayPrecisionChanged();
//! Signal used to inform listeners that project scale list may have changed
void scalesChanged( const QStringList &scales = QStringList() );
private:
//! Formats for displaying coordinates
enum CoordinateFormat
{
DecimalDegrees, //!< Decimal degrees
DegreesMinutes, //!< Degrees, decimal minutes
DegreesMinutesSeconds, //!< Degrees, minutes, seconds
MapUnits, //! Show coordinates in map units
};
QgsRelationManagerDialog *mRelationManagerDlg = nullptr;
QgsMapCanvas *mMapCanvas = nullptr;
QgsStyle *mStyle = nullptr;
QgsMetadataWidget *mMetadataWidget = nullptr;
QgsCoordinateReferenceSystem mCrs;
void populateStyles();
void editSymbol( QComboBox *cbo );
/**
* Function to save non-base dialog states
*/
void saveState();
/**
* Function to restore non-base dialog states
*/
void restoreState();
/**
* Reset the Python macros
*/
void resetPythonMacros();
// List for all ellispods, also None and Custom
struct EllipsoidDefs
{
QString acronym;
QString description;
double semiMajor;
double semiMinor;
};
QList<EllipsoidDefs> mEllipsoidList;
int mEllipsoidIndex;
//! populate WMTS tree
void popupulateWmtsTree( QgsLayerTreeGroup *treeGroup, QgsTreeWidgetItem *treeItem, const QStringList &groupNames, const QStringList &layerIds );
//! Check OWS configuration
void checkOWS( QgsLayerTreeGroup *treeGroup, QStringList &owsNames, QStringList &encodingMessages );
//! Populates list with ellipsoids from Sqlite3 db
void populateEllipsoidList();
//! Create a new scale item and add it to the list of scales
QListWidgetItem *addScaleToScaleList( const QString &newScale );
//! Add a scale item to the list of scales
void addScaleToScaleList( QListWidgetItem *newItem );
static const char *GEO_NONE_DESC;
void updateGuiForMapUnits();
void showHelp();
void populateRequiredLayers();
void applyRequiredLayers();
};