Store current journey details in persistent settings
[harbour-pedalo.git] / src / harbour-pedalo.cpp
index acdcc2e..6346ad3 100644 (file)
@@ -7,6 +7,10 @@
 
 #include "journey.h"
 #include "journeymodel.h"
+#include "status.h"
+#include "settings.h"
+
+#include "harbour-pedalo.h"
 
 int main(int argc, char *argv[])
 {
@@ -21,11 +25,22 @@ int main(int argc, char *argv[])
     // To display the view, call "show()" (will show fullscreen on device).
 
     QScopedPointer<QGuiApplication> app(SailfishApp::application(argc, argv));
+    // These values are used by QSettings to access the config file in
+    // /home/nemo/.local/share/flypig/harbour-pedalo.conf
+    //QCoreApplication::setOrganizationName("flypig");
+    QCoreApplication::setOrganizationDomain("www.flypig.co.uk");
+    QCoreApplication::setApplicationName(APP_NAME);
+
+    Settings::instantiate();
+    qmlRegisterSingletonType<Settings>("harbour.pedalo.settings", 1, 0, "Settings", Settings::provider);
 
     JourneyModel journeys;
+    Status currentStatus;
+    Settings::getInstance().setMainStatus(currentStatus);
+    Settings::getInstance().loadSettings();
 
     QFile file;
-    file.setFileName(QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation) + "/journeys.csv");
+    file.setFileName(Settings::getConfigDir() + "/journeys.csv");
     journeys.importFromFile(file);
 
     QScopedPointer<QQuickView> view(SailfishApp::createView());
@@ -33,16 +48,19 @@ int main(int argc, char *argv[])
 
     QQmlContext *ctxt = view->rootContext();
     ctxt->setContextProperty("journeymodel", &journeys);
+    ctxt->setContextProperty("currentStatus", &currentStatus);
 
     view->show();
     int result = app->exec();
 
     // Write out the journey data
     QDir dir;
-    dir.mkpath(QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation));
-    file.setFileName(QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation) + "/journeys.csv");
+    dir.mkpath(Settings::getConfigDir());
+    file.setFileName(Settings::getConfigDir() + "/journeys.csv");
     qDebug() << "File saved as: " << file.fileName();
     journeys.exportToFile(file);
 
+    Settings::getInstance().saveSettings();
+
     return result;
 }