#include "stationlistmodel.h"
#include "stationlistview.h"
#include "settingsdialog.h"
+#include "settings.h"
#include <QDebug>
#include <QMessageBox>
connect(checkingTimer, SIGNAL(timeout()), SLOT(updateStation()));
stationView->show();
- if (recentStations.isEmpty() || !stationViewPreferred) {
+ Settings *settings = Settings::instance();
+ if (settings->recentStations().isEmpty() || !settings->stationViewPreferred()) {
stationListView->show();
} else {
- queryStation(recentStations.front());
+ queryStation(settings->recentStations().front());
}
}
void App::queryStation(const QString &station)
{
QNetworkRequest request;
- request.setUrl(queryBaseUrl);
+ Settings *settings = Settings::instance();
+ request.setUrl(settings->queryBaseUrl());
const QString queryString = "stazione=" + station;
const QByteArray query(queryString.toLocal8Bit());
stationQueryReply = accessManager->post(request, query);
connect(stationQueryReply, SIGNAL(finished()),
this, SLOT(downloadFinished()));
- recentStations.push_front(station);
- recentStations.removeDuplicates();
- if (recentStations.count() > RECENT_STATIONS_MAX_COUNT) {
- recentStations.pop_back();
+ settings->recentStations().push_front(station);
+ settings->recentStations().removeDuplicates();
+ if (settings->recentStations().count() > RECENT_STATIONS_MAX_COUNT) {
+ settings->recentStations().pop_back();
}
#ifdef Q_WS_MAEMO_5
stationListView->setAttribute(Qt::WA_Maemo5ShowProgressIndicator, true);
void App::updateStation()
{
+ Settings *settings = Settings::instance();
+
qDebug() << "updating station data";
- if (!recentStations.isEmpty() && !stationListView->isVisible()) {
- queryStation(recentStations.front());
+ if (!settings->recentStations().isEmpty() && !stationListView->isVisible()) {
+ queryStation(settings->recentStations().front());
}
}
void App::readSettings(void)
{
- QSettings settings;
- queryBaseUrl = settings.value("QueryURL",
- "http://mobile.viaggiatreno.it/viaggiatreno/mobile/stazione").toString();
- stationView->setBaseUrl(queryBaseUrl);
-
- recentStations = settings.value("RecentStations").toString().split(",");
- qDebug() << "RecentStations:" << recentStations;
-
- stationViewPreferred = settings.value("StationViewPreferred", false).toBool();
- qDebug() << "StationsViewPreferred:" << stationViewPreferred;
-
- checkingInterval = settings.value("CheckInterval", 0).toInt();
- qDebug() << "CheckInterval:" << checkingInterval;
+ Settings *settings = Settings::instance();
+ stationView->setBaseUrl(settings->queryBaseUrl());
/*
I would use > 0 here, but people may have an old settings file with a 2
As a workaround I consider anything less than 30 seconds as too short
and disable the timer.
*/
- if (checkingInterval > 30000) {
- checkingTimer->setInterval(checkingInterval);
+ if (settings->checkingInterval() > 30000) {
+ checkingTimer->setInterval(settings->checkingInterval());
checkingTimer->start();
} else {
checkingTimer->setInterval(-1);
void App::saveSettings(void)
{
- QSettings settings;
-
- qDebug() << "Saving Settings to" << settings.fileName();
-
- settings.setValue("QueryURL", queryBaseUrl);
- settings.setValue("RecentStations", recentStations.join(","));
- settings.setValue("CheckInterval", checkingInterval);
- settings.setValue("StationViewPreferred", stationViewPreferred);
+ Settings::instance()->save();
}
QString App::dataDir(void)
*/
+#include <settings.h>
#include "settingsdialog.h"
#include "ui_settingsdialog.h"
#include <QMaemo5ValueButton>
#endif
-#include <QSettings>
SettingsDialog::SettingsDialog(QWidget *parent) :
QDialog(parent),
#endif
ui(new Ui::SettingsDialog)
{
+ Settings *settings = Settings::instance();
+
ui->setupUi(this);
- QSettings settings;
- bool showStationPreference = settings.value("StationViewPreferred",
- false).toBool();
+ bool showStationPreference = settings->stationViewPreferred();
ui->showLastStationCheckBox->setChecked(showStationPreference);
connect(ui->showLastStationCheckBox, SIGNAL(toggled(bool)),
SLOT(showStationChanged(bool)));
- bool checkingInterval = settings.value("CheckInterval", 0).toInt();
+ bool checkingInterval = settings->checkingInterval();
ui->periodicUpdateCheckBox->setChecked(checkingInterval > 30000);
connect(ui->periodicUpdateCheckBox, SIGNAL(toggled(bool)),
SLOT(periodicUpdateToggled(bool)));
void SettingsDialog::showStationChanged(bool newValue)
{
- QSettings settings;
- settings.setValue("StationViewPreferred", newValue);
+ Settings *settings = Settings::instance();
+ settings->setStationViewPreferred(newValue);
}
void SettingsDialog::periodicUpdateToggled(bool checked)
{
- QSettings settings;
- settings.setValue("CheckInterval", checked ? 120000 : 0);
+ Settings *settings = Settings::instance();
+ settings->setCheckingInterval(checked ? 120000 : 0);
}
stationListModel->load(trueFilePath("stations:stations.qpl"));
stationListProxyModel->setSourceModel(stationListModel);
- stationListProxyModel->setFilterCaseSensitivity(Qt::CaseInsensitive);
+ /* Types to be made accessible to QML */
qmlRegisterType<Settings>("net.cirulla.quandoparte", 1, 0, "Settings");
+ qmlRegisterType<StationListProxyModel>(
+ "net.cirulla.quandoparte", 1, 0, "StationListProxyModel");
QDeclarativeContext *context = this->rootContext();
+ /* objects to be made accessible to QML */
+ context->setContextProperty("settings", Settings::instance());
+ context->setContextProperty("stationList", stationListModel);
context->setContextProperty("stationListProxyModel", stationListProxyModel);
// This does not seem ot work in harmattan. As a workaround, change dir to