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");
27 helpRoutingDialog = NULL;
31 pixmapRouteStop = new QPixmap("Graphics/route_stop.png");
32 pixmapRouteStart = new QPixmap("Graphics/route_start.png");
33 iconRouteStop = new QIcon(*pixmapRouteStop);
34 iconRouteStart = new QIcon(*pixmapRouteStart);
35 QSize iconSize(125, 125);
36 ui->buttonRouteStartStop->setIconSize(iconSize);
37 ui->buttonRouteStartStop->setIcon(*iconRouteStart);
38 ui->buttonRouteStartStop->setAutoFillBackground(true);
39 ui->buttonRouteStartStop->setStyleSheet("background-color: rgb(0, 0, 0); color: rgb(255, 255, 255)");
40 ui->pushButtonInfo->setAutoFillBackground(true);
41 ui->pushButtonInfo->setStyleSheet("background-color: rgb(0, 0, 0); color: rgb(255, 255, 255)");
43 //Satellite picture and label
44 ui->labelRouteSatelliteStatus->setVisible(0);
45 ui->labelRouteSatellitePicture->setVisible(0);
46 //ui->labelRouteSatellitePicture->setPixmap(QPixmap("Graphics/satellite_vista.png"));
47 timerSatellitePicture = new QTimer();
48 timerSatellitePicture->setInterval(400);
49 connect(timerSatellitePicture, SIGNAL(timeout()),this, SLOT(timerSatellitePictureTimeout()));
50 ui->labelUserInfo->setText("Push start button"); //User info label
52 //Invisible or clear labels
53 ui->labelRouteStatus->setVisible(0);
54 ui->labelRoutePicture->setVisible(0);
55 ui->labelGpsSpeed->setVisible(0); //GPS speed label
56 ui->labelSignalStrength->setText(""); //GPS signal strength label
57 timerRoutePicture = new QTimer();
58 timerRoutePicture->setInterval(400);
59 connect(timerRoutePicture, SIGNAL(timeout()),this, SLOT(timerRoutePictureTimeout()));
62 location = new Maemo5Location(this);
63 gpsData = new GPSData(location);
64 connect(location,SIGNAL(agnss()),this,SLOT(gpsStatus()));
68 *Destructor of this class. Deletes all dynamic objects and sets them to NULL.
70 RouteSaveDialog::~RouteSaveDialog()
72 qDebug() << "__~RouteSaveDialog";
82 delete timerSatellitePicture;
83 delete timerRoutePicture;
84 delete pixmapRouteStop;
85 delete pixmapRouteStart;
87 delete iconRouteStart;
93 void RouteSaveDialog::changeEvent(QEvent *e)
95 QDialog::changeEvent(e);
97 case QEvent::LanguageChange:
98 ui->retranslateUi(this);
106 *This slot function is called when route start/stop button clicked.
108 void RouteSaveDialog::on_buttonRouteStartStop_clicked()
110 if ( buttonStatus == true )//If start button clicked
112 qDebug() << "__start button clicked";
113 buttonStatus = false;
114 ui->buttonRouteStartStop->setIcon(*iconRouteStop);
115 location->startPollingGPS();
118 else //If stop button clicked
120 qDebug() << "__stop button clicked";
122 ui->buttonRouteStartStop->setIcon(*iconRouteStart);
124 //Satellite picture and label
125 ui->labelRouteSatelliteStatus->setText("Searching satellite");
126 ui->labelRouteSatelliteStatus->setVisible(0);
127 ui->labelRouteSatellitePicture->setVisible(0);
128 timerSatellitePicture->stop();
130 //Route picture and label
131 ui->labelRouteStatus->setVisible(0);
132 ui->labelRoutePicture->setVisible(0);
133 timerRoutePicture->stop();
134 location->stopPollingGPS();
136 QString routeFile = QString("routetemp.xml");
137 if (routeDialog->readRouteFromFile( routeFile ) == true)
140 routeDialog = new RouteDialog;
141 connect(routeDialog, SIGNAL(sendroute()), this, SLOT(sendRoute()));
146 ui->labelGpsSpeed->setVisible(0);
148 //Stop route recording
149 gpsData->stopRouteRecording();
152 ui->labelUserInfo->setText("Push start button");
157 *This slot function is called when satellite picture timer timeout(400ms).
159 void RouteSaveDialog::timerSatellitePictureTimeout()
161 //If satellite picture visible.
162 if (ui->labelRouteSatellitePicture->isVisible() == 1)
164 ui->labelRouteSatelliteStatus->setVisible(0);
165 ui->labelRouteSatellitePicture->setVisible(0);
169 ui->labelRouteSatelliteStatus->setVisible(1);
170 ui->labelRouteSatellitePicture->setVisible(1);
172 timerSatellitePicture->start();
176 *This slot function is called when route picture timer timeout(400ms).
178 void RouteSaveDialog::timerRoutePictureTimeout()
180 //If route picture visible.
181 if (ui->labelRoutePicture->isVisible() == 1)
183 ui->labelRouteStatus->setVisible(0);
184 ui->labelRoutePicture->setVisible(0);
188 ui->labelRouteStatus->setVisible(1);
189 ui->labelRoutePicture->setVisible(1);
191 timerRoutePicture->start();
197 void RouteSaveDialog::gpsStatus()
199 //IF GPS start button clicked
200 if (buttonStatus == false)
202 //ui->labelSignalStrength->setText(QString::number(location->getSignalStrength())); //Returns average signal strength of satellites which are in use.
204 //If GPS find 4 or more satellite and signal stregth is 30 or more.
205 if (location->getSatellitesInUse() >= 4 && location->getSignalStrength() >= 30)
207 //Satellite picture and label
208 ui->labelRouteSatelliteStatus->setText("GPS Ready");
209 ui->labelRouteSatelliteStatus->setVisible(1);
210 ui->labelRouteSatellitePicture->setVisible(1);
211 timerSatellitePicture->stop();
213 //Route picture and label
214 ui->labelRouteStatus->setText("Recorded " + QString::number(gpsData->roundCounter) + " route point");
215 ui->labelUserInfo->setText("Recorded " + QString::number(gpsData->roundCounter) + " route point");
216 ui->labelRouteStatus->setVisible(1);
217 ui->labelRoutePicture->setVisible(1);
218 timerRoutePicture->start();
221 gpsSpeed.sprintf("%.0f",location->getSpeed());
222 ui->labelGpsSpeed->setText(gpsSpeed + " km/h");
223 ui->labelGpsSpeed->setVisible(1);
225 //Start route recording
226 gpsData->startRouteRecording();
228 else //If GPS find less than 4 satellite or signal strength is poor.
230 //Satellite picture and label
231 ui->labelRouteSatelliteStatus->setText("Searching satellite");
232 ui->labelUserInfo->setText("Searching satellite");
233 ui->labelRouteSatelliteStatus->setVisible(1);
234 ui->labelRouteSatellitePicture->setVisible(1);
235 timerSatellitePicture->start();
237 //Route picture and label
238 ui->labelRouteStatus->setVisible(0);
239 ui->labelRoutePicture->setVisible(0);
240 timerRoutePicture->stop();
243 ui->labelGpsSpeed->setVisible(0);
246 else //If stop button clicked
248 //Satellite picture and label
249 ui->labelRouteSatelliteStatus->setText("Searching satellite");
250 ui->labelUserInfo->setText("Push start button");
251 ui->labelRouteSatelliteStatus->setVisible(0);
252 ui->labelRouteSatellitePicture->setVisible(0);
253 timerSatellitePicture->stop();
255 //Route picture and label
256 ui->labelRouteStatus->setVisible(0);
257 ui->labelRoutePicture->setVisible(0);
258 timerRoutePicture->stop();
261 ui->labelGpsSpeed->setVisible(0);
266 * This slot function is called when routeDialog emit sendroute (sendPushButton).
268 void RouteSaveDialog::sendRoute()
270 emit sendroute(); //Emit mainwindow clientSendRoute
274 * This slot function called when ever info button clicked.
276 void RouteSaveDialog::on_pushButtonInfo_clicked()
278 if(!helpRoutingDialog)
280 helpRoutingDialog = new HelpRoutingDialog;
282 connect(helpRoutingDialog, SIGNAL(rejected()), this, SLOT(killHelpDialog()));
283 helpRoutingDialog->show();
287 * This slot function called when ever dialog rejected.
289 void RouteSaveDialog::killHelpDialog()
291 if(helpRoutingDialog)
293 qDebug() << "__Route save kill: helpRoutingDialog";
294 delete helpRoutingDialog;
295 helpRoutingDialog = NULL;