Added route load button to route save dialog.
[speedfreak] / Client / routesavedialog.cpp
index d24bcb2..0813f56 100644 (file)
@@ -10,6 +10,7 @@
 #include "ui_routesavedialog.h"
 #include <QDebug>
 #include <QPainter>
+#include <QFileDialog>
 
 const QPoint arrowStartEast(100, 100);
 const QPoint arrowEndEast(140, 100);
@@ -103,6 +104,11 @@ RouteSaveDialog::~RouteSaveDialog()
         delete location;
     if(routeDialog)
         delete routeDialog;
+    if(calibrateDialog)
+    {
+        delete calibrateDialog;
+        calibrateDialog = NULL;
+    }
 
     delete timerSatellitePicture;
     delete timerRoutePicture;
@@ -258,37 +264,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 +276,8 @@ void RouteSaveDialog::on_buttonRouteStartStop_clicked()
 
         //User info label
         ui->labelUserInfo->setText("Push start button");
+
+        openRouteDialog("routetemp.xml");
     }
 }
 
@@ -476,6 +453,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 +488,63 @@ QString RouteSaveDialog::getDistanceTraveled()
 {
     return distanceString;
 }
+
+/**
+  * This function
+  */
+void RouteSaveDialog::setProgressbar(int i)
+{
+    qDebug() << "__setProgressbar " ;
+    qDebug() << i;
+    calibrateDialog->setProgressValue(i);
+    progressbarIteration++;
+}
+
+/**
+  * This slot function called when ever load route button clicked.
+  */
+void RouteSaveDialog::on_buttonLoadRoute_clicked()
+{
+    QString fileName = QFileDialog::getOpenFileName(this, tr("Open route"), QDir::currentPath());
+    qDebug() << "__Opening: " + fileName;
+    openRouteDialog(fileName);
+}
+
+/**
+  * This function open route.
+  * @param QString file name
+  */
+void RouteSaveDialog::openRouteDialog(QString 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()),      this, SLOT(sendRoute()));
+    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();
+    }
+}