QGIS API Documentation  3.16.0-Hannover (43b64b13f3)
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 
30 class 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 
55 
60  QHash<QWidget *, QgsOptionsDialogHighlightWidget *> registeredHighlightWidgets() {return mHighlightWidgets;} SIP_SKIP
61 
62 
63  public slots:
64 
69  virtual void apply() = 0;
70 
71  protected:
72 
79  {
80  mHighlightWidgets.insert( highlightWidget->widget(), highlightWidget );
81  }
82 
83  private:
84  QHash<QWidget *, QgsOptionsDialogHighlightWidget *> mHighlightWidgets;
85 
86 
87 };
88 
95 // NOTE - this is a QObject so we can detect its destruction and avoid
96 // QGIS crashing when a plugin crashes/exits without deregistering a factory
97 class GUI_EXPORT QgsOptionsWidgetFactory : public QObject
98 {
99  Q_OBJECT
100 
101  public:
102 
105 
107  QgsOptionsWidgetFactory( const QString &title, const QIcon &icon )
108  : mTitle( title )
109  , mIcon( icon )
110  {}
111 
117  virtual QIcon icon() const { return mIcon; }
118 
123  void setIcon( const QIcon &icon ) { mIcon = icon; }
124 
129  virtual QString title() const { return mTitle; }
130 
135  void setTitle( const QString &title ) { mTitle = title; }
136 
142  virtual QgsOptionsPageWidget *createWidget( QWidget *parent = nullptr ) const = 0 SIP_FACTORY;
143 
144  private:
145  QString mTitle;
146  QIcon mIcon;
147 
148 
149 };
150 
151 #endif // QGSOPTIONSWIDGETFACTORY_H
QgsOptionsPageWidget::helpKey
virtual QString helpKey() const
Returns the optional help key for the options page.
Definition: qgsoptionswidgetfactory.h:53
QgsOptionsWidgetFactory
A factory class for creating custom options pages.
Definition: qgsoptionswidgetfactory.h:98
QgsOptionsDialogHighlightWidget
Container for a widget to be used to search text in the option dialog If the widget type is handled,...
Definition: qgsoptionsdialoghighlightwidget.h:36
QgsOptionsWidgetFactory::createWidget
virtual QgsOptionsPageWidget * createWidget(QWidget *parent=nullptr) const =0
Factory function to create the widget on demand as needed by the options dialog.
QgsOptionsDialogHighlightWidget::widget
QWidget * widget()
Returns the widget.
Definition: qgsoptionsdialoghighlightwidget.h:63
QgsOptionsWidgetFactory::QgsOptionsWidgetFactory
QgsOptionsWidgetFactory()=default
Constructor.
QgsOptionsPageWidget::apply
virtual void apply()=0
Called to permanently apply the settings shown in the options page (e.g.
SIP_FACTORY
#define SIP_FACTORY
Definition: qgis_sip.h:76
QgsOptionsPageWidget::registeredHighlightWidgets
QHash< QWidget *, QgsOptionsDialogHighlightWidget * > registeredHighlightWidgets()
Returns the registered highlight widgets used to search and highlight text in options dialogs.
Definition: qgsoptionswidgetfactory.h:60
SIP_SKIP
#define SIP_SKIP
Definition: qgis_sip.h:126
QgsOptionsPageWidget::QgsOptionsPageWidget
QgsOptionsPageWidget(QWidget *parent=nullptr)
Constructor for QgsOptionsPageWidget.
Definition: qgsoptionswidgetfactory.h:39
qgis_sip.h
QgsOptionsPageWidget::registerHighlightWidget
void registerHighlightWidget(QgsOptionsDialogHighlightWidget *highlightWidget)
Register a highlight widget to be used to search and highlight text in options dialogs.
Definition: qgsoptionswidgetfactory.h:78
QgsOptionsWidgetFactory::title
virtual QString title() const
The title of the panel.
Definition: qgsoptionswidgetfactory.h:129
qgsoptionsdialoghighlightwidget.h
QgsOptionsWidgetFactory::setIcon
void setIcon(const QIcon &icon)
Set the icon to show in the interface for the factory object.
Definition: qgsoptionswidgetfactory.h:123
QgsOptionsWidgetFactory::QgsOptionsWidgetFactory
QgsOptionsWidgetFactory(const QString &title, const QIcon &icon)
Constructor.
Definition: qgsoptionswidgetfactory.h:107
QgsOptionsWidgetFactory::icon
virtual QIcon icon() const
The icon that will be shown in the UI for the panel.
Definition: qgsoptionswidgetfactory.h:117
QgsOptionsWidgetFactory::setTitle
void setTitle(const QString &title)
Set the title for the interface.
Definition: qgsoptionswidgetfactory.h:135
SIP_TRANSFERTHIS
#define SIP_TRANSFERTHIS
Definition: qgis_sip.h:53
QgsOptionsPageWidget
Base class for widgets for pages included in the options dialog.
Definition: qgsoptionswidgetfactory.h:31