QGIS API Documentation  2.11.0-Master
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
qgseditorwidgetwrapper.cpp
Go to the documentation of this file.
1 /***************************************************************************
2  qgseditorwidgetwrapper.cpp
3  --------------------------------------
4  Date : 20.4.2013
5  Copyright : (C) 2013 Matthias Kuhn
6  Email : matthias dot kuhn at gmx 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 "qgseditorwidgetwrapper.h"
17 #include "qgsvectorlayer.h"
18 #include "qgsvectordataprovider.h"
19 #include "qgsfield.h"
20 
21 #include <QWidget>
22 
24  : QgsWidgetWrapper( vl, editor, parent )
25  , mFieldIdx( fieldIdx )
26 {
27 }
28 
30 {
31  return mFieldIdx;
32 }
33 
35 {
36  if ( mFieldIdx < layer()->pendingFields().count() )
37  return layer()->pendingFields()[mFieldIdx];
38  else
39  return QgsField();
40 }
41 
43 {
44  return layer()->dataProvider()->defaultValue( mFieldIdx );
45 }
46 
48 {
49  return qobject_cast<QgsEditorWidgetWrapper*>( widget->property( "EWV2Wrapper" ).value<QgsWidgetWrapper*>() );
50 }
51 
53 {
54  QWidget* wdg = widget();
55  if ( wdg )
56  {
57  wdg->setEnabled( enabled );
58  }
59 }
60 
62 {
63  setValue( feature.attribute( mFieldIdx ) );
64 }
65 
67 {
68  emit valueChanged( QVariant( value ) );
69 }
70 
72 {
73  emit valueChanged( QVariant( value ) );
74 }
75 
77 {
78  emit valueChanged( QVariant( value ) );
79 }
80 
82 {
83  emit valueChanged( QVariant( value ) );
84 }
85 
86 void QgsEditorWidgetWrapper::valueChanged( qlonglong value )
87 {
88  emit valueChanged( QVariant( value ) );
89 }
90 
92 {
93  emit valueChanged( value() );
94 }
void valueChanged()
Will call the value() method to determine the emitted value.
Manages an editor widget Widget and wrapper share the same parent.
virtual QVariant value()=0
Will be used to access the widget's value.
QgsVectorLayer * layer()
Access the QgsVectorLayer, you are working on.
T value() const
void setEnabled(bool enabled) override
Is used to enable or disable the edit functionality of the managed widget.
The feature class encapsulates a single feature including its id, geometry and a list of field/values...
Definition: qgsfeature.h:162
QgsField field()
Access the field.
QVariant defaultValue()
Access the default value of the field.
void setEnabled(bool)
QVariant property(const char *name) const
void setFeature(const QgsFeature &feature) override
Will be called when the feature changes.
static QgsEditorWidgetWrapper * fromWidget(QWidget *widget)
Will return a wrapper for a given widget.
const QgsFields & pendingFields() const
Returns the list of fields of this layer.
virtual void setValue(const QVariant &value)=0
Is called, when the value of the widget needs to be changed.
Encapsulate a field in an attribute table or data source.
Definition: qgsfield.h:38
QVariant attribute(const QString &name) const
Lookup attribute value from attribute name.
Definition: qgsfeature.cpp:236
virtual QVariant defaultValue(int fieldId)
Returns the default value for field specified by fieldId.
int fieldIdx()
Access the field index.
QWidget * widget()
Access the widget managed by this wrapper.
QgsVectorDataProvider * dataProvider()
Returns the data provider.
QgsEditorWidgetWrapper(QgsVectorLayer *vl, int fieldIdx, QWidget *editor=0, QWidget *parent=0)
Create a new widget wrapper.
Represents a vector layer which manages a vector based data sets.
Manages an editor widget Widget and wrapper share the same parent.