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) :
18 ui(new Ui::RouteSaveDialog)
22 routeDialog = new RouteDialog;
26 pixmapRouteStop = new QPixmap("Graphics/route_stop.png");
27 pixmapRoutePlay = new QPixmap("Graphics/route_play.png");
28 iconRouteStop = new QIcon(*pixmapRouteStop);
29 iconRoutePlay = new QIcon(*pixmapRoutePlay);
30 QSize iconSize(125, 125);
31 ui->buttonRouteStartStop->setIconSize(iconSize);
32 ui->buttonRouteStartStop->setIcon(*iconRoutePlay);
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 pixmapRoutePlay;
77 void RouteSaveDialog::changeEvent(QEvent *e)
79 QDialog::changeEvent(e);
81 case QEvent::LanguageChange:
82 ui->retranslateUi(this);
90 *This slot function is called when route start/stop button clicked.
92 void RouteSaveDialog::on_buttonRouteStartStop_clicked()
94 //If start button clicked
95 if ( buttonStatus == true )
98 ui->buttonRouteStartStop->setIcon(*iconRouteStop);
99 location->startPollingGPS();
105 ui->buttonRouteStartStop->setIcon(*iconRoutePlay);
107 //Satellite picture and label
108 ui->labelRouteSatelliteStatus->setText("Searching satellite");
109 ui->labelRouteSatelliteStatus->setVisible(0);
110 ui->labelRouteSatellitePicture->setVisible(0);
111 timerSatellitePicture->stop();
113 //Route picture and label
114 ui->labelRouteStatus->setVisible(0);
115 ui->labelRoutePicture->setVisible(0);
116 timerRoutePicture->stop();
117 location->stopPollingGPS();
121 ui->labelGpsSpeed->setVisible(0);
123 //Stop route recording
124 gpsData->stopRouteRecording();
129 *This slot function is called when satellite picture timer timeout(400ms).
131 void RouteSaveDialog::timerSatellitePictureTimeout()
133 //If satellite picture visible.
134 if (ui->labelRouteSatellitePicture->isVisible() == 1)
136 ui->labelRouteSatelliteStatus->setVisible(0);
137 ui->labelRouteSatellitePicture->setVisible(0);
141 ui->labelRouteSatelliteStatus->setVisible(1);
142 ui->labelRouteSatellitePicture->setVisible(1);
144 timerSatellitePicture->start();
148 *This slot function is called when route picture timer timeout(400ms).
150 void RouteSaveDialog::timerRoutePictureTimeout()
152 //If route picture visible.
153 if (ui->labelRoutePicture->isVisible() == 1)
155 ui->labelRouteStatus->setVisible(0);
156 ui->labelRoutePicture->setVisible(0);
160 ui->labelRouteStatus->setVisible(1);
161 ui->labelRoutePicture->setVisible(1);
163 timerRoutePicture->start();
166 void RouteSaveDialog::gpsStatus()
168 //IF GPS start button clicked
169 if (buttonStatus == false)
171 //If GPS find 4 satellite.
172 if (location->getSatellitesInUse() >= 4)
174 //Satellite picture and label
175 ui->labelRouteSatelliteStatus->setText("GPS Ready");
176 ui->labelRouteSatelliteStatus->setVisible(1);
177 ui->labelRouteSatellitePicture->setVisible(1);
178 timerSatellitePicture->stop();
180 //Route picture and label
181 ui->labelRouteStatus->setText("Recorded " + QString::number(gpsData->roundCounter) + " route point");
182 ui->labelRouteStatus->setVisible(1);
183 ui->labelRoutePicture->setVisible(1);
184 timerRoutePicture->start();
187 gpsSpeed.sprintf("%.0f",location->getSpeed());
188 ui->labelGpsSpeed->setText(gpsSpeed + " km/h");
189 ui->labelGpsSpeed->setVisible(1);
191 //Start route recording
192 gpsData->startRouteRecording();
195 //If GPS find less than 4 satellite.
198 //Satellite picture and label
199 ui->labelRouteSatelliteStatus->setText("Searching satellite");
200 ui->labelRouteSatelliteStatus->setVisible(1);
201 ui->labelRouteSatellitePicture->setVisible(1);
202 timerSatellitePicture->start();
204 //Route picture and label
205 ui->labelRouteStatus->setVisible(0);
206 ui->labelRoutePicture->setVisible(0);
207 timerRoutePicture->stop();
210 ui->labelGpsSpeed->setVisible(0);
215 //Satellite picture and label
216 ui->labelRouteSatelliteStatus->setText("Searching satellite");
217 ui->labelRouteSatelliteStatus->setVisible(0);
218 ui->labelRouteSatellitePicture->setVisible(0);
219 timerSatellitePicture->stop();
221 //Route picture and label
222 ui->labelRouteStatus->setVisible(0);
223 ui->labelRoutePicture->setVisible(0);
224 timerRoutePicture->stop();
227 ui->labelGpsSpeed->setVisible(0);