QGIS API Documentation 3.41.0-Master (3440c17df1d)
Loading...
Searching...
No Matches
qgssettingseditorwidgetwrapper.h
Go to the documentation of this file.
1/***************************************************************************
2 qgssettingseditorwidgetwrapper.h
3 --------------------------------------
4 Date : February 2023
5 Copyright : (C) 2023 by Denis Rouzaud
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 QGSSETTINGSEDITORWIDGETWRAPPER_H
17#define QGSSETTINGSEDITORWIDGETWRAPPER_H
18
19#include <QVariant>
20
21#include "qgis_sip.h"
22#include "qgis_gui.h"
23
25
26class QDialog;
27
34class GUI_EXPORT QgsSettingsEditorWidgetWrapper : public QObject
35{
36 Q_OBJECT
37 public:
39 static QgsSettingsEditorWidgetWrapper *fromWidget( const QWidget *widget );
40
42 QgsSettingsEditorWidgetWrapper( QObject *parent = nullptr );
43
45
50 virtual QString id() const = 0;
51
53 virtual QgsSettingsEditorWidgetWrapper *createWrapper( QObject *parent = nullptr ) const = 0 SIP_FACTORY;
54
56 QWidget *createEditor( const QgsSettingsEntryBase *setting, const QStringList &dynamicKeyPartList = QStringList(), QWidget *parent = nullptr ) SIP_TRANSFERBACK;
57
59 bool configureEditor( QWidget *editor, const QgsSettingsEntryBase *setting, const QStringList &dynamicKeyPartList = QStringList() );
60
65 virtual bool setWidgetFromSetting() const = 0;
66
71 virtual bool setSettingFromWidget() const = 0;
72
77 virtual QVariant variantValueFromWidget() const = 0;
78
83 virtual bool setWidgetFromVariant( const QVariant &value ) const = 0;
84
95 void configureAutomaticUpdate( QDialog *dialog = nullptr );
96
101 QStringList dynamicKeyPartList() const {return mDynamicKeyPartList;}
102
103
104 protected:
106 virtual QWidget *createEditorPrivate( QWidget *parent = nullptr ) const = 0 SIP_TRANSFERBACK;
107
109 virtual bool configureEditorPrivate( QWidget *editor SIP_TRANSFERBACK, const QgsSettingsEntryBase *setting SIP_KEEPREFERENCE ) = 0;
110
117
119};
120
121
122
123#endif // QGSSETTINGSEDITORWIDGETWRAPPER_H
Base class for settings editor wrappers.
virtual QgsSettingsEditorWidgetWrapper * createWrapper(QObject *parent=nullptr) const =0
Creates a new instance of the editor wrapper so it can be configured for a widget and a setting.
virtual QWidget * createEditorPrivate(QWidget *parent=nullptr) const =0
Creates the widgets.
virtual void enableAutomaticUpdatePrivate()=0
Enables automatic update, which causes the setting to be updated immediately when the widget value is...
virtual bool configureEditorPrivate(QWidget *editor, const QgsSettingsEntryBase *setting)=0
Configures an existing editor widget.
virtual QString id() const =0
This id of the type of settings it handles.
virtual ~QgsSettingsEditorWidgetWrapper()=default
Represent settings entry and provides methods for reading and writing settings values.
#define SIP_KEEPREFERENCE
Definition qgis_sip.h:86
#define SIP_TRANSFERBACK
Definition qgis_sip.h:48
#define SIP_FACTORY
Definition qgis_sip.h:76