QGIS API Documentation  2.14.0-Essen
qgseditorwidgetwrapper.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgseditorwidgetwrapper.h
3  --------------------------------------
4  Date : 20.4.2013
5  Copyright : (C) 2013 Matthias Kuhn
6  Email : matthias at opengis dot ch
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 QGSEDITORWIDGETWRAPPER_H
17 #define QGSEDITORWIDGETWRAPPER_H
18 
19 #include <QObject>
20 #include <QMap>
21 #include <QVariant>
22 
23 class QgsVectorLayer;
24 class QgsField;
25 
26 #include "qgseditorwidgetconfig.h"
28 #include "qgswidgetwrapper.h"
29 
41 class GUI_EXPORT QgsEditorWidgetWrapper : public QgsWidgetWrapper
42 {
43  Q_OBJECT
44  public:
53  explicit QgsEditorWidgetWrapper( QgsVectorLayer* vl, int fieldIdx, QWidget* editor = nullptr, QWidget* parent = nullptr );
54 
64  virtual QVariant value() const = 0;
65 
73  int fieldIdx() const;
74 
82  QgsField field() const;
83 
91  QVariant defaultValue() const;
92 
98  static QgsEditorWidgetWrapper* fromWidget( QWidget* widget );
99 
106  void setEnabled( bool enabled ) override;
107 
108  signals:
114  void valueChanged( const QVariant& value );
115 
116  public slots:
124  void setFeature( const QgsFeature& feature ) override;
125 
132  virtual void setValue( const QVariant& value ) = 0;
133 
134  protected slots:
141  void valueChanged( const QString& value );
142 
150  void valueChanged( int value );
151 
159  void valueChanged( double value );
160 
168  void valueChanged( bool value );
169 
176  void valueChanged( qlonglong value );
177 
181  void valueChanged();
182 
183  private:
184  int mFieldIdx;
185 };
186 
187 // We'll use this class inside a QVariant in the widgets properties
188 Q_DECLARE_METATYPE( QgsEditorWidgetWrapper* )
189 
190 #endif // QGSEDITORWIDGETWRAPPER_H
virtual void setEnabled(bool enabled)
Is used to enable or disable the edit functionality of the managed widget.
Manages an editor widget Widget and wrapper share the same parent.
The feature class encapsulates a single feature including its id, geometry and a list of field/values...
Definition: qgsfeature.h:187
virtual void setFeature(const QgsFeature &feature)=0
Is called, when the value of the widget needs to be changed.
Encapsulate a field in an attribute table or data source.
Definition: qgsfield.h:44
static QgsWidgetWrapper * fromWidget(QWidget *widget)
Will return a wrapper for a given widget.
Represents a vector layer which manages a vector based data sets.
Manages an editor widget Widget and wrapper share the same parent.