QGIS API Documentation 3.34.0-Prizren (ffbdd678812)
Loading...
Searching...
No Matches
qgsfeaturelistcombobox.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsfeaturelistcombobox.h - QgsFeatureListComboBox
3 ---------------------
4 begin : 10.3.2017
5 copyright : (C) 2017 by Matthias Kuhn
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#ifndef QGSFIELDLISTCOMBOBOX_H
16#define QGSFIELDLISTCOMBOBOX_H
17
18#include <QComboBox>
19
20#include "qgsfeature.h"
21#include "qgsfeaturerequest.h"
22#include "qgis_gui.h"
23
24class QgsVectorLayer;
26class QgsAnimatedIcon;
28
29
39class GUI_EXPORT QgsFeatureListComboBox : public QComboBox
40{
41 Q_OBJECT
42
43 Q_PROPERTY( QgsVectorLayer *sourceLayer READ sourceLayer WRITE setSourceLayer NOTIFY sourceLayerChanged )
44 Q_PROPERTY( QString displayExpression READ displayExpression WRITE setDisplayExpression NOTIFY displayExpressionChanged )
45 Q_PROPERTY( QString filterExpression READ filterExpression WRITE setFilterExpression NOTIFY filterExpressionChanged )
46 Q_PROPERTY( QVariant identifierValue READ identifierValue WRITE setIdentifierValue NOTIFY identifierValueChanged )
47 Q_PROPERTY( QVariantList identifierValues READ identifierValues WRITE setIdentifierValues NOTIFY identifierValueChanged )
48 Q_PROPERTY( QString identifierField READ identifierField WRITE setIdentifierField NOTIFY identifierFieldChanged )
49 Q_PROPERTY( bool allowNull READ allowNull WRITE setAllowNull NOTIFY allowNullChanged )
50
51 public:
52
56 QgsFeatureListComboBox( QWidget *parent = nullptr );
57
61 QgsVectorLayer *sourceLayer() const;
62
66 void setSourceLayer( QgsVectorLayer *sourceLayer );
67
72 void setCurrentFeature( const QgsFeature &feature );
73
78 QString displayExpression() const;
79
84 void setDisplayExpression( const QString &displayExpression );
85
90 QString filterExpression() const;
91
98 int nullIndex() const;
99
104 void setFilterExpression( const QString &filterExpression );
105
111 Q_DECL_DEPRECATED QVariant identifierValue() const SIP_DEPRECATED;
112
118 QVariantList identifierValues() const;
119
120
126 Q_DECL_DEPRECATED void setIdentifierValue( const QVariant &identifierValue ) SIP_DEPRECATED;
127
133 void setIdentifierValues( const QVariantList &identifierValues );
134
139 void setIdentifierValuesToNull();
140
145 QgsFeatureRequest currentFeatureRequest() const;
146
150 bool allowNull() const;
151
155 void setAllowNull( bool allowNull );
156
161 int fetchLimit() const;
162
168 void setFetchLimit( int fetchLimit );
169
175 Q_DECL_DEPRECATED QString identifierField() const SIP_DEPRECATED;
176
182 QStringList identifierFields() const;
183
189 Q_DECL_DEPRECATED void setIdentifierField( const QString &identifierField ) SIP_DEPRECATED;
190
196 void setIdentifierFields( const QStringList &identifierFields );
197
201 QModelIndex currentModelIndex() const;
202
203 void focusOutEvent( QFocusEvent *event ) override;
204
205 void keyPressEvent( QKeyEvent *event ) override;
206
207 signals:
208
214 void modelUpdated();
215
219 void sourceLayerChanged();
220
225 void displayExpressionChanged();
226
231 void filterExpressionChanged();
232
237 void identifierValueChanged();
238
243 void identifierFieldChanged();
244
248 void allowNullChanged();
249
254 void currentFeatureChanged();
255
256 private slots:
257 void onCurrentTextChanged( const QString &text );
258 void onFilterUpdateCompleted();
259 void onLoadingChanged();
260 void onItemSelected( const QModelIndex &index );
261 void onCurrentIndexChanged( int i );
262 void onActivated( QModelIndex index );
263 void storeLineEditState();
264 void restoreLineEditState();
265 void onDataChanged( const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles = QVector<int>() );
266
267 private:
268 QgsFeatureFilterModel *mModel = nullptr;
269 QCompleter *mCompleter = nullptr;
270 QgsFilterLineEdit *mLineEdit;
271 bool mPopupRequested = false;
272 bool mIsCurrentlyEdited = false;
273
274 friend class TestQgsFeatureListComboBox;
275};
276
277
278
279#endif // QGSFIELDLISTCOMBOBOX_H
Animated icon is keeping an animation running if there are listeners connected to frameChanged.
Provides a list of features based on filter conditions.
This offers a combobox with autocompleter that allows selecting features from a layer.
This class wraps a request for features to a vector layer (or directly its vector data provider).
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
Definition qgsfeature.h:56
QLineEdit subclass with built in support for clearing the widget's value and handling custom null val...
Represents a vector layer which manages a vector based data sets.
#define SIP_DEPRECATED
Definition qgis_sip.h:106