3 Copyright (C) 2010 Christian Pulvermacher
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version.
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
15 You should have received a copy of the GNU General Public License along
16 with this program; if not, write to the Free Software Foundation, Inc.,
17 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20 #include <QMaemo5ValueButton>
21 #include <QMaemo5ListPickSelector>
23 #include "preferences.h"
27 void migrateConfiguration()
30 int config_ver = settings.value("config_version", 0).toInt();
31 if(config_ver == 2) //config file up-to-date
34 std::cout << "Migrating from configuration ver. " << config_ver << "\n";
37 int left_zoom = settings.value("left_zoom", 0).toInt();
38 int right_zoom = settings.value("left_zoom", 0).toInt();
40 settings.setValue("left_zoom", left_zoom+1);
42 settings.setValue("left_zoom", right_zoom+1);
46 QString last_hostname = settings.value("last_hostname", "").toString();
47 settings.remove("last_hostname");
48 if(!last_hostname.isEmpty()) {
49 //make sure hostname is sane
50 last_hostname.remove(QChar('/'));
51 last_hostname.remove(QChar('\\'));
52 last_hostname = last_hostname.toLower();
54 settings.setValue(QString("hosts/%1/position").arg(last_hostname), 0);
59 settings.setValue("config_version", config_ver);
64 Preferences::Preferences(QWidget *parent):
67 setWindowTitle(tr("Preferences"));
69 QHBoxLayout *layout1 = new QHBoxLayout();
70 QVBoxLayout *layout2 = new QVBoxLayout();
72 QMaemo5ValueButton *rotation = new QMaemo5ValueButton(tr("Screen Rotation"), this);
73 rotation_selector = new QMaemo5ListPickSelector(this);
74 QStandardItemModel *model = new QStandardItemModel(0, 1, this);
75 model->appendRow(new QStandardItem(tr("Automatic")));
76 model->appendRow(new QStandardItem(tr("Landscape")));
77 model->appendRow(new QStandardItem(tr("Portrait")));
78 rotation_selector->setModel(model);
79 rotation_selector->setCurrentIndex(settings.value("screen_rotation", 0).toInt());
80 rotation->setPickSelector(rotation_selector);
81 rotation->setValueLayout(QMaemo5ValueButton::ValueBesideText);
82 layout2->addWidget(rotation);
84 QMaemo5ValueButton *leftzoom = new QMaemo5ValueButton(tr("Left Zoom Button"), this);
85 leftzoom_selector = new QMaemo5ListPickSelector(this);
86 QStandardItemModel *key_model = new QStandardItemModel(0, 1, this);
87 key_model->insertRow(0, new QStandardItem(tr("Left Click")));
88 key_model->insertRow(1, new QStandardItem(tr("Right Click")));
89 key_model->insertRow(2, new QStandardItem(tr("Middle Click")));
90 key_model->insertRow(3, new QStandardItem(tr("Wheel Up")));
91 key_model->insertRow(4, new QStandardItem(tr("Wheel Down")));
92 key_model->insertRow(5, new QStandardItem(tr("Page Up")));
93 key_model->insertRow(6, new QStandardItem(tr("Page Down")));
94 leftzoom_selector->setModel(key_model);
95 leftzoom_selector->setCurrentIndex(settings.value("left_zoom", 0).toInt());
96 leftzoom->setPickSelector(leftzoom_selector);
97 leftzoom->setValueLayout(QMaemo5ValueButton::ValueBesideText);
98 layout2->addWidget(leftzoom);
100 QMaemo5ValueButton *rightzoom = new QMaemo5ValueButton(tr("Right Zoom Button"), this);
101 rightzoom_selector = new QMaemo5ListPickSelector(this);
102 rightzoom_selector->setModel(key_model);
103 rightzoom_selector->setCurrentIndex(settings.value("right_zoom", 1).toInt());
104 rightzoom->setPickSelector(rightzoom_selector);
105 rightzoom->setValueLayout(QMaemo5ValueButton::ValueBesideText);
106 layout2->addWidget(rightzoom);
108 disable_tapping = new QCheckBox(tr("Disable Tapping"), this);
109 disable_tapping->setChecked(settings.value("disable_tapping", false).toBool());
110 layout2->addWidget(disable_tapping);
112 QPushButton *ok = new QPushButton(tr("Done"));
113 ok->setMaximumWidth(100);
115 layout1->addLayout(layout2);
116 layout1->addWidget(ok);
120 connect(ok, SIGNAL(clicked()),
121 this, SLOT(accept()));
122 connect(this, SIGNAL(accepted()),
126 void Preferences::save()
128 settings.setValue("screen_rotation", rotation_selector->currentIndex());
129 settings.setValue("left_zoom", leftzoom_selector->currentIndex());
130 settings.setValue("right_zoom", rightzoom_selector->currentIndex());
131 settings.setValue("disable_tapping", disable_tapping->isChecked());