QGIS API Documentation 3.41.0-Master (af5edcb665c)
Loading...
Searching...
No Matches
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:
50 QgsEditorWidgetFactory( const QString &name );
51
52 virtual ~QgsEditorWidgetFactory() = default;
53
66 virtual QgsEditorWidgetWrapper *create( QgsVectorLayer *vl, int fieldIdx, QWidget *editor, QWidget *parent ) const = 0 SIP_FACTORY;
67
68 virtual QgsSearchWidgetWrapper *createSearchWidget( QgsVectorLayer *vl, int fieldIdx, QWidget *parent ) const SIP_FACTORY;
69
75 QString name() const;
76
87 virtual QgsEditorConfigWidget *configWidget( QgsVectorLayer *vl, int fieldIdx, QWidget *parent ) const = 0 SIP_FACTORY;
88
98 inline bool supportsField( const QgsVectorLayer *vl, int fieldIdx ) const { return fieldScore( vl, fieldIdx ) > 0; }
99
108 virtual QHash<const char *, int> supportedWidgetTypes() SIP_SKIP
109 {
110 return QHash<const char *, int>();
111 }
112
132 virtual unsigned int fieldScore( const QgsVectorLayer *vl, int fieldIdx ) const;
133
134 private:
135 QString mName;
136};
137
138#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