QGIS API Documentation  2.99.0-Master (009e47e)
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 <QDomNode>
20 #include "qgis_sip.h"
21 #include "qgis.h"
22 #include <QMap>
23 #include <QString>
24 #include <QVariant>
25 #include "qgis_gui.h"
26 
29 class QgsVectorLayer;
30 class QWidget;
32 
42 class GUI_EXPORT QgsEditorWidgetFactory
43 {
44  public:
45 
51  QgsEditorWidgetFactory( const QString &name );
52 
53  virtual ~QgsEditorWidgetFactory() = default;
54 
67  virtual QgsEditorWidgetWrapper *create( QgsVectorLayer *vl, int fieldIdx, QWidget *editor, QWidget *parent ) const = 0 SIP_FACTORY;
68 
69  virtual QgsSearchWidgetWrapper *createSearchWidget( QgsVectorLayer *vl, int fieldIdx, QWidget *parent ) const SIP_FACTORY;
70 
76  QString name();
77 
88  virtual QgsEditorConfigWidget *configWidget( QgsVectorLayer *vl, int fieldIdx, QWidget *parent ) const = 0 SIP_FACTORY;
89 
99  inline bool supportsField( const QgsVectorLayer *vl, int fieldIdx ) { return fieldScore( vl, fieldIdx ) > 0; }
100 
109  virtual QHash<const char *, int> supportedWidgetTypes() { return QHash<const char *, int>(); } SIP_SKIP
110 
129  virtual unsigned int fieldScore( const QgsVectorLayer *vl, int fieldIdx ) const;
130 
131  private:
132  QString mName;
133 };
134 
135 #endif // QGSEDITORWIDGETFACTORY_H
Manages an editor widget Widget and wrapper share the same parent.
This class should be subclassed for every configurable editor widget type.
Manages an editor widget Widget and wrapper share the same parent.
virtual QHash< const char *, int > supportedWidgetTypes()
Returns a list of widget types which this editor widget supports.
#define SIP_SKIP
Definition: qgis_sip.h:107
Every attribute editor widget needs a factory, which inherits this class.
#define SIP_FACTORY
Definition: qgis_sip.h:57
bool supportsField(const QgsVectorLayer *vl, int fieldIdx)
Check if this editor widget type supports a certain field.
Represents a vector layer which manages a vector based data sets.