SVN checkout 11/12/2010
[monav:monav.git] / plugins / osmimporter / nodemodificatorwidget.cpp
1 /*
2 Copyright 2010  Christian Vetter veaac.fdirct@gmail.com
3
4 This file is part of MoNav.
5
6 MoNav is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
10
11 MoNav is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with MoNav.  If not, see <http://www.gnu.org/licenses/>.
18 */
19
20 #include "nodemodificatorwidget.h"
21 #include "ui_nodemodificatorwidget.h"
22
23 NodeModificatorWidget::NodeModificatorWidget( QWidget* parent ) :
24                 QFrame( parent ),
25                 m_ui( new Ui::NodeModificatorWidget )
26 {
27         m_ui->setupUi( this );
28 }
29
30 NodeModificatorWidget::~NodeModificatorWidget()
31 {
32         delete m_ui;
33 }
34
35 void NodeModificatorWidget::setModificator( const MoNav::NodeModificator& modificator )
36 {
37         m_ui->type->setCurrentIndex( modificator.invert ? 1 : 0 );
38         m_ui->key->setText( modificator.key );
39         m_ui->useValue->setChecked( modificator.checkValue );
40         if ( modificator.checkValue )
41                 m_ui->value->setText( modificator.value );
42         m_ui->action->setCurrentIndex( ( int ) modificator.type );
43         switch ( modificator.type ) {
44         case MoNav::NodeModifyFixed:
45                 m_ui->fixed->setValue( modificator.modificatorValue.toInt() );
46                 break;
47         case MoNav::NodeAccess:
48                 m_ui->access->setChecked( modificator.modificatorValue.toBool() );
49                 break;
50         }
51 }
52
53 MoNav::NodeModificator NodeModificatorWidget::modificator()
54 {
55         MoNav::NodeModificator result;
56         result.invert = m_ui->type->currentIndex() == 1;
57         result.key = m_ui->key->text();
58         result.checkValue = m_ui->useValue->isChecked();
59         if ( result.checkValue )
60                 result.value = m_ui->value->text();
61         result.type = ( MoNav::NodeModificatorType ) m_ui->action->currentIndex();
62         switch ( result.type ) {
63         case MoNav::NodeModifyFixed:
64                 result.modificatorValue = m_ui->fixed->value();
65                 break;
66         case MoNav::NodeAccess:
67                 result.modificatorValue = m_ui->access->isChecked();
68                 break;
69         }
70         return result;
71 }