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()));
47 ui->labelUserInfo->setText("Push start button"); //User info label
49 //Invisible or clear labels
50 ui->labelRouteStatus->setVisible(0);
51 ui->labelRoutePicture->setVisible(0);
52 ui->labelGpsSpeed->setVisible(0); //GPS speed label
53 ui->labelSignalStrength->setText(""); //GPS signal strength label
54 timerRoutePicture = new QTimer();
55 timerRoutePicture->setInterval(400);
56 connect(timerRoutePicture, SIGNAL(timeout()),this, SLOT(timerRoutePictureTimeout()));
59 location = new Maemo5Location(this);
60 gpsData = new GPSData(location);
61 connect(location,SIGNAL(agnss()),this,SLOT(gpsStatus()));
65 *Destructor of this class. Deletes all dynamic objects and sets them to NULL.
67 RouteSaveDialog::~RouteSaveDialog()
69 qDebug() << "__~RouteSaveDialog";
79 delete timerSatellitePicture;
80 delete timerRoutePicture;
81 delete pixmapRouteStop;
82 delete pixmapRouteStart;
84 delete iconRouteStart;
90 void RouteSaveDialog::changeEvent(QEvent *e)
92 QDialog::changeEvent(e);
94 case QEvent::LanguageChange:
95 ui->retranslateUi(this);
103 *This slot function is called when route start/stop button clicked.
105 void RouteSaveDialog::on_buttonRouteStartStop_clicked()
107 if ( buttonStatus == true )//If start button clicked
109 qDebug() << "__start button clicked";
110 buttonStatus = false;
111 ui->buttonRouteStartStop->setIcon(*iconRouteStop);
112 location->startPollingGPS();
115 else //If stop button clicked
117 qDebug() << "__stop button clicked";
119 ui->buttonRouteStartStop->setIcon(*iconRouteStart);
121 //Satellite picture and label
122 ui->labelRouteSatelliteStatus->setText("Searching satellite");
123 ui->labelRouteSatelliteStatus->setVisible(0);
124 ui->labelRouteSatellitePicture->setVisible(0);
125 timerSatellitePicture->stop();
127 //Route picture and label
128 ui->labelRouteStatus->setVisible(0);
129 ui->labelRoutePicture->setVisible(0);
130 timerRoutePicture->stop();
131 location->stopPollingGPS();
133 QString routeFile = QString("routetemp.xml");
134 if (routeDialog->readRouteFromFile( routeFile ) == true)
137 routeDialog = new RouteDialog;
138 connect(routeDialog, SIGNAL(sendroute()), this, SLOT(sendRoute()));
143 ui->labelGpsSpeed->setVisible(0);
145 //Stop route recording
146 gpsData->stopRouteRecording();
149 ui->labelUserInfo->setText("Push start button");
154 *This slot function is called when satellite picture timer timeout(400ms).
156 void RouteSaveDialog::timerSatellitePictureTimeout()
158 //If satellite picture visible.
159 if (ui->labelRouteSatellitePicture->isVisible() == 1)
161 ui->labelRouteSatelliteStatus->setVisible(0);
162 ui->labelRouteSatellitePicture->setVisible(0);
166 ui->labelRouteSatelliteStatus->setVisible(1);
167 ui->labelRouteSatellitePicture->setVisible(1);
169 timerSatellitePicture->start();
173 *This slot function is called when route picture timer timeout(400ms).
175 void RouteSaveDialog::timerRoutePictureTimeout()
177 //If route picture visible.
178 if (ui->labelRoutePicture->isVisible() == 1)
180 ui->labelRouteStatus->setVisible(0);
181 ui->labelRoutePicture->setVisible(0);
185 ui->labelRouteStatus->setVisible(1);
186 ui->labelRoutePicture->setVisible(1);
188 timerRoutePicture->start();
194 void RouteSaveDialog::gpsStatus()
196 //IF GPS start button clicked
197 if (buttonStatus == false)
199 //ui->labelSignalStrength->setText(QString::number(location->getSignalStrength())); //Returns average signal strength of satellites which are in use.
201 //If GPS find 4 or more satellite and signal stregth is 30 or more.
202 if (location->getSatellitesInUse() >= 4 && location->getSignalStrength() >= 30)
204 //Satellite picture and label
205 ui->labelRouteSatelliteStatus->setText("GPS Ready");
206 ui->labelRouteSatelliteStatus->setVisible(1);
207 ui->labelRouteSatellitePicture->setVisible(1);
208 timerSatellitePicture->stop();
210 //Route picture and label
211 ui->labelRouteStatus->setText("Recorded " + QString::number(gpsData->roundCounter) + " route point");
212 ui->labelUserInfo->setText("Recorded " + QString::number(gpsData->roundCounter) + " route point");
213 ui->labelRouteStatus->setVisible(1);
214 ui->labelRoutePicture->setVisible(1);
215 timerRoutePicture->start();
218 gpsSpeed.sprintf("%.0f",location->getSpeed());
219 ui->labelGpsSpeed->setText(gpsSpeed + " km/h");
220 ui->labelGpsSpeed->setVisible(1);
222 //Start route recording
223 gpsData->startRouteRecording();
225 else //If GPS find less than 4 satellite or signal strength is poor.
227 //Satellite picture and label
228 ui->labelRouteSatelliteStatus->setText("Searching satellite");
229 ui->labelUserInfo->setText("Searching satellite");
230 ui->labelRouteSatelliteStatus->setVisible(1);
231 ui->labelRouteSatellitePicture->setVisible(1);
232 timerSatellitePicture->start();
234 //Route picture and label
235 ui->labelRouteStatus->setVisible(0);
236 ui->labelRoutePicture->setVisible(0);
237 timerRoutePicture->stop();
240 ui->labelGpsSpeed->setVisible(0);
243 else //If stop button clicked
245 //Satellite picture and label
246 ui->labelRouteSatelliteStatus->setText("Searching satellite");
247 ui->labelUserInfo->setText("Push start button");
248 ui->labelRouteSatelliteStatus->setVisible(0);
249 ui->labelRouteSatellitePicture->setVisible(0);
250 timerSatellitePicture->stop();
252 //Route picture and label
253 ui->labelRouteStatus->setVisible(0);
254 ui->labelRoutePicture->setVisible(0);
255 timerRoutePicture->stop();
258 ui->labelGpsSpeed->setVisible(0);
263 * This slot function is called when routeDialog emit sendroute (sendPushButton).
265 void RouteSaveDialog::sendRoute()
267 emit sendroute(); //Emit mainwindow clientSendRoute