QGIS API Documentation  2.8.2-Wien
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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 dot kuhn at gmx 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"
20 
21 #include <QComboBox>
22 #include <QListWidget>
23 
25 
47 {
48  Q_OBJECT
49 
50  public:
51  typedef QPair < QVariant, QString > ValueRelationItem;
52  typedef QVector < ValueRelationItem > ValueRelationCache;
53 
54  public:
55  explicit QgsValueRelationWidgetWrapper( QgsVectorLayer* vl, int fieldIdx, QWidget* editor = 0, QWidget* parent = 0 );
56 
57 
58  // QgsEditorWidgetWrapper interface
59  public:
60  QVariant value() override;
61 
62  protected:
63  QWidget* createWidget( QWidget* parent ) override;
64  void initWidget( QWidget* editor ) override;
65  static ValueRelationCache createCache( const QgsEditorWidgetConfig& config );
66 
67  public slots:
68  void setValue( const QVariant& value ) override;
69 
70  private:
71  QComboBox* mComboBox;
72  QListWidget* mListWidget;
73 
74  ValueRelationCache mCache;
75  QgsVectorLayer* mLayer;
76 
78 };
79 
81 
82 #endif // QGSVALUERELATIONWIDGETWRAPPER_H