Use the new Settings class
[quandoparte] / application / settings.cpp
1 /*
2
3 Copyright (C) 2011 Luciano Montanaro <mikelima@cirulla.net>
4
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.
9
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 GNU
13 General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with this program; see the file COPYING.  If not, write to
17 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 Boston, MA 02110-1301, USA.
19
20 */
21
22 #include "settings.h"
23
24 #include <QDebug>
25 #include <QSettings>
26 #include <QStringList>
27
28 Settings::Settings(QObject *parent) :
29     QObject(parent)
30 {
31     load();
32 }
33 Settings::~Settings()
34 {
35     save();
36 }
37
38 void Settings::load()
39 {
40     QSettings settings;
41     m_queryBaseUrl = settings.value("QueryURL",
42                                   "http://mobile.viaggiatreno.it/viaggiatreno/mobile/stazione").toString();
43
44     m_recentStations = settings.value("RecentStations").toString().split(",");
45     qDebug() << "RecentStations:" << m_recentStations;
46
47     m_stationViewPreferred = settings.value("StationViewPreferred", false).toBool();
48     qDebug() << "StationsViewPreferred:" << m_stationViewPreferred;
49
50     m_checkingInterval = settings.value("CheckInterval", 0).toInt();
51     qDebug() << "CheckInterval:" << m_checkingInterval;
52 }
53
54 void Settings::save()
55 {
56     QSettings settings;
57
58     qDebug() << "Saving Settings to" << settings.fileName();
59
60     settings.setValue("QueryURL", m_queryBaseUrl);
61     settings.setValue("RecentStations", m_recentStations.join(","));
62     settings.setValue("CheckInterval", m_checkingInterval);
63     settings.setValue("StationViewPreferred", m_stationViewPreferred);
64 }
65
66 QString Settings::queryBaseUrl()
67 {
68     return m_queryBaseUrl;
69 }
70
71 void Settings::setQueryBaseUrl(const QString &url)
72 {
73     m_queryBaseUrl = url;
74     emit queryBaseUrlChanged(m_queryBaseUrl);
75 }
76
77 QStringList Settings::recentStations()
78 {
79     return m_recentStations;
80 }
81
82 void Settings::setRecentStations(const QStringList &stations)
83 {
84     m_recentStations = stations;
85     emit recentStationsChanged(m_recentStations);
86 }
87
88 int Settings::checkingInterval()
89 {
90     return m_checkingInterval;
91 }
92
93 void Settings::setCheckingInterval(int interval)
94 {
95     m_checkingInterval = interval;
96
97     emit checkingIntervalChanged(m_checkingInterval);
98 }
99
100 bool Settings::stationViewPreferred()
101 {
102     return m_stationViewPreferred;
103 }
104
105 void Settings::setStationViewPreferred(bool preference)
106 {
107     m_stationViewPreferred = preference;
108     emit stationViewPreferredChanged(m_stationViewPreferred);
109 }
110
111 Settings *Settings::instance()
112 {
113     static Settings *settings = 0;
114
115     if (!settings)
116         settings = new Settings();
117     return settings;
118 }