Fixed minor bugs
[speedfreak] / Client / routesavedialog.cpp
index d24bcb2..3119b30 100644 (file)
@@ -10,6 +10,8 @@
 #include "ui_routesavedialog.h"
 #include <QDebug>
 #include <QPainter>
+#include <QFileDialog>
+#include <QDir>
 
 const QPoint arrowStartEast(100, 100);
 const QPoint arrowEndEast(140, 100);
@@ -60,6 +62,8 @@ RouteSaveDialog::RouteSaveDialog(QWidget *parent) :
     ui->buttonRouteStartStop->setStyleSheet("background-color: rgb(0, 0, 0); color: rgb(255, 255, 255)");
     ui->pushButtonInfo->setAutoFillBackground(true);
     ui->pushButtonInfo->setStyleSheet("background-color: rgb(0, 0, 0); color: rgb(255, 255, 255)");
+    ui->buttonLoadRoute->setAutoFillBackground(true);
+    ui->buttonLoadRoute->setStyleSheet("background-color: rgb(0, 0, 0); color: rgb(255, 255, 255)");
 
     //Satellite picture and label
     ui->labelRouteSatelliteStatus->setVisible(0);
@@ -87,6 +91,17 @@ RouteSaveDialog::RouteSaveDialog(QWidget *parent) :
     location = new Maemo5Location(this);
     gpsData = new GPSData(location);
     connect(location,SIGNAL(agnss()),this,SLOT(gpsStatus()));
+
+    // Route folder
+    QString folder = "/home/user/MyDocs/speedfreak";
+    if(!QDir(folder).exists())
+    {
+        QDir().mkdir(folder);
+    }
+    if(!QDir(folder + "/route").exists())
+    {
+        QDir().mkdir(folder + "/route");
+    }
 }
 
 /**
@@ -103,6 +118,11 @@ RouteSaveDialog::~RouteSaveDialog()
         delete location;
     if(routeDialog)
         delete routeDialog;
+    if(calibrateDialog)
+    {
+        delete calibrateDialog;
+        calibrateDialog = NULL;
+    }
 
     delete timerSatellitePicture;
     delete timerRoutePicture;
@@ -258,37 +278,6 @@ void RouteSaveDialog::on_buttonRouteStartStop_clicked()
         timerRoutePicture->stop();
         location->stopPollingGPS();
 
-        // Progres bar
-        if(!calibrateDialog)
-            calibrateDialog = new CalibrateDialog();
-
-        calibrateDialog->show();
-        calibrateDialog->resetProgressValue();
-        int points = 100;
-        int iteration = 0;
-        calibrateDialog->setMaxValue( points + 1 );
-
-        /*do {
-            calibrateDialog->setProgressValue(iteration);
-            iteration++;
-
-        } while(iteration != points);*/
-
-        QString routeFile = QString("routetemp.xml");
-        if (routeDialog->readRouteFromFile( routeFile , calibrateDialog) == true)
-        {
-            if(!routeDialog)
-                routeDialog = new RouteDialog(this);
-            connect(routeDialog, SIGNAL(sendroute()), this, SLOT(sendRoute()));
-
-            calibrateDialog->close();
-            routeDialog->show();
-        }
-        else
-        {
-            calibrateDialog->close();
-        }
-
         //Set GPS speed labels in visible
         ui->labelGpsSpeed->setVisible(0);
         ui->labelGpsAvgSpeed->setVisible(0);
@@ -301,6 +290,9 @@ void RouteSaveDialog::on_buttonRouteStartStop_clicked()
 
         //User info label
         ui->labelUserInfo->setText("Push start button");
+
+        fileName = "/home/user/MyDocs/speedfreak/route/routetemp.xml";
+        openRouteDialog();
     }
 }
 
@@ -444,9 +436,9 @@ void RouteSaveDialog::gpsStatus()
 /**
   * This slot function is called when routeDialog emit sendroute (sendPushButton).
   */
-void RouteSaveDialog::sendRoute()
+void RouteSaveDialog::sendRoute(QString newName, int i)
 {
-    emit sendroute(); //Emit mainwindow clientSendRoute
+    emit sendroute(fileName, newName, i); //Emit mainwindow clientSendRoute
 }
 
 /**
@@ -476,6 +468,25 @@ void RouteSaveDialog::killHelpDialog()
 }
 
 /**
+  * This slot function called when ever route dialog rejected.
+  */
+void RouteSaveDialog::killRouteDialog()
+{
+    if(routeDialog)
+    {
+        qDebug() << "__Route save kill: routeDialog";
+        delete routeDialog;
+        routeDialog = NULL;
+    }
+    if(calibrateDialog)
+    {
+        qDebug() << "__Route save kill: calibrateDialog";
+        delete calibrateDialog;
+        calibrateDialog = NULL;
+    }
+}
+
+/**
   * This function return speed average.
   * @return double average speed
   */
@@ -492,3 +503,66 @@ QString RouteSaveDialog::getDistanceTraveled()
 {
     return distanceString;
 }
+
+/**
+  * This function
+  */
+void RouteSaveDialog::setProgressbar(int i)
+{
+    qDebug() << "__setProgressbar: " + QString::number(i);
+    //qDebug() << i;
+    calibrateDialog->setProgressValue(i);
+    progressbarIteration++;
+}
+
+/**
+  * This slot function called when ever load route button clicked.
+  */
+void RouteSaveDialog::on_buttonLoadRoute_clicked()
+{
+    fileName = QFileDialog::getOpenFileName(this, tr("Open route"), "/home/user/MyDocs/speedfreak/route", "XML (*.xml)");
+    qDebug() << "__Opening: " + fileName;
+    openRouteDialog();//fileName);
+}
+
+/**
+  * This function open and show route.
+  * @param QString file name
+  */
+void RouteSaveDialog::openRouteDialog()
+{
+    if(fileName != "")
+    {
+        // Progress bar
+        if(!calibrateDialog)
+        {
+            calibrateDialog = new CalibrateDialog();
+        }
+
+        progressbarPoints = 100;
+        progressbarIteration = 0;
+        calibrateDialog->resetProgressValue();
+        calibrateDialog->setMaxValue( progressbarPoints );
+        calibrateDialog->setTitle("Calculating route...");
+        calibrateDialog->show();
+
+        if(!routeDialog)
+        {
+            routeDialog = new RouteDialog(this);
+        }
+
+        connect(routeDialog, SIGNAL(sendroute(QString, int)), this, SLOT(sendRoute(QString, int)));
+        connect(routeDialog, SIGNAL(progressbar(int)), this, SLOT(setProgressbar(int)));
+        connect(routeDialog, SIGNAL(rejected()), this, SLOT(killRouteDialog()));
+
+        if (routeDialog->readRouteFromFile( fileName ) == true)
+        {
+            calibrateDialog->close();
+            routeDialog->show();
+        }
+        else
+        {
+            calibrateDialog->close();
+        }
+    }
+}