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 location = new Maemo5Location(this);
56 gpsData = new GPSData(location);
57 connect(location,SIGNAL(agnss()),this,SLOT(gpsStatus()));
61 *Destructor of this class. Deletes all dynamic objects and sets them to NULL.
63 RouteSaveDialog::~RouteSaveDialog()
66 delete timerSatellitePicture;
67 delete timerRoutePicture;
71 delete pixmapRouteStop;
72 delete pixmapRouteStart;
74 delete iconRouteStart;
80 void RouteSaveDialog::changeEvent(QEvent *e)
82 QDialog::changeEvent(e);
84 case QEvent::LanguageChange:
85 ui->retranslateUi(this);
93 *This slot function is called when route start/stop button clicked.
95 void RouteSaveDialog::on_buttonRouteStartStop_clicked()
97 //If start button clicked
98 if ( buttonStatus == true )
100 buttonStatus = false;
101 ui->buttonRouteStartStop->setIcon(*iconRouteStop);
102 location->startPollingGPS();
108 ui->buttonRouteStartStop->setIcon(*iconRouteStart);
110 //Satellite picture and label
111 ui->labelRouteSatelliteStatus->setText("Searching satellite");
112 ui->labelRouteSatelliteStatus->setVisible(0);
113 ui->labelRouteSatellitePicture->setVisible(0);
114 timerSatellitePicture->stop();
116 //Route picture and label
117 ui->labelRouteStatus->setVisible(0);
118 ui->labelRoutePicture->setVisible(0);
119 timerRoutePicture->stop();
120 location->stopPollingGPS();
122 QString routeFile = QString("routetemp.xml");
123 if (routeDialog->readRouteFromFile( routeFile ) == true)
126 routeDialog = new RouteDialog;
127 connect(routeDialog, SIGNAL(sendroute()), this, SLOT(sendRoute()));
132 ui->labelGpsSpeed->setVisible(0);
134 //Stop route recording
135 gpsData->stopRouteRecording();
140 *This slot function is called when satellite picture timer timeout(400ms).
142 void RouteSaveDialog::timerSatellitePictureTimeout()
144 //If satellite picture visible.
145 if (ui->labelRouteSatellitePicture->isVisible() == 1)
147 ui->labelRouteSatelliteStatus->setVisible(0);
148 ui->labelRouteSatellitePicture->setVisible(0);
152 ui->labelRouteSatelliteStatus->setVisible(1);
153 ui->labelRouteSatellitePicture->setVisible(1);
155 timerSatellitePicture->start();
159 *This slot function is called when route picture timer timeout(400ms).
161 void RouteSaveDialog::timerRoutePictureTimeout()
163 //If route picture visible.
164 if (ui->labelRoutePicture->isVisible() == 1)
166 ui->labelRouteStatus->setVisible(0);
167 ui->labelRoutePicture->setVisible(0);
171 ui->labelRouteStatus->setVisible(1);
172 ui->labelRoutePicture->setVisible(1);
174 timerRoutePicture->start();
180 void RouteSaveDialog::gpsStatus()
182 //IF GPS start button clicked
183 if (buttonStatus == false)
185 //If GPS find 4 satellite.
186 if (location->getSatellitesInUse() >= 4)
188 //Satellite picture and label
189 ui->labelRouteSatelliteStatus->setText("GPS Ready");
190 ui->labelRouteSatelliteStatus->setVisible(1);
191 ui->labelRouteSatellitePicture->setVisible(1);
192 timerSatellitePicture->stop();
194 //Route picture and label
195 ui->labelRouteStatus->setText("Recorded " + QString::number(gpsData->roundCounter) + " route point");
196 ui->labelRouteStatus->setVisible(1);
197 ui->labelRoutePicture->setVisible(1);
198 timerRoutePicture->start();
201 gpsSpeed.sprintf("%.0f",location->getSpeed());
202 ui->labelGpsSpeed->setText(gpsSpeed + " km/h");
203 ui->labelGpsSpeed->setVisible(1);
205 //Start route recording
206 gpsData->startRouteRecording();
209 //If GPS find less than 4 satellite.
212 //Satellite picture and label
213 ui->labelRouteSatelliteStatus->setText("Searching satellite");
214 ui->labelRouteSatelliteStatus->setVisible(1);
215 ui->labelRouteSatellitePicture->setVisible(1);
216 timerSatellitePicture->start();
218 //Route picture and label
219 ui->labelRouteStatus->setVisible(0);
220 ui->labelRoutePicture->setVisible(0);
221 timerRoutePicture->stop();
224 ui->labelGpsSpeed->setVisible(0);
229 //Satellite picture and label
230 ui->labelRouteSatelliteStatus->setText("Searching satellite");
231 ui->labelRouteSatelliteStatus->setVisible(0);
232 ui->labelRouteSatellitePicture->setVisible(0);
233 timerSatellitePicture->stop();
235 //Route picture and label
236 ui->labelRouteStatus->setVisible(0);
237 ui->labelRoutePicture->setVisible(0);
238 timerRoutePicture->stop();
241 ui->labelGpsSpeed->setVisible(0);
246 * This slot function is called when routeDialog emit sendroute (sendPushButton).
248 void RouteSaveDialog::sendRoute()
250 emit sendroute(); //Emit mainwindow clientSendRoute