QGIS API Documentation 3.30.0-'s-Hertogenbosch (f186b8efe0)
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;
50
57class GUI_EXPORT QgsGui : public QObject
58{
59 Q_OBJECT
60
61 public:
62
67 {
68 UseCrsOfFirstLayerAdded = 1,
69 UsePresetCrs = 2,
70 };
71 Q_ENUM( ProjectCrsBehavior )
72
73
74 QgsGui( const QgsGui &other ) = delete;
75
77 QgsGui &operator=( const QgsGui &other ) = delete;
78
82 static QgsGui *instance();
83
89 SIP_SKIP static QgsNative *nativePlatformInterface();
90
95 static QgsSettingsRegistryGui *settingsRegistryGui() SIP_KEEPREFERENCE;
96
100 static QgsEditorWidgetRegistry *editorWidgetRegistry() SIP_KEEPREFERENCE;
101
105 static QgsSourceSelectProviderRegistry *sourceSelectProviderRegistry() SIP_KEEPREFERENCE;
106
110 static QgsShortcutsManager *shortcutsManager();
111
115 static QgsLayerTreeEmbeddedWidgetRegistry *layerTreeEmbeddedWidgetRegistry() SIP_KEEPREFERENCE;
116
120 static QgsMapLayerActionRegistry *mapLayerActionRegistry() SIP_KEEPREFERENCE;
121
125 static QgsLayoutItemGuiRegistry *layoutItemGuiRegistry() SIP_KEEPREFERENCE;
126
132 static QgsAnnotationItemGuiRegistry *annotationItemGuiRegistry() SIP_KEEPREFERENCE;
133
138 static QgsProcessingGuiRegistry *processingGuiRegistry() SIP_KEEPREFERENCE;
139
144 static QgsNumericFormatGuiRegistry *numericFormatGuiRegistry() SIP_KEEPREFERENCE;
145
150 static QgsCodeEditorColorSchemeRegistry *codeEditorColorSchemeRegistry() SIP_KEEPREFERENCE;
151
156 static QgsProcessingRecentAlgorithmLog *processingRecentAlgorithmLog();
157
163 static QgsDataItemGuiProviderRegistry *dataItemGuiProviderRegistry() SIP_KEEPREFERENCE;
164
169 static QgsProjectStorageGuiRegistry *projectStorageGuiRegistry() SIP_KEEPREFERENCE;
170
175 static QgsProviderGuiRegistry *providerGuiRegistry() SIP_KEEPREFERENCE;
176
181 static QgsSubsetStringEditorProviderRegistry *subsetStringEditorProviderRegistry() SIP_KEEPREFERENCE;
182
187 static QgsProviderSourceWidgetProviderRegistry *sourceWidgetProviderRegistry() SIP_KEEPREFERENCE;
188
193 static QgsRelationWidgetRegistry *relationWidgetRegistry() SIP_KEEPREFERENCE;
194
200 static QgsMapToolShapeRegistry *mapToolShapeRegistry() SIP_SKIP;
201
206 static QgsHistoryProviderRegistry *historyProviderRegistry() SIP_KEEPREFERENCE;
207
212 static void enableAutoGeometryRestore( QWidget *widget, const QString &key = QString() );
213
219 static QgsWindowManagerInterface *windowManager();
220
226 static void setWindowManager( QgsWindowManagerInterface *manager SIP_TRANSFER );
227
233 {
234 HigMenuTextIsTitleCase = 1 << 0,
235 HigDialogTitleIsTitleCase = 1 << 1
236 };
237 Q_DECLARE_FLAGS( HigFlags, HigFlag )
238
239
243 static QgsGui::HigFlags higFlags();
244
245 ~QgsGui();
246
252 static QColor sampleColor( QPoint point );
253
259 static QScreen *findScreenAt( QPoint point );
260
270 static bool pythonMacroAllowed( void ( *lambda )() = nullptr, QgsMessageBar *messageBar = nullptr ) SIP_SKIP;
271
273 void emitOptionsChanged() SIP_SKIP;
275
276 signals:
277
288 void optionsChanged();
289
290 private:
291
292 QgsGui();
293
294 QgsSettingsRegistryGui *mSettingsRegistryGui = nullptr;
295 QgsProviderGuiRegistry *mProviderGuiRegistry = nullptr;
296 QgsWidgetStateHelper *mWidgetStateHelper = nullptr;
297 QgsNative *mNative = nullptr;
298 QgsEditorWidgetRegistry *mEditorWidgetRegistry = nullptr;
299 QgsSourceSelectProviderRegistry *mSourceSelectProviderRegistry = nullptr;
300 QgsShortcutsManager *mShortcutsManager = nullptr;
301 QgsLayerTreeEmbeddedWidgetRegistry *mLayerTreeEmbeddedWidgetRegistry = nullptr;
302 QgsMapLayerActionRegistry *mMapLayerActionRegistry = nullptr;
303 QgsLayoutItemGuiRegistry *mLayoutItemGuiRegistry = nullptr;
304 QgsAnnotationItemGuiRegistry *mAnnotationItemGuiRegistry = nullptr;
305 QgsProcessingGuiRegistry *mProcessingGuiRegistry = nullptr;
306 QgsProcessingRecentAlgorithmLog *mProcessingRecentAlgorithmLog = nullptr;
307 QgsNumericFormatGuiRegistry *mNumericFormatGuiRegistry = nullptr;
308 QgsDataItemGuiProviderRegistry *mDataItemGuiProviderRegistry = nullptr;
309 QgsCodeEditorColorSchemeRegistry *mCodeEditorColorSchemeRegistry = nullptr;
310 QgsProjectStorageGuiRegistry *mProjectStorageGuiRegistry = nullptr;
311 QgsSubsetStringEditorProviderRegistry *mSubsetStringEditorProviderRegistry = nullptr;
312 QgsProviderSourceWidgetProviderRegistry *mProviderSourceWidgetProviderRegistry = nullptr;
313 QgsRelationWidgetRegistry *mRelationEditorRegistry = nullptr;
314 QgsMapToolShapeRegistry *mShapeMapToolRegistry = nullptr;
315 QgsHistoryProviderRegistry *mHistoryProviderRegistry = nullptr;
316 std::unique_ptr< QgsWindowManagerInterface > mWindowManager;
317
318#ifdef SIP_RUN
319 QgsGui( const QgsGui &other );
320#endif
321
322};
323
324Q_DECLARE_OPERATORS_FOR_FLAGS( QgsGui::HigFlags )
325
326#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:58
HigFlag
HIG flags, which indicate the Human Interface Guidelines for the current platform.
Definition: qgsgui.h:233
ProjectCrsBehavior
Defines the behavior to use when setting the CRS for a newly created project.
Definition: qgsgui.h:67
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.
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.