QGIS API Documentation  2.10.1-Pisa
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
qgseditorwidgetfactory.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgseditorwidgetfactory.h
3  --------------------------------------
4  Date : 21.4.2013
5  Copyright : (C) 2013 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 QGSEDITORWIDGETFACTORY_H
17 #define QGSEDITORWIDGETFACTORY_H
18 
19 #include "qgseditorwidgetwrapper.h"
20 #include "qgsapplication.h"
22 
23 #include <QDomNode>
24 #include <QMap>
25 #include <QString>
26 
28 
38 class GUI_EXPORT QgsEditorWidgetFactory
39 {
40  public:
46  QgsEditorWidgetFactory( const QString& name );
47 
48  virtual ~QgsEditorWidgetFactory();
49 
62  virtual QgsEditorWidgetWrapper* create( QgsVectorLayer* vl, int fieldIdx, QWidget* editor, QWidget* parent ) const = 0;
63 
64  virtual QgsEditorWidgetWrapper* createSearchWidget( QgsVectorLayer* vl, int fieldIdx, QWidget* parent ) const;
65 
71  QString name();
72 
83  virtual QgsEditorConfigWidget* configWidget( QgsVectorLayer* vl, int fieldIdx, QWidget* parent ) const = 0;
84 
94  QgsEditorWidgetConfig readEditorConfig( const QDomElement& configElement, QgsVectorLayer* layer, int fieldIdx );
95 
105  virtual void writeConfig( const QgsEditorWidgetConfig& config, QDomElement& configElement, QDomDocument& doc, const QgsVectorLayer* layer, int fieldIdx );
106 
116  inline bool supportsField( QgsVectorLayer* vl, int fieldIdx ) { return isFieldSupported( vl, fieldIdx ); }
117 
129  virtual QString representValue( QgsVectorLayer* vl, int fieldIdx, const QgsEditorWidgetConfig& config, const QVariant& cache, const QVariant& value ) const;
130 
140  virtual QVariant createCache( QgsVectorLayer* vl, int fieldIdx, const QgsEditorWidgetConfig& config );
141 
151  virtual QgsEditorWidgetConfig readConfig( const QDomElement& configElement, QgsVectorLayer* layer, int fieldIdx );
152 
153  private:
165  virtual bool isFieldSupported( QgsVectorLayer* vl, int fieldIdx );
166 
167  private:
168  QString mName;
169 };
170 
171 #endif // QGSEDITORWIDGETFACTORY_H
This class should be subclassed for every configurable editor widget type.
Manages an editor widget Widget and wrapper share the same parent.
bool supportsField(QgsVectorLayer *vl, int fieldIdx)
Check if this editor widget type supports a certain field.
Every attribute editor widget needs a factory, which inherits this class.
Represents a vector layer which manages a vector based data sets.