Add ability to check train details
[quandoparte] / application / settings.cpp
index 8e56595..20c6597 100644 (file)
@@ -25,109 +25,124 @@ Boston, MA 02110-1301, USA.
 #include <QSettings>
 #include <QStringList>
 
+Settings *Settings::instance()
+{
+    static Settings *settings = 0;
+
+    if (!settings)
+        settings = new Settings();
+    return settings;
+}
+
 Settings::Settings(QObject *parent) :
     QObject(parent)
 {
-    load();
+    qDebug() << "Settings constructor called";
 }
+
 Settings::~Settings()
 {
+    qDebug() << "Settings destructor called";
     save();
 }
 
-void Settings::load()
-{
-    QSettings settings;
-    m_queryBaseUrl = settings.value("QueryURL",
-                                  "http://mobile.viaggiatreno.it/viaggiatreno/mobile/stazione").toString();
-
-    m_recentStations = settings.value("RecentStations").toString().split(",");
-    qDebug() << "RecentStations:" << m_recentStations;
-
-    m_stationViewPreferred = settings.value("StationViewPreferred", false).toBool();
-    qDebug() << "StationsViewPreferred:" << m_stationViewPreferred;
-
-    m_checkingInterval = settings.value("CheckInterval", 0).toInt();
-    qDebug() << "CheckInterval:" << m_checkingInterval;
-
-    m_showArrivalsPreferred = settings.value("StationView/ShowArrivals", false).toBool();
-    qDebug() << "ShowArrivalsPreferred:" << m_showArrivalsPreferred;
-}
-
 void Settings::save()
 {
     QSettings settings;
 
     qDebug() << "Saving Settings to" << settings.fileName();
-
-    settings.setValue("QueryURL", m_queryBaseUrl);
-    settings.setValue("RecentStations", m_recentStations.join(","));
-    settings.setValue("CheckInterval", m_checkingInterval);
-    settings.setValue("StationViewPreferred", m_stationViewPreferred);
-    settings.setValue("StationView/ShowArrivals", m_stationViewPreferred);
+    settings.sync();
 }
 
 QString Settings::queryBaseUrl()
 {
-    return m_queryBaseUrl;
+    QSettings settings;
+    return settings.value("QueryURL",
+                          "http://mobile.viaggiatreno.it/viaggiatreno/mobile/").toString();
 }
 
 void Settings::setQueryBaseUrl(const QString &url)
 {
-    m_queryBaseUrl = url;
-    emit queryBaseUrlChanged(m_queryBaseUrl);
+    QSettings settings;
+
+    settings.setValue("QueryURL", url);
+    emit queryBaseUrlChanged();
 }
 
 QStringList Settings::recentStations()
 {
-    return m_recentStations;
+    QSettings settings;
+
+    return settings.value("RecentStations").toString().split(",");
 }
 
 void Settings::setRecentStations(const QStringList &stations)
 {
-    m_recentStations = stations;
-    emit recentStationsChanged(m_recentStations);
+    QSettings settings;
+
+    settings.setValue("RecentStations", stations.join(","));
+    emit recentStationsChanged();
 }
 
 int Settings::checkingInterval()
 {
-    return m_checkingInterval;
+    QSettings settings;
+
+    return settings.value("CheckInterval", 0).toInt();
 }
 
 void Settings::setCheckingInterval(int interval)
 {
-    m_checkingInterval = interval;
+    QSettings settings;
 
-    emit checkingIntervalChanged(m_checkingInterval);
+    settings.setValue("CheckInterval", interval);
+    emit checkingIntervalChanged();
 }
 
 bool Settings::stationViewPreferred()
 {
-    return m_stationViewPreferred;
+    QSettings settings;
+
+    return settings.value("StationViewPreferred", false).toBool();
 }
 
 void Settings::setStationViewPreferred(bool preference)
 {
-    m_stationViewPreferred = preference;
-    emit stationViewPreferredChanged(m_stationViewPreferred);
+    QSettings settings;
+
+    settings.setValue("StationViewPreferred", preference);
+    emit stationViewPreferredChanged();
 }
 
-Settings *Settings::instance()
+bool Settings::showArrivalsPreferred()
 {
-    static Settings *settings = 0;
+    QSettings settings;
 
-    if (!settings)
-        settings = new Settings();
-    return settings;
+    return settings.value("StationView/ShowArrivals", false).toBool();
 }
 
-bool Settings::showArrivalsPreferred()
+void Settings::setShowArrivalsPreferred(bool preference)
 {
-    return m_showArrivalsPreferred;
+    QSettings settings;
+
+    settings.setValue("StationView/ShowArrivals", preference);
+    emit showArrivalsPreferredChanged();
 }
 
-void Settings::setShowArrivalsPreferred(bool preference)
+StationListProxyModel::SortingMode Settings::stationListSortingMode()
 {
-    m_showArrivalsPreferred = preference;
-    emit showArrivalsPreferredChanged(m_showArrivalsPreferred);
+    QSettings settings;
+
+    int mode = settings.value("StationListView/SortingMode").toInt();
+    qDebug() << "StationListSortingMode is" << mode;
+    return (StationListProxyModel::SortingMode)mode;
+}
+
+void Settings::setStationListSortingMode(StationListProxyModel::SortingMode mode)
+{
+    QSettings settings;
+
+    settings.setValue("StationListView/SortingMode", mode);
+    qDebug() << "StationListSortingMode set to" << mode;
+    emit stationListSortingModeChanged();
 }