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