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) :
17 QDialog(parent), ui(new Ui::RouteSaveDialog){
20 this->setWindowTitle("Tracking");
26 pixmapRouteStop = new QPixmap("Graphics/route_stop.png");
27 pixmapRouteStart = new QPixmap("Graphics/route_start.png");
28 iconRouteStop = new QIcon(*pixmapRouteStop);
29 iconRouteStart = new QIcon(*pixmapRouteStart);
30 QSize iconSize(125, 125);
31 ui->buttonRouteStartStop->setIconSize(iconSize);
32 ui->buttonRouteStartStop->setIcon(*iconRouteStart);
33 ui->buttonRouteStartStop->setAutoFillBackground(true);
34 ui->buttonRouteStartStop->setStyleSheet("background-color: rgb(0, 0, 0); color: rgb(255, 255, 255)");
36 //Satellite picture and label
37 ui->labelRouteSatelliteStatus->setVisible(0);
38 ui->labelRouteSatellitePicture->setVisible(0);
39 //ui->labelRouteSatellitePicture->setPixmap(QPixmap("Graphics/satellite_vista.png"));
40 timerSatellitePicture = new QTimer();
41 timerSatellitePicture->setInterval(400);
42 connect(timerSatellitePicture, SIGNAL(timeout()),this, SLOT(timerSatellitePictureTimeout()));
44 //Route picture and label
45 ui->labelRouteStatus->setVisible(0);
46 ui->labelRoutePicture->setVisible(0);
47 timerRoutePicture = new QTimer();
48 timerRoutePicture->setInterval(400);
49 connect(timerRoutePicture, SIGNAL(timeout()),this, SLOT(timerRoutePictureTimeout()));
52 ui->labelGpsSpeed->setVisible(0);
55 ui->labelUserInfo->setText("");
58 location = new Maemo5Location(this);
59 gpsData = new GPSData(location);
60 connect(location,SIGNAL(agnss()),this,SLOT(gpsStatus()));
64 *Destructor of this class. Deletes all dynamic objects and sets them to NULL.
66 RouteSaveDialog::~RouteSaveDialog()
69 delete timerSatellitePicture;
70 delete timerRoutePicture;
74 delete pixmapRouteStop;
75 delete pixmapRouteStart;
77 delete iconRouteStart;
83 void RouteSaveDialog::changeEvent(QEvent *e)
85 QDialog::changeEvent(e);
87 case QEvent::LanguageChange:
88 ui->retranslateUi(this);
96 *This slot function is called when route start/stop button clicked.
98 void RouteSaveDialog::on_buttonRouteStartStop_clicked()
100 //If start button clicked
101 if ( buttonStatus == true )
103 buttonStatus = false;
104 ui->buttonRouteStartStop->setIcon(*iconRouteStop);
105 location->startPollingGPS();
111 ui->buttonRouteStartStop->setIcon(*iconRouteStart);
113 //Satellite picture and label
114 ui->labelRouteSatelliteStatus->setText("Searching satellite");
115 ui->labelRouteSatelliteStatus->setVisible(0);
116 ui->labelRouteSatellitePicture->setVisible(0);
117 timerSatellitePicture->stop();
119 //Route picture and label
120 ui->labelRouteStatus->setVisible(0);
121 ui->labelRoutePicture->setVisible(0);
122 timerRoutePicture->stop();
123 location->stopPollingGPS();
125 QString routeFile = QString("routetemp.xml");
126 if (routeDialog->readRouteFromFile( routeFile ) == true)
129 routeDialog = new RouteDialog;
130 connect(routeDialog, SIGNAL(sendroute()), this, SLOT(sendRoute()));
135 ui->labelGpsSpeed->setVisible(0);
137 //Stop route recording
138 gpsData->stopRouteRecording();
143 *This slot function is called when satellite picture timer timeout(400ms).
145 void RouteSaveDialog::timerSatellitePictureTimeout()
147 //If satellite picture visible.
148 if (ui->labelRouteSatellitePicture->isVisible() == 1)
150 ui->labelRouteSatelliteStatus->setVisible(0);
151 ui->labelRouteSatellitePicture->setVisible(0);
155 ui->labelRouteSatelliteStatus->setVisible(1);
156 ui->labelRouteSatellitePicture->setVisible(1);
158 timerSatellitePicture->start();
162 *This slot function is called when route picture timer timeout(400ms).
164 void RouteSaveDialog::timerRoutePictureTimeout()
166 //If route picture visible.
167 if (ui->labelRoutePicture->isVisible() == 1)
169 ui->labelRouteStatus->setVisible(0);
170 ui->labelRoutePicture->setVisible(0);
174 ui->labelRouteStatus->setVisible(1);
175 ui->labelRoutePicture->setVisible(1);
177 timerRoutePicture->start();
183 void RouteSaveDialog::gpsStatus()
185 //IF GPS start button clicked
186 if (buttonStatus == false)
188 //If GPS find 4 satellite.
189 if (location->getSatellitesInUse() >= 4)
191 //Satellite picture and label
192 ui->labelRouteSatelliteStatus->setText("GPS Ready");
193 ui->labelRouteSatelliteStatus->setVisible(1);
194 ui->labelRouteSatellitePicture->setVisible(1);
195 timerSatellitePicture->stop();
197 //Route picture and label
198 ui->labelRouteStatus->setText("Recorded " + QString::number(gpsData->roundCounter) + " route point");
199 ui->labelRouteStatus->setVisible(1);
200 ui->labelRoutePicture->setVisible(1);
201 timerRoutePicture->start();
204 gpsSpeed.sprintf("%.0f",location->getSpeed());
205 ui->labelGpsSpeed->setText(gpsSpeed + " km/h");
206 ui->labelGpsSpeed->setVisible(1);
208 //Start route recording
209 gpsData->startRouteRecording();
212 //If GPS find less than 4 satellite.
215 //Satellite picture and label
216 ui->labelRouteSatelliteStatus->setText("Searching satellite");
217 ui->labelRouteSatelliteStatus->setVisible(1);
218 ui->labelRouteSatellitePicture->setVisible(1);
219 timerSatellitePicture->start();
221 //Route picture and label
222 ui->labelRouteStatus->setVisible(0);
223 ui->labelRoutePicture->setVisible(0);
224 timerRoutePicture->stop();
227 ui->labelGpsSpeed->setVisible(0);
232 //Satellite picture and label
233 ui->labelRouteSatelliteStatus->setText("Searching satellite");
234 ui->labelRouteSatelliteStatus->setVisible(0);
235 ui->labelRouteSatellitePicture->setVisible(0);
236 timerSatellitePicture->stop();
238 //Route picture and label
239 ui->labelRouteStatus->setVisible(0);
240 ui->labelRoutePicture->setVisible(0);
241 timerRoutePicture->stop();
244 ui->labelGpsSpeed->setVisible(0);
249 * This slot function is called when routeDialog emit sendroute (sendPushButton).
251 void RouteSaveDialog::sendRoute()
253 emit sendroute(); //Emit mainwindow clientSendRoute