QGIS API Documentation  3.8.0-Zanzibar (11aff65)
qgsvaluerelationwidgetwrapper.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsvaluerelationwidgetwrapper.h
3  --------------------------------------
4  Date : 5.1.2014
5  Copyright : (C) 2014 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 QGSVALUERELATIONWIDGETWRAPPER_H
17 #define QGSVALUERELATIONWIDGETWRAPPER_H
18 
19 #include "qgseditorwidgetwrapper.h"
21 #include "qgis_gui.h"
22 
23 class QTableWidget;
24 class QComboBox;
25 class QLineEdit;
26 
28 
30 
53 {
54  Q_OBJECT
55 
56  public:
57 
68  explicit QgsValueRelationWidgetWrapper( QgsVectorLayer *layer, int fieldIdx, QWidget *editor = nullptr, QWidget *parent = nullptr );
69 
70  QVariant value() const override;
71 
72  void showIndeterminateState() override;
73 
74  void setEnabled( bool enabled ) override;
75 
76  protected:
77  QWidget *createWidget( QWidget *parent ) override;
78  void initWidget( QWidget *editor ) override;
79  bool valid() const override;
80 
81  public slots:
82 
83  void setValue( const QVariant &value ) override;
84 
97  void widgetValueChanged( const QString &attribute, const QVariant &newValue, bool attributeChanged );
98 
107  void setFeature( const QgsFeature &feature ) override;
108 
109 
110  private:
111 
116  int columnCount() const;
117 
119  QVariant::Type fkType() const;
120 
122  void populate( );
123 
124  QComboBox *mComboBox = nullptr;
125  QTableWidget *mTableWidget = nullptr;
126  QLineEdit *mLineEdit = nullptr;
127 
129  QgsVectorLayer *mLayer = nullptr;
130 
131  bool mEnabled = true;
132  QString mExpression;
133 
135  friend class TestQgsValueRelationWidgetWrapper;
136 };
137 
138 #endif // QGSVALUERELATIONWIDGETWRAPPER_H
Manages an editor widget Widget and wrapper share the same parent.
void setEnabled(bool enabled) override
Is used to enable or disable the edit functionality of the managed widget.
The feature class encapsulates a single feature including its id, geometry and a list of field/values...
Definition: qgsfeature.h:55
QVector< QgsValueRelationFieldFormatter::ValueRelationItem > ValueRelationCache
Wraps a value relation widget.
virtual void showIndeterminateState()
Sets the widget to display in an indeterminate "mixed value" state.
virtual bool valid() const =0
Returns true if the widget has been properly initialized.
void setFeature(const QgsFeature &feature) override
Will be called when the feature changes.
virtual QWidget * createWidget(QWidget *parent)=0
This method should create a new widget with the provided parent.
virtual void initWidget(QWidget *editor)
This method should initialize the editor widget with runtime data.
virtual void setValue(const QVariant &value)=0
Is called, when the value of the widget needs to be changed.
#define SIP_NO_FILE
Definition: qgis_sip.h:23
virtual QVariant value() const =0
Will be used to access the widget&#39;s value.
Represents a vector layer which manages a vector based data sets.