QGIS API Documentation  2.17.0-Master (3a3b9ab7)
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 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 QGSEDITORWIDGETFACTORY_H
17 #define QGSEDITORWIDGETFACTORY_H
18 
19 #include "qgseditorwidgetwrapper.h"
20 #include "qgsapplication.h"
21 #include "qgssearchwidgetwrapper.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 QgsSearchWidgetWrapper* 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 
127 
139  virtual QString representValue( QgsVectorLayer* vl, int fieldIdx, const QgsEditorWidgetConfig& config, const QVariant& cache, const QVariant& value ) const;
140 
154  virtual QVariant sortValue( QgsVectorLayer* vl, int fieldIdx, const QgsEditorWidgetConfig& config, const QVariant& cache, const QVariant& value ) const;
155 
164  virtual Qt::AlignmentFlag alignmentFlag( QgsVectorLayer* vl, int fieldIdx, const QgsEditorWidgetConfig& config ) const;
165 
175  virtual QVariant createCache( QgsVectorLayer* vl, int fieldIdx, const QgsEditorWidgetConfig& config );
176 
186  virtual QgsEditorWidgetConfig readConfig( const QDomElement& configElement, QgsVectorLayer* layer, int fieldIdx );
187 
188  private:
200  virtual bool isFieldSupported( QgsVectorLayer* vl, int fieldIdx );
201 
202  private:
203  QString mName;
204 };
205 
206 #endif // QGSEDITORWIDGETFACTORY_H
Manages an editor widget Widget and wrapper share the same parent.
virtual QMap< const char *, int > supportedWidgetTypes()
Returns a list of widget types which this editor widget supports.
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.
QVariantMap QgsEditorWidgetConfig
Holds a set of configuration parameters for a editor widget wrapper.
Every attribute editor widget needs a factory, which inherits this class.
Represents a vector layer which manages a vector based data sets.