QGIS API Documentation 3.34.0-Prizren (ffbdd678812)
Loading...
Searching...
No Matches
qgsoptionswidgetfactory.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsoptionswidgetfactory.h
3 -------------------------------
4 Date : March 2017
5 Copyright : (C) 2017 Nyall Dawson
6 Email : nyall dot dawson at gmail dot com
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 QGSOPTIONSWIDGETFACTORY_H
17#define QGSOPTIONSWIDGETFACTORY_H
18
19#include <QListWidgetItem>
20#include "qgis_gui.h"
21#include "qgis_sip.h"
23
30class GUI_EXPORT QgsOptionsPageWidget : public QWidget
31{
32 Q_OBJECT
33
34 public:
35
39 QgsOptionsPageWidget( QWidget *parent SIP_TRANSFERTHIS = nullptr )
40 : QWidget( parent )
41 {}
42
53 virtual QString helpKey() const { return QString(); }
54
59 QHash<QWidget *, QgsOptionsDialogHighlightWidget *> registeredHighlightWidgets() {return mHighlightWidgets;} SIP_SKIP
60
70 virtual bool isValid() { return true; }
71
72 public slots:
73
78 virtual void apply() = 0;
79
84 virtual void cancel() { return; }
85
86 protected:
87
94 {
95 mHighlightWidgets.insert( highlightWidget->widget(), highlightWidget );
96 }
97
98 private:
99 QHash<QWidget *, QgsOptionsDialogHighlightWidget *> mHighlightWidgets;
100
101
102};
103
110// NOTE - this is a QObject so we can detect its destruction and avoid
111// QGIS crashing when a plugin crashes/exits without deregistering a factory
112class GUI_EXPORT QgsOptionsWidgetFactory : public QObject
113{
114 Q_OBJECT
115
116 public:
117
120
122 QgsOptionsWidgetFactory( const QString &title, const QIcon &icon, const QString &key = QString() )
123 : mTitle( title )
124 , mIcon( icon )
125 , mKey( key )
126 {}
127
133 virtual QIcon icon() const { return mIcon; }
134
139 void setIcon( const QIcon &icon ) { mIcon = icon; }
140
145 virtual QString title() const { return mTitle; }
146
151 void setTitle( const QString &title ) { mTitle = title; }
152
159 virtual QString key() const { return mKey; }
160
165 void setKey( const QString &key ) { mKey = key; }
166
179 virtual QString pagePositionHint() const { return QString(); }
180
190 virtual QStringList path() const { return QStringList(); }
191
197 virtual QgsOptionsPageWidget *createWidget( QWidget *parent = nullptr ) const = 0 SIP_FACTORY;
198
199 private:
200 QString mTitle;
201 QIcon mIcon;
202 QString mKey;
203
204
205};
206
207#endif // QGSOPTIONSWIDGETFACTORY_H
Container for a widget to be used to search text in the option dialog If the widget type is handled,...
Base class for widgets for pages included in the options dialog.
QgsOptionsPageWidget(QWidget *parent=nullptr)
Constructor for QgsOptionsPageWidget.
QHash< QWidget *, QgsOptionsDialogHighlightWidget * > registeredHighlightWidgets()
Returns the registered highlight widgets used to search and highlight text in options dialogs.
void registerHighlightWidget(QgsOptionsDialogHighlightWidget *highlightWidget)
Register a highlight widget to be used to search and highlight text in options dialogs.
virtual QString helpKey() const
Returns the optional help key for the options page.
virtual void cancel()
Called to cancel settings changed in the options page (e.g.
virtual bool isValid()
Validates the current state of the widget.
virtual void apply()=0
Called to permanently apply the settings shown in the options page (e.g.
A factory class for creating custom options pages.
void setKey(const QString &key)
Set the key for the interface.
void setTitle(const QString &title)
Set the title for the interface.
QgsOptionsWidgetFactory(const QString &title, const QIcon &icon, const QString &key=QString())
Constructor.
void setIcon(const QIcon &icon)
Set the icon to show in the interface for the factory object.
virtual QStringList path() const
Returns the path to place the widget page at, for options dialogs which are structured using a tree v...
virtual QgsOptionsPageWidget * createWidget(QWidget *parent=nullptr) const =0
Factory function to create the widget on demand as needed by the options dialog.
virtual QString key() const
The key of the panel (untranslated title).
virtual QIcon icon() const
The icon that will be shown in the UI for the panel.
virtual QString title() const
The title of the panel.
virtual QString pagePositionHint() const
Returns a tab name hinting at where this page should be inserted into the options properties tab list...
QgsOptionsWidgetFactory()=default
Constructor.
#define SIP_TRANSFERTHIS
Definition qgis_sip.h:53
#define SIP_SKIP
Definition qgis_sip.h:126
#define SIP_FACTORY
Definition qgis_sip.h:76