QGIS API Documentation  3.2.0-Bonn (bc43194)
qgscolorwidgetfactory.cpp
Go to the documentation of this file.
1 /***************************************************************************
2  qgscolorwidgetfactory.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 
16 #include "qgscolorwidgetfactory.h"
17 
18 #include "qgscolorwidgetwrapper.h"
19 #include "qgsdummyconfigdlg.h"
20 
22  : QgsEditorWidgetFactory( name )
23 {
24 }
25 
26 
27 QgsEditorWidgetWrapper *QgsColorWidgetFactory::create( QgsVectorLayer *vl, int fieldIdx, QWidget *editor, QWidget *parent ) const
28 {
29  return new QgsColorWidgetWrapper( vl, fieldIdx, editor, parent );
30 }
31 
32 QgsEditorConfigWidget *QgsColorWidgetFactory::configWidget( QgsVectorLayer *vl, int fieldIdx, QWidget *parent ) const
33 {
34  return new QgsDummyConfigDlg( vl, fieldIdx, parent, QObject::tr( "Field contains a color." ) );
35 }
36 
37 unsigned int QgsColorWidgetFactory::fieldScore( const QgsVectorLayer *vl, int fieldIdx ) const
38 {
39  const QgsField field = vl->fields().field( fieldIdx );
40  const QVariant::Type type = field.type();
41  if ( type == QVariant::Color )
42  {
43  return 20;
44  }
45  else
46  {
47  return 5;
48  }
49 }
QgsEditorConfigWidget * configWidget(QgsVectorLayer *vl, int fieldIdx, QWidget *parent) const override
Override this in your implementation.
Wraps a color widget.
This class should be subclassed for every configurable editor widget type.
Manages an editor widget Widget and wrapper share the same parent.
QgsFields fields() const override
Returns the list of fields of this layer.
QgsColorWidgetFactory(const QString &name)
Every attribute editor widget needs a factory, which inherits this class.
Encapsulate a field in an attribute table or data source.
Definition: qgsfield.h:48
QgsEditorWidgetWrapper * create(QgsVectorLayer *vl, int fieldIdx, QWidget *editor, QWidget *parent) const override
Override this in your implementation.
unsigned int fieldScore(const QgsVectorLayer *vl, int fieldIdx) const override
This method allows disabling this editor widget type for a certain field.
Represents a vector layer which manages a vector based data sets.
QgsField field(int fieldIdx) const
Gets field at particular index (must be in range 0..N-1)
Definition: qgsfields.cpp:150
QVariant::Type type
Definition: qgsfield.h:55