X-Git-Url: http://git.maemo.org/git/?p=speedfreak;a=blobdiff_plain;f=Client%2Froutesavedialog.cpp;h=9f81e91ec596a35f0d0474d3b561759d967483d9;hp=09730cabb925955ffaee24f5fcfa22e73a50fd14;hb=afbc416a1a09e00162dd5ba4080cf7018b98208f;hpb=5241ec75463415bf6e08caa763699dbb118135de diff --git a/Client/routesavedialog.cpp b/Client/routesavedialog.cpp index 09730ca..9f81e91 100644 --- a/Client/routesavedialog.cpp +++ b/Client/routesavedialog.cpp @@ -20,12 +20,42 @@ RouteSaveDialog::RouteSaveDialog(QWidget *parent) : ui->setupUi(this); this->setWindowTitle("Tracking"); + routeDialog = new RouteDialog; + + //Button settings + buttonStatus = true; + pixmapRouteStop = new QPixmap("Graphics/route_stop.png"); + pixmapRoutePlay = new QPixmap("Graphics/route_play.png"); + iconRouteStop = new QIcon(*pixmapRouteStop); + iconRoutePlay = new QIcon(*pixmapRoutePlay); + QSize iconSize(125, 125); + ui->buttonRouteStartStop->setIconSize(iconSize); + ui->buttonRouteStartStop->setIcon(*iconRoutePlay); + ui->buttonRouteStartStop->setAutoFillBackground(true); + ui->buttonRouteStartStop->setStyleSheet("background-color: rgb(0, 0, 0); color: rgb(255, 255, 255)"); + + //Satellite picture and label ui->labelRouteSatelliteStatus->setVisible(0); ui->labelRouteSatellitePicture->setVisible(0); - ui->labelRouteSatellitePicture->setPixmap(QPixmap("satellite_vista.png")); + //ui->labelRouteSatellitePicture->setPixmap(QPixmap("Graphics/satellite_vista.png")); timerSatellitePicture = new QTimer(); timerSatellitePicture->setInterval(400); connect(timerSatellitePicture, SIGNAL(timeout()),this, SLOT(timerSatellitePictureTimeout())); + + //Route picture and label + ui->labelRouteStatus->setVisible(0); + ui->labelRoutePicture->setVisible(0); + timerRoutePicture = new QTimer(); + timerRoutePicture->setInterval(400); + connect(timerRoutePicture, SIGNAL(timeout()),this, SLOT(timerRoutePictureTimeout())); + + //GPS speed label + ui->labelGpsSpeed->setVisible(0); + + //GPS + location = new Maemo5Location(this); + gpsData = new GPSData(location); + connect(location,SIGNAL(agnss()),this,SLOT(gpsStatus())); } /** @@ -34,6 +64,15 @@ RouteSaveDialog::RouteSaveDialog(QWidget *parent) : RouteSaveDialog::~RouteSaveDialog() { delete ui; + delete timerSatellitePicture; + delete timerRoutePicture; + delete location; + delete gpsData; + delete routeDialog; + delete pixmapRouteStop; + delete pixmapRoutePlay; + delete iconRouteStop; + delete iconRoutePlay; } void RouteSaveDialog::changeEvent(QEvent *e) @@ -53,20 +92,37 @@ void RouteSaveDialog::changeEvent(QEvent *e) */ void RouteSaveDialog::on_buttonRouteStartStop_clicked() { - if ( ui->buttonRouteStartStop->text() == "Start" ) + //If start button clicked + if ( buttonStatus == true ) { - ui->buttonRouteStartStop->setText("Stop"); - ui->labelRouteSatelliteStatus->setText("Searching satellite"); - ui->labelRouteSatelliteStatus->setVisible(1); - ui->labelRouteSatellitePicture->setVisible(1); - timerSatellitePicture->start(); + buttonStatus = false; + ui->buttonRouteStartStop->setIcon(*iconRouteStop); + location->startPollingGPS(); + gpsStatus(); } else { - ui->buttonRouteStartStop->setText("Start"); + buttonStatus = true; + ui->buttonRouteStartStop->setIcon(*iconRoutePlay); + + //Satellite picture and label + ui->labelRouteSatelliteStatus->setText("Searching satellite"); ui->labelRouteSatelliteStatus->setVisible(0); ui->labelRouteSatellitePicture->setVisible(0); timerSatellitePicture->stop(); + + //Route picture and label + ui->labelRouteStatus->setVisible(0); + ui->labelRoutePicture->setVisible(0); + timerRoutePicture->stop(); + location->stopPollingGPS(); + routeDialog->show(); + + //GPS speed label + ui->labelGpsSpeed->setVisible(0); + + //Stop route recording + gpsData->stopRouteRecording(); } } @@ -88,3 +144,87 @@ void RouteSaveDialog::timerSatellitePictureTimeout() } timerSatellitePicture->start(); } + +/** + *This slot function is called when route picture timer timeout(400ms). + */ +void RouteSaveDialog::timerRoutePictureTimeout() +{ + //If route picture visible. + if (ui->labelRoutePicture->isVisible() == 1) + { + ui->labelRouteStatus->setVisible(0); + ui->labelRoutePicture->setVisible(0); + } + else + { + ui->labelRouteStatus->setVisible(1); + ui->labelRoutePicture->setVisible(1); + } + timerRoutePicture->start(); +} + +void RouteSaveDialog::gpsStatus() +{ + //IF GPS start button clicked + if (buttonStatus == false) + { + //If GPS find 4 satellite. + if (location->getSatellitesInUse() >= 4) + { + //Satellite picture and label + ui->labelRouteSatelliteStatus->setText("GPS Ready"); + ui->labelRouteSatelliteStatus->setVisible(1); + ui->labelRouteSatellitePicture->setVisible(1); + timerSatellitePicture->stop(); + + //Route picture and label + ui->labelRouteStatus->setText("Recorded " + QString::number(gpsData->roundCounter) + " route point"); + ui->labelRouteStatus->setVisible(1); + ui->labelRoutePicture->setVisible(1); + timerRoutePicture->start(); + + //Set GPS speed. + gpsSpeed.sprintf("%.0f",location->getSpeed()); + ui->labelGpsSpeed->setText(gpsSpeed + " km/h"); + ui->labelGpsSpeed->setVisible(1); + + //Start route recording + gpsData->startRouteRecording(); + } + + //If GPS find less than 4 satellite. + else + { + //Satellite picture and label + ui->labelRouteSatelliteStatus->setText("Searching satellite"); + ui->labelRouteSatelliteStatus->setVisible(1); + ui->labelRouteSatellitePicture->setVisible(1); + timerSatellitePicture->start(); + + //Route picture and label + ui->labelRouteStatus->setVisible(0); + ui->labelRoutePicture->setVisible(0); + timerRoutePicture->stop(); + + //GPS speed label + ui->labelGpsSpeed->setVisible(0); + } + } + else + { + //Satellite picture and label + ui->labelRouteSatelliteStatus->setText("Searching satellite"); + ui->labelRouteSatelliteStatus->setVisible(0); + ui->labelRouteSatellitePicture->setVisible(0); + timerSatellitePicture->stop(); + + //Route picture and label + ui->labelRouteStatus->setVisible(0); + ui->labelRoutePicture->setVisible(0); + timerRoutePicture->stop(); + + //GPS speed label + ui->labelGpsSpeed->setVisible(0); + } +}