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"
14 *Constructor of this class.
15 *@param QWidget pointer to parent object. By default the value is NULL.
17 RouteSaveDialog::RouteSaveDialog(QWidget *parent) :
18 QDialog(parent), ui(new Ui::RouteSaveDialog){
20 qDebug() << "__RouteSaveDialog";
22 this->setWindowTitle("Tracking");
30 pixmapRouteStop = new QPixmap("Graphics/route_stop.png");
31 pixmapRouteStart = new QPixmap("Graphics/route_start.png");
32 iconRouteStop = new QIcon(*pixmapRouteStop);
33 iconRouteStart = new QIcon(*pixmapRouteStart);
34 QSize iconSize(125, 125);
35 ui->buttonRouteStartStop->setIconSize(iconSize);
36 ui->buttonRouteStartStop->setIcon(*iconRouteStart);
37 ui->buttonRouteStartStop->setAutoFillBackground(true);
38 ui->buttonRouteStartStop->setStyleSheet("background-color: rgb(0, 0, 0); color: rgb(255, 255, 255)");
40 //Satellite picture and label
41 ui->labelRouteSatelliteStatus->setVisible(0);
42 ui->labelRouteSatellitePicture->setVisible(0);
43 //ui->labelRouteSatellitePicture->setPixmap(QPixmap("Graphics/satellite_vista.png"));
44 timerSatellitePicture = new QTimer();
45 timerSatellitePicture->setInterval(400);
46 connect(timerSatellitePicture, SIGNAL(timeout()),this, SLOT(timerSatellitePictureTimeout()));
48 //Invisible or clear labels
49 ui->labelRouteStatus->setVisible(0);
50 ui->labelRoutePicture->setVisible(0);
51 ui->labelGpsSpeed->setVisible(0); //GPS speed label
52 ui->labelUserInfo->setText(""); //User info label
53 timerRoutePicture = new QTimer();
54 timerRoutePicture->setInterval(400);
55 connect(timerRoutePicture, SIGNAL(timeout()),this, SLOT(timerRoutePictureTimeout()));
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()
68 qDebug() << "__~RouteSaveDialog";
78 delete timerSatellitePicture;
79 delete timerRoutePicture;
80 delete pixmapRouteStop;
81 delete pixmapRouteStart;
83 delete iconRouteStart;
89 void RouteSaveDialog::changeEvent(QEvent *e)
91 QDialog::changeEvent(e);
93 case QEvent::LanguageChange:
94 ui->retranslateUi(this);
102 *This slot function is called when route start/stop button clicked.
104 void RouteSaveDialog::on_buttonRouteStartStop_clicked()
106 if ( buttonStatus == true )//If start button clicked
108 qDebug() << "__start button clicked";
109 buttonStatus = false;
110 ui->buttonRouteStartStop->setIcon(*iconRouteStop);
111 location->startPollingGPS();
114 else //If stop button clicked
116 qDebug() << "__stop button clicked";
118 ui->buttonRouteStartStop->setIcon(*iconRouteStart);
120 //Satellite picture and label
121 ui->labelRouteSatelliteStatus->setText("Searching satellite");
122 ui->labelRouteSatelliteStatus->setVisible(0);
123 ui->labelRouteSatellitePicture->setVisible(0);
124 timerSatellitePicture->stop();
126 //Route picture and label
127 ui->labelRouteStatus->setVisible(0);
128 ui->labelRoutePicture->setVisible(0);
129 timerRoutePicture->stop();
130 location->stopPollingGPS();
132 QString routeFile = QString("routetemp.xml");
133 if (routeDialog->readRouteFromFile( routeFile ) == true)
136 routeDialog = new RouteDialog;
137 connect(routeDialog, SIGNAL(sendroute()), this, SLOT(sendRoute()));
142 ui->labelGpsSpeed->setVisible(0);
144 //Stop route recording
145 gpsData->stopRouteRecording();
150 *This slot function is called when satellite picture timer timeout(400ms).
152 void RouteSaveDialog::timerSatellitePictureTimeout()
154 //If satellite picture visible.
155 if (ui->labelRouteSatellitePicture->isVisible() == 1)
157 ui->labelRouteSatelliteStatus->setVisible(0);
158 ui->labelRouteSatellitePicture->setVisible(0);
162 ui->labelRouteSatelliteStatus->setVisible(1);
163 ui->labelRouteSatellitePicture->setVisible(1);
165 timerSatellitePicture->start();
169 *This slot function is called when route picture timer timeout(400ms).
171 void RouteSaveDialog::timerRoutePictureTimeout()
173 //If route picture visible.
174 if (ui->labelRoutePicture->isVisible() == 1)
176 ui->labelRouteStatus->setVisible(0);
177 ui->labelRoutePicture->setVisible(0);
181 ui->labelRouteStatus->setVisible(1);
182 ui->labelRoutePicture->setVisible(1);
184 timerRoutePicture->start();
190 void RouteSaveDialog::gpsStatus()
192 //IF GPS start button clicked
193 if (buttonStatus == false)
195 //If GPS find 4 satellite.
196 if (location->getSatellitesInUse() >= 4)
198 //Satellite picture and label
199 ui->labelRouteSatelliteStatus->setText("GPS Ready");
200 ui->labelRouteSatelliteStatus->setVisible(1);
201 ui->labelRouteSatellitePicture->setVisible(1);
202 timerSatellitePicture->stop();
204 //Route picture and label
205 ui->labelRouteStatus->setText("Recorded " + QString::number(gpsData->roundCounter) + " route point");
206 ui->labelRouteStatus->setVisible(1);
207 ui->labelRoutePicture->setVisible(1);
208 timerRoutePicture->start();
211 gpsSpeed.sprintf("%.0f",location->getSpeed());
212 ui->labelGpsSpeed->setText(gpsSpeed + " km/h");
213 ui->labelGpsSpeed->setVisible(1);
215 //Start route recording
216 gpsData->startRouteRecording();
219 //If GPS find less than 4 satellite.
222 //Satellite picture and label
223 ui->labelRouteSatelliteStatus->setText("Searching satellite");
224 ui->labelRouteSatelliteStatus->setVisible(1);
225 ui->labelRouteSatellitePicture->setVisible(1);
226 timerSatellitePicture->start();
228 //Route picture and label
229 ui->labelRouteStatus->setVisible(0);
230 ui->labelRoutePicture->setVisible(0);
231 timerRoutePicture->stop();
234 ui->labelGpsSpeed->setVisible(0);
239 //Satellite picture and label
240 ui->labelRouteSatelliteStatus->setText("Searching satellite");
241 ui->labelRouteSatelliteStatus->setVisible(0);
242 ui->labelRouteSatellitePicture->setVisible(0);
243 timerSatellitePicture->stop();
245 //Route picture and label
246 ui->labelRouteStatus->setVisible(0);
247 ui->labelRoutePicture->setVisible(0);
248 timerRoutePicture->stop();
251 ui->labelGpsSpeed->setVisible(0);
256 * This slot function is called when routeDialog emit sendroute (sendPushButton).
258 void RouteSaveDialog::sendRoute()
260 emit sendroute(); //Emit mainwindow clientSendRoute