QGIS API Documentation 3.37.0-Master (fdefdf9c27f)
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 <QMap>
22#include <QString>
23#include <QVariant>
24#include "qgis_gui.h"
25
28class QgsVectorLayer;
29class QWidget;
31
42class 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() const;
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 ) const { return fieldScore( vl, fieldIdx ) > 0; }
100
109 virtual QHash<const char *, int> supportedWidgetTypes() { return QHash<const char *, int>(); } SIP_SKIP
110
130 virtual unsigned int fieldScore( const QgsVectorLayer *vl, int fieldIdx ) const;
131
132 private:
133 QString mName;
134};
135
136#endif // QGSEDITORWIDGETFACTORY_H
This class should be subclassed for every configurable editor widget type.
Every attribute editor widget needs a factory, which inherits this class.
virtual QgsEditorConfigWidget * configWidget(QgsVectorLayer *vl, int fieldIdx, QWidget *parent) const =0
Override this in your implementation.
virtual QgsEditorWidgetWrapper * create(QgsVectorLayer *vl, int fieldIdx, QWidget *editor, QWidget *parent) const =0
Override this in your implementation.
virtual ~QgsEditorWidgetFactory()=default
virtual QHash< const char *, int > supportedWidgetTypes()
Returns a list of widget types which this editor widget supports.
bool supportsField(const QgsVectorLayer *vl, int fieldIdx) const
Check if this editor widget type supports a certain field.
Manages an editor widget Widget and wrapper share the same parent.
Shows a search widget on a filter form.
Represents a vector layer which manages a vector based data sets.
#define SIP_SKIP
Definition: qgis_sip.h:126
#define SIP_FACTORY
Definition: qgis_sip.h:76