1 /*************************************************************************** 2 qgsuniquevaluewidgetwrapper.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 QGSUNIQUEVALUEWIDGETWRAPPER_H 17 #define QGSUNIQUEVALUEWIDGETWRAPPER_H 18 19 #include "qgseditorwidgetwrapper.h" 20 21 #include <QComboBox> 22 #include <QLineEdit> 23 #include "qgis_gui.h" 24 25 SIP_NO_FILE 26 27 /** 28 * \ingroup gui 29 * \brief Wraps a unique value widget. Will offer any value previously used for this field. 30 * 31 * Options: 32 * <ul> 33 * <li><b>Editable</b> <i>If TRUE the user can manually insert new (not yet used) values.</i></li> 34 * </ul> 35 * \note not available in Python bindings 36 */ 37 38 class GUI_EXPORT QgsUniqueValuesWidgetWrapper : public QgsEditorWidgetWrapper 39 { 40 Q_OBJECT 41 public: 42 43 /** 44 * Constructor for QgsUniqueValuesWidgetWrapper. 45 * 46 * The \a layer and \a fieldIdx arguments specify the vector layer field associated with the wrapper. 47 * 48 * The \a editor argument indicates the editor widget to use with the wrapper. This can be NULLPTR if a 49 * new widget should be autogenerated. 50 * 51 * A \a parent widget for this widget wrapper and the created widget can also be specified. 52 */ 53 explicit QgsUniqueValuesWidgetWrapper( QgsVectorLayer *layer, int fieldIdx, QWidget *editor = nullptr, QWidget *parent = nullptr ); 54 55 // QgsEditorWidgetWrapper interface 56 public: 57 QVariant value() const override; 58 void showIndeterminateState() override; 59 60 protected: 61 QWidget *createWidget( QWidget *parent ) override; 62 void initWidget( QWidget *editor ) override; 63 bool valid() const override; 64 65 private: 66 void updateValues( const QVariant &value, const QVariantList & = QVariantList() ) override; 67 68 QComboBox *mComboBox = nullptr; 69 QLineEdit *mLineEdit = nullptr; 70 }; 71 72 #endif // QGSUNIQUEVALUEWIDGETWRAPPER_H 73