QGIS API Documentation  2.9.0-Master
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
qgscheckboxwidgetwrapper.cpp
Go to the documentation of this file.
1 /***************************************************************************
2  qgscheckboxwidgetwrapper.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 QgsCheckboxWidgetWrapper::QgsCheckboxWidgetWrapper( QgsVectorLayer* vl, int fieldIdx, QWidget* editor, QWidget* parent )
19  : QgsEditorWidgetWrapper( vl, fieldIdx, editor, parent )
20  , mCheckBox( NULL )
21  , mGroupBox( NULL )
22 {
23 }
24 
25 
27 {
28  QVariant v;
29 
30  if ( mGroupBox )
31  v = mGroupBox->isChecked() ? config( "CheckedState" ) : config( "UncheckedState" );
32 
33  if ( mCheckBox )
34  v = mCheckBox->isChecked() ? config( "CheckedState" ) : config( "UncheckedState" );
35 
36 
37  return v;
38 }
39 
40 QWidget* QgsCheckboxWidgetWrapper::createWidget( QWidget* parent )
41 {
42  return new QCheckBox( parent );
43 }
44 
45 void QgsCheckboxWidgetWrapper::initWidget( QWidget* editor )
46 {
47  mCheckBox = qobject_cast<QCheckBox*>( editor );
48  mGroupBox = qobject_cast<QGroupBox*>( editor );
49 
50  if ( mCheckBox )
51  connect( mCheckBox, SIGNAL( toggled( bool ) ), this, SLOT( valueChanged( bool ) ) );
52  if ( mGroupBox )
53  connect( mGroupBox, SIGNAL( toggled( bool ) ), this, SLOT( valueChanged( bool ) ) );
54 }
55 
56 void QgsCheckboxWidgetWrapper::setValue( const QVariant& value )
57 {
58  if ( mGroupBox )
59  {
60  mGroupBox->setChecked( value == config( "CheckedState" ) );
61  }
62 
63  if ( mCheckBox )
64  {
65  mCheckBox->setChecked( value == config( "CheckedState" ) );
66  }
67 }