QGIS API Documentation  2.5.0-Master
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
qgsvaluemapwidgetwrapper.cpp
Go to the documentation of this file.
1 /***************************************************************************
2  qgsvaluemapwidgetwrapper.cpp
3  --------------------------------------
4  Date : 5.1.2014
5  Copyright : (C) 2014 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 
17 
18 QgsValueMapWidgetWrapper::QgsValueMapWidgetWrapper( QgsVectorLayer* vl, int fieldIdx, QWidget* editor, QWidget* parent )
19  : QgsEditorWidgetWrapper( vl, fieldIdx, editor, parent )
20 {
21 }
22 
23 
25 {
26  QVariant v;
27 
28  if ( mComboBox )
29  v = mComboBox->itemData( mComboBox->currentIndex() );
30 
31  return v;
32 }
33 
34 QWidget* QgsValueMapWidgetWrapper::createWidget( QWidget* parent )
35 {
36  return new QComboBox( parent );
37 }
38 
39 void QgsValueMapWidgetWrapper::initWidget( QWidget* editor )
40 {
41  mComboBox = qobject_cast<QComboBox*>( editor );
42 
43  if ( mComboBox )
44  {
45  const QgsEditorWidgetConfig cfg = config();
46  QgsEditorWidgetConfig::ConstIterator it = cfg.constBegin();
47 
48  while ( it != cfg.constEnd() )
49  {
50  mComboBox->addItem( it.key(), it.value() );
51  ++it;
52  }
53  connect( mComboBox, SIGNAL( currentIndexChanged( int ) ), this, SLOT( valueChanged() ) );
54  }
55 }
56 
57 void QgsValueMapWidgetWrapper::setValue( const QVariant& value )
58 {
59  if ( mComboBox )
60  mComboBox->setCurrentIndex( mComboBox->findData( value ) );
61 }
QgsValueMapWidgetWrapper(QgsVectorLayer *vl, int fieldIdx, QWidget *editor=0, QWidget *parent=0)
void valueChanged()
Will call the value() method to determine the emitted value.
Manages an editor widget Widget and wrapper share the same parent.
void initWidget(QWidget *editor)
This method should initialize the editor widget with runtime data.
const QgsEditorWidgetConfig config()
Returns the whole config.
QWidget * createWidget(QWidget *parent)
This method should create a new widget with the provided parent.
QVariant value()
Will be used to access the widget's value.
void setValue(const QVariant &value)
QMap< QString, QVariant > QgsEditorWidgetConfig
Holds a set of configuration parameters for a editor widget wrapper.
Represents a vector layer which manages a vector based data sets.