QGIS API Documentation  3.2.0-Bonn (bc43194)
qgsenumerationwidgetfactory.cpp
Go to the documentation of this file.
1 /***************************************************************************
2  qgsenumerationwidgetfactory.cpp
3  --------------------------------------
4  Date : 5.1.2014
5  Copyright : (C) 2014 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 
17 
19 #include "qgsdummyconfigdlg.h"
20 #include "qgsvectorlayer.h"
21 #include "qgsvectordataprovider.h"
22 
24  : QgsEditorWidgetFactory( name )
25 {
26 }
27 
28 QgsEditorWidgetWrapper *QgsEnumerationWidgetFactory::create( QgsVectorLayer *vl, int fieldIdx, QWidget *editor, QWidget *parent ) const
29 {
30  return new QgsEnumerationWidgetWrapper( vl, fieldIdx, editor, parent );
31 }
32 
34 {
35  return new QgsDummyConfigDlg( vl, fieldIdx, parent, QObject::tr( "Combo box with values that can be used within the column's type. Must be supported by the provider." ) );
36 }
37 
38 
39 unsigned int QgsEnumerationWidgetFactory::fieldScore( const QgsVectorLayer *vl, int fieldIdx ) const
40 {
41  QStringList list;
42  vl->dataProvider()->enumValues( fieldIdx, list );
43  if ( !list.isEmpty() )
44  return 20;
45  else
46  return 0;
47 }
unsigned int fieldScore(const QgsVectorLayer *vl, int fieldIdx) const override
This method allows disabling this editor widget type for a certain field.
QgsEditorWidgetWrapper * create(QgsVectorLayer *vl, int fieldIdx, QWidget *editor, QWidget *parent) const override
Override this in your implementation.
This class should be subclassed for every configurable editor widget type.
Manages an editor widget Widget and wrapper share the same parent.
QgsEnumerationWidgetFactory(const QString &name)
Every attribute editor widget needs a factory, which inherits this class.
QgsVectorDataProvider * dataProvider() override
Returns the layer's data provider.
virtual void enumValues(int index, QStringList &enumList) const
Returns the possible enum values of an attribute.
Represents a vector layer which manages a vector based data sets.
QgsEditorConfigWidget * configWidget(QgsVectorLayer *vl, int fieldIdx, QWidget *parent) const override
Override this in your implementation.