2 * Route save dialog class
4 * @author Toni Jussila <toni.jussila@fudeco.com>
5 * @copyright (c) 2010 Speed Freak team
6 * @license http://opensource.org/licenses/gpl-license.php GNU Public License
9 #include "routesavedialog.h"
10 #include "ui_routesavedialog.h"
13 *Constructor of this class.
14 *@param QWidget pointer to parent object. By default the value is NULL.
16 RouteSaveDialog::RouteSaveDialog(QWidget *parent) :
18 ui(new Ui::RouteSaveDialog)
21 this->setWindowTitle("Tracking");
23 routeDialog = new RouteDialog;
27 pixmapRouteStop = new QPixmap("Graphics/route_stop.png");
28 pixmapRoutePlay = new QPixmap("Graphics/route_play.png");
29 iconRouteStop = new QIcon(*pixmapRouteStop);
30 iconRoutePlay = new QIcon(*pixmapRoutePlay);
31 QSize iconSize(125, 125);
32 ui->buttonRouteStartStop->setIconSize(iconSize);
33 ui->buttonRouteStartStop->setIcon(*iconRoutePlay);
34 ui->buttonRouteStartStop->setAutoFillBackground(true);
35 ui->buttonRouteStartStop->setStyleSheet("background-color: rgb(0, 0, 0); color: rgb(255, 255, 255)");
37 //Satellite picture and label
38 ui->labelRouteSatelliteStatus->setVisible(0);
39 ui->labelRouteSatellitePicture->setVisible(0);
40 //ui->labelRouteSatellitePicture->setPixmap(QPixmap("Graphics/satellite_vista.png"));
41 timerSatellitePicture = new QTimer();
42 timerSatellitePicture->setInterval(400);
43 connect(timerSatellitePicture, SIGNAL(timeout()),this, SLOT(timerSatellitePictureTimeout()));
45 //Route picture and label
46 ui->labelRouteStatus->setVisible(0);
47 ui->labelRoutePicture->setVisible(0);
48 timerRoutePicture = new QTimer();
49 timerRoutePicture->setInterval(400);
50 connect(timerRoutePicture, SIGNAL(timeout()),this, SLOT(timerRoutePictureTimeout()));
53 ui->labelGpsSpeed->setVisible(0);
56 location = new Maemo5Location(this);
57 gpsData = new GPSData(location);
58 connect(location,SIGNAL(agnss()),this,SLOT(gpsStatus()));
62 *Destructor of this class. Deletes all dynamic objects and sets them to NULL.
64 RouteSaveDialog::~RouteSaveDialog()
67 delete timerSatellitePicture;
68 delete timerRoutePicture;
72 delete pixmapRouteStop;
73 delete pixmapRoutePlay;
78 void RouteSaveDialog::changeEvent(QEvent *e)
80 QDialog::changeEvent(e);
82 case QEvent::LanguageChange:
83 ui->retranslateUi(this);
91 *This slot function is called when route start/stop button clicked.
93 void RouteSaveDialog::on_buttonRouteStartStop_clicked()
95 //If start button clicked
96 if ( buttonStatus == true )
99 ui->buttonRouteStartStop->setIcon(*iconRouteStop);
100 location->startPollingGPS();
106 ui->buttonRouteStartStop->setIcon(*iconRoutePlay);
108 //Satellite picture and label
109 ui->labelRouteSatelliteStatus->setText("Searching satellite");
110 ui->labelRouteSatelliteStatus->setVisible(0);
111 ui->labelRouteSatellitePicture->setVisible(0);
112 timerSatellitePicture->stop();
114 //Route picture and label
115 ui->labelRouteStatus->setVisible(0);
116 ui->labelRoutePicture->setVisible(0);
117 timerRoutePicture->stop();
118 location->stopPollingGPS();
122 ui->labelGpsSpeed->setVisible(0);
124 //Stop route recording
125 gpsData->stopRouteRecording();
130 *This slot function is called when satellite picture timer timeout(400ms).
132 void RouteSaveDialog::timerSatellitePictureTimeout()
134 //If satellite picture visible.
135 if (ui->labelRouteSatellitePicture->isVisible() == 1)
137 ui->labelRouteSatelliteStatus->setVisible(0);
138 ui->labelRouteSatellitePicture->setVisible(0);
142 ui->labelRouteSatelliteStatus->setVisible(1);
143 ui->labelRouteSatellitePicture->setVisible(1);
145 timerSatellitePicture->start();
149 *This slot function is called when route picture timer timeout(400ms).
151 void RouteSaveDialog::timerRoutePictureTimeout()
153 //If route picture visible.
154 if (ui->labelRoutePicture->isVisible() == 1)
156 ui->labelRouteStatus->setVisible(0);
157 ui->labelRoutePicture->setVisible(0);
161 ui->labelRouteStatus->setVisible(1);
162 ui->labelRoutePicture->setVisible(1);
164 timerRoutePicture->start();
167 void RouteSaveDialog::gpsStatus()
169 //IF GPS start button clicked
170 if (buttonStatus == false)
172 //If GPS find 4 satellite.
173 if (location->getSatellitesInUse() >= 4)
175 //Satellite picture and label
176 ui->labelRouteSatelliteStatus->setText("GPS Ready");
177 ui->labelRouteSatelliteStatus->setVisible(1);
178 ui->labelRouteSatellitePicture->setVisible(1);
179 timerSatellitePicture->stop();
181 //Route picture and label
182 ui->labelRouteStatus->setText("Recorded " + QString::number(gpsData->roundCounter) + " route point");
183 ui->labelRouteStatus->setVisible(1);
184 ui->labelRoutePicture->setVisible(1);
185 timerRoutePicture->start();
188 gpsSpeed.sprintf("%.0f",location->getSpeed());
189 ui->labelGpsSpeed->setText(gpsSpeed + " km/h");
190 ui->labelGpsSpeed->setVisible(1);
192 //Start route recording
193 gpsData->startRouteRecording();
196 //If GPS find less than 4 satellite.
199 //Satellite picture and label
200 ui->labelRouteSatelliteStatus->setText("Searching satellite");
201 ui->labelRouteSatelliteStatus->setVisible(1);
202 ui->labelRouteSatellitePicture->setVisible(1);
203 timerSatellitePicture->start();
205 //Route picture and label
206 ui->labelRouteStatus->setVisible(0);
207 ui->labelRoutePicture->setVisible(0);
208 timerRoutePicture->stop();
211 ui->labelGpsSpeed->setVisible(0);
216 //Satellite picture and label
217 ui->labelRouteSatelliteStatus->setText("Searching satellite");
218 ui->labelRouteSatelliteStatus->setVisible(0);
219 ui->labelRouteSatellitePicture->setVisible(0);
220 timerSatellitePicture->stop();
222 //Route picture and label
223 ui->labelRouteStatus->setVisible(0);
224 ui->labelRoutePicture->setVisible(0);
225 timerRoutePicture->stop();
228 ui->labelGpsSpeed->setVisible(0);