QGIS API Documentation 3.28.0-Firenze (ed3ad0430f)
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
21#include "qgis_gui.h"
22
23class QTableWidget;
24class QComboBox;
25class 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 public slots:
77
78 void parentFormValueChanged( const QString &attribute, const QVariant &value ) override;
79
80 protected:
81 QWidget *createWidget( QWidget *parent ) override;
82 void initWidget( QWidget *editor ) override;
83 bool valid() const override;
84
97 void widgetValueChanged( const QString &attribute, const QVariant &newValue, bool attributeChanged );
98
107 void setFeature( const QgsFeature &feature ) override;
108
109 private slots:
110 void emitValueChangedInternal( const QString &value );
111
112 private:
113 void updateValues( const QVariant &value, const QVariantList & = QVariantList() ) override;
114
115
120 int columnCount() const;
121
123 QVariant::Type fkType() const;
124
126 void populate( );
127
128 QComboBox *mComboBox = nullptr;
129 QTableWidget *mTableWidget = nullptr;
130 QLineEdit *mLineEdit = nullptr;
131
133 QgsVectorLayer *mLayer = nullptr;
134
135 bool mEnabled = true;
136 QString mExpression;
137
139 friend class TestQgsValueRelationWidgetWrapper;
140
141};
142
143#endif // QGSVALUERELATIONWIDGETWRAPPER_H
Manages an editor widget Widget and wrapper share the same parent.
virtual QVariant value() const =0
Will be used to access the widget's value.
virtual void parentFormValueChanged(const QString &attribute, const QVariant &value)
Is called in embedded form widgets when an attribute value in the parent form has changed.
virtual void showIndeterminateState()
Sets the widget to display in an indeterminate "mixed value" state.
void setFeature(const QgsFeature &feature) override
Will be called when the feature changes.
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 unique ID, geometry and a list of field...
Definition: qgsfeature.h:56
QVector< QgsValueRelationFieldFormatter::ValueRelationItem > ValueRelationCache
Wraps a value relation widget.
Represents a vector layer which manages a vector based data sets.
virtual bool valid() const =0
Returns true if the widget has been properly initialized.
virtual void initWidget(QWidget *editor)
This method should initialize the editor widget with runtime data.
virtual QWidget * createWidget(QWidget *parent)=0
This method should create a new widget with the provided parent.
#define SIP_NO_FILE