SVN checkout 11/12/2010
[monav:monav.git] / plugins / osmimporter / oisettingsdialog.h
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 #ifndef SETTINGSDIALOG_H
21 #define SETTINGSDIALOG_H
22
23 #include "waymodificatorwidget.h"
24 #include "nodemodificatorwidget.h"
25 #include "types.h"
26
27 #include <QWidget>
28 #include <vector>
29
30 namespace Ui {
31          class OISettingsDialog;
32 }
33
34 class QSettings;
35
36 class OISettingsDialog : public QWidget {
37          Q_OBJECT
38 public:
39          OISettingsDialog(QWidget *parent = 0);
40          ~OISettingsDialog();
41
42         struct Settings {
43                 QVector< MoNav::Highway > highways;
44                 QVector< MoNav::WayModificator > wayModificators;
45                 QVector< MoNav::NodeModificator > nodeModificators;
46
47                 double acceleration;
48                 double decceleration;
49                 double tangentialAcceleration;
50                 int pedestrian;
51                 int otherCars;
52
53                 QStringList accessList;
54                 bool defaultCitySpeed;
55                 bool ignoreOneway;
56                 bool ignoreMaxspeed;
57
58                 QStringList languageSettings;
59         };
60
61         bool getSettings( Settings* settings );
62         bool loadSettings( QSettings* settings );
63         bool saveSettings( QSettings* settings );
64
65 public slots:
66         void addSpeed();
67         void save();
68         void load();
69         void currentIndexChanged();
70         void currentLanguageChanged ( int currentRow );
71         void addLanguage();
72         void deleteLanguage();
73         void addWayModificator();
74         void addNodeModificator();
75
76 protected:
77         void connectSlots();
78         QString load( const QString& filename, bool nameOnly = false );
79         void save( const QString& filename, QString name );
80
81         Ui::OISettingsDialog *m_ui;
82         QString m_lastFilename;
83         QStringList m_speedProfiles;
84 };
85
86 #endif // SETTINGSDIALOG_H