QGIS API Documentation 3.32.0-Lima (311a8cb8a6)
qgsgui.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsgui.h
3 --------
4 begin : May 2017
5 copyright : (C) 2017 by Nyall Dawson
6 email : nyall dot dawson at gmail dot com
7 ***************************************************************************/
8
9/***************************************************************************
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 ***************************************************************************/
17
18#ifndef QGSGUI_H
19#define QGSGUI_H
20
21#include "qgis_gui.h"
22#include "qgis_sip.h"
23#include <QWidget>
24#include <memory>
25
32class QgsNative;
37class QgsProcessingRecentAlgorithmLog;
38class QgsWindowManagerInterface;
44class QgsMessageBar;
52
59class GUI_EXPORT QgsGui : public QObject
60{
61 Q_OBJECT
62
63 public:
64
69 {
70 UseCrsOfFirstLayerAdded = 1,
71 UsePresetCrs = 2,
72 };
73 Q_ENUM( ProjectCrsBehavior )
74
75
76 QgsGui( const QgsGui &other ) = delete;
77
79 QgsGui &operator=( const QgsGui &other ) = delete;
80
84 static QgsGui *instance();
85
91 SIP_SKIP static QgsNative *nativePlatformInterface();
92
97 static QgsSettingsRegistryGui *settingsRegistryGui() SIP_KEEPREFERENCE;
98
102 static QgsEditorWidgetRegistry *editorWidgetRegistry() SIP_KEEPREFERENCE;
103
107 static QgsSourceSelectProviderRegistry *sourceSelectProviderRegistry() SIP_KEEPREFERENCE;
108
112 static QgsShortcutsManager *shortcutsManager();
113
117 static QgsLayerTreeEmbeddedWidgetRegistry *layerTreeEmbeddedWidgetRegistry() SIP_KEEPREFERENCE;
118
122 static QgsMapLayerActionRegistry *mapLayerActionRegistry() SIP_KEEPREFERENCE;
123
127 static QgsLayoutItemGuiRegistry *layoutItemGuiRegistry() SIP_KEEPREFERENCE;
128
134 static QgsAnnotationItemGuiRegistry *annotationItemGuiRegistry() SIP_KEEPREFERENCE;
135
140 static QgsProcessingGuiRegistry *processingGuiRegistry() SIP_KEEPREFERENCE;
141
146 static QgsNumericFormatGuiRegistry *numericFormatGuiRegistry() SIP_KEEPREFERENCE;
147
152 static QgsCodeEditorColorSchemeRegistry *codeEditorColorSchemeRegistry() SIP_KEEPREFERENCE;
153
158 static QgsProcessingRecentAlgorithmLog *processingRecentAlgorithmLog();
159
165 static QgsDataItemGuiProviderRegistry *dataItemGuiProviderRegistry() SIP_KEEPREFERENCE;
166
171 static QgsProjectStorageGuiRegistry *projectStorageGuiRegistry() SIP_KEEPREFERENCE;
172
177 static QgsProviderGuiRegistry *providerGuiRegistry() SIP_KEEPREFERENCE;
178
183 static QgsSensorGuiRegistry *sensorGuiRegistry() SIP_KEEPREFERENCE;
184
189 static QgsSubsetStringEditorProviderRegistry *subsetStringEditorProviderRegistry() SIP_KEEPREFERENCE;
190
195 static QgsProviderSourceWidgetProviderRegistry *sourceWidgetProviderRegistry() SIP_KEEPREFERENCE;
196
201 static QgsRelationWidgetRegistry *relationWidgetRegistry() SIP_KEEPREFERENCE;
202
208 static QgsMapToolShapeRegistry *mapToolShapeRegistry() SIP_SKIP;
209
214 static QgsHistoryProviderRegistry *historyProviderRegistry() SIP_KEEPREFERENCE;
215
220 static QgsSettingsEditorWidgetRegistry *settingsEditorWidgetRegistry() SIP_KEEPREFERENCE;
221
226 static void enableAutoGeometryRestore( QWidget *widget, const QString &key = QString() );
227
233 static QgsWindowManagerInterface *windowManager();
234
240 static void setWindowManager( QgsWindowManagerInterface *manager SIP_TRANSFER );
241
247 {
248 HigMenuTextIsTitleCase = 1 << 0,
249 HigDialogTitleIsTitleCase = 1 << 1
250 };
251 Q_DECLARE_FLAGS( HigFlags, HigFlag )
252
253
257 static QgsGui::HigFlags higFlags();
258
259 ~QgsGui();
260
266 static QColor sampleColor( QPoint point );
267
273 static QScreen *findScreenAt( QPoint point );
274
284 static bool pythonMacroAllowed( void ( *lambda )() = nullptr, QgsMessageBar *messageBar = nullptr ) SIP_SKIP;
285
287 void emitOptionsChanged() SIP_SKIP;
289
290 signals:
291
302 void optionsChanged();
303
304 private:
305
306 QgsGui();
307
308 QgsSettingsRegistryGui *mSettingsRegistryGui = nullptr;
309 QgsProviderGuiRegistry *mProviderGuiRegistry = nullptr;
310 QgsWidgetStateHelper *mWidgetStateHelper = nullptr;
311 QgsNative *mNative = nullptr;
312 QgsEditorWidgetRegistry *mEditorWidgetRegistry = nullptr;
313 QgsSourceSelectProviderRegistry *mSourceSelectProviderRegistry = nullptr;
314 QgsShortcutsManager *mShortcutsManager = nullptr;
315 QgsLayerTreeEmbeddedWidgetRegistry *mLayerTreeEmbeddedWidgetRegistry = nullptr;
316 QgsMapLayerActionRegistry *mMapLayerActionRegistry = nullptr;
317 QgsLayoutItemGuiRegistry *mLayoutItemGuiRegistry = nullptr;
318 QgsAnnotationItemGuiRegistry *mAnnotationItemGuiRegistry = nullptr;
319 QgsProcessingGuiRegistry *mProcessingGuiRegistry = nullptr;
320 QgsProcessingRecentAlgorithmLog *mProcessingRecentAlgorithmLog = nullptr;
321 QgsNumericFormatGuiRegistry *mNumericFormatGuiRegistry = nullptr;
322 QgsDataItemGuiProviderRegistry *mDataItemGuiProviderRegistry = nullptr;
323 QgsCodeEditorColorSchemeRegistry *mCodeEditorColorSchemeRegistry = nullptr;
324 QgsProjectStorageGuiRegistry *mProjectStorageGuiRegistry = nullptr;
325 QgsSubsetStringEditorProviderRegistry *mSubsetStringEditorProviderRegistry = nullptr;
326 QgsProviderSourceWidgetProviderRegistry *mProviderSourceWidgetProviderRegistry = nullptr;
327 QgsRelationWidgetRegistry *mRelationEditorRegistry = nullptr;
328 QgsMapToolShapeRegistry *mShapeMapToolRegistry = nullptr;
329 QgsHistoryProviderRegistry *mHistoryProviderRegistry = nullptr;
330 QgsSensorGuiRegistry *mSensorGuiRegistry = nullptr;
331 QgsSettingsEditorWidgetRegistry *mSettingsEditorRegistry = nullptr;
332 std::unique_ptr< QgsWindowManagerInterface > mWindowManager;
333
334#ifdef SIP_RUN
335 QgsGui( const QgsGui &other );
336#endif
337
338};
339
340Q_DECLARE_OPERATORS_FOR_FLAGS( QgsGui::HigFlags )
341
342#endif // QGSGUI_H
Registry of available annotation item GUI behavior.
A registry of color schemes for use in QgsCodeEditor widgets.
This class keeps a list of data item GUI providers that may affect how QgsDataItems behave within the...
This class manages all known edit widget factories.
QgsGui is a singleton class containing various registry and other global members related to GUI class...
Definition: qgsgui.h:60
HigFlag
HIG flags, which indicate the Human Interface Guidelines for the current platform.
Definition: qgsgui.h:247
ProjectCrsBehavior
Defines the behavior to use when setting the CRS for a newly created project.
Definition: qgsgui.h:69
The QgsHistoryProviderRegistry is a registry for objects which track user history (i....
Registry of widgets that may be embedded into layer tree view.
Registry of available layout item GUI behavior.
This class tracks map layer actions.
Keeps track of the registered shape map tools.
A bar for displaying non-blocking messages to the user.
Definition: qgsmessagebar.h:61
The QgsNumericFormatGuiRegistry is a home for widgets for configuring QgsNumericFormat objects.
The QgsProcessingGuiRegistry is a home for widgets for processing configuration widgets.
A registry / canonical manager of GUI parts of project storage backends.
A registry / canonical manager of GUI parts of data providers.
This class keeps a list of provider source widget providers.
Keeps track of the registered relations widgets.
Registry of available sensor GUI behavior.
This class manages editor widgets for settings.
QgsSettingsRegistryGui is used for settings introspection and collects all QgsSettingsEntry instances...
Shortcuts manager is a class that contains a list of QActions and QShortcuts that have been registere...
This class keeps a list of source select providers that may add items to the QgsDataSourceManagerDial...
This class keeps a list of subset string editor providers.
QgsWidgetStateHelper is a helper class to save and restore the geometry of QWidgets in the applicatio...
std::unique_ptr< GEOSGeometry, GeosDeleter > unique_ptr
Scoped GEOS pointer.
Definition: qgsgeos.h:74
#define SIP_KEEPREFERENCE
Definition: qgis_sip.h:86
#define SIP_SKIP
Definition: qgis_sip.h:126
#define SIP_TRANSFER
Definition: qgis_sip.h:36
Q_DECLARE_OPERATORS_FOR_FLAGS(QgsField::ConfigurationFlags) CORE_EXPORT QDataStream &operator<<(QDataStream &out
Writes the field to stream out. QGIS version compatibility is not guaranteed.