2 * CarMainWindow main class
4 * @author Janne Änäkkälä <janne.anakkala@fudeco.com>
5 * @copyright (c) 2010 Speed Freak team
6 * @license http://opensource.org/licenses/gpl-license.php GNU Public License
9 #include "measuredialog.h"
10 #include "ui_measuredialog.h"
14 * Constructor of this class.
15 * @param QWidget pointer to parent object. By default the value is NULL.
17 MeasureDialog::MeasureDialog(QWidget *parent) :
19 ui(new Ui::MeasureDialog)
22 ui->labelInfo->setText("Accelerate to 100 km/h");
27 accelerometer = new Accelerometer();
28 accelerometer->setSampleRate(100);
29 accelerometer->start();
31 measures = new Measures();
32 this->initializeMeasures();
34 timer->setInterval(100);
36 connect(this->timer, SIGNAL(timeout()), this, SLOT(after_timeout()));
40 *Destructor of this class. Should be used to release all allocated resources.
42 MeasureDialog::~MeasureDialog()
47 void MeasureDialog::changeEvent(QEvent *e)
49 QDialog::changeEvent(e);
51 case QEvent::LanguageChange:
52 ui->retranslateUi(this);
60 * This slot function is called when timer gives timeout signal. Checks current speed
61 * and stores times in measure class.
63 void MeasureDialog::after_timeout()
65 QString timeString, speedString;
67 time = accelerometer->getTotalTime();
68 speed = accelerometer->getCurrentSpeed();
71 if (floor(speed) == 10)
73 measures->setTime10kmh(time);
76 else if (floor(speed) == 20)
78 measures->setTime20kmh(time);
81 else if (floor(speed) == 30)
83 measures->setTime30kmh(time);
86 else if (floor(speed) == 40)
88 measures->setTime40kmh(time);
91 else if (floor(speed) == 50)
93 measures->setTime50kmh(time);
96 else if (floor(speed) == 60)
98 measures->setTime60kmh(time);
101 else if (floor(speed) == 70)
103 measures->setTime70kmh(time);
106 else if (floor(speed) == 80)
108 measures->setTime80kmh(time);
111 else if (floor(speed) == 90)
113 measures->setTime90kmh(time);
116 else if (floor(speed) == 100)
118 measures->setTime100kmh(time);
126 // If speed is over 100 km/h emits speedAchieved() signal and close this dialog.
130 accelerometer->stop();
133 emit this->speedAchieved();
138 // Updates speed and time.
141 timeString.setNum(time);
142 speedString.setNum(speed);
143 ui->labelSpeed->setText(speedString);
144 ui->labelTime->setText(timeString);
151 * This slot function is called when Abort button is clicked.
153 void MeasureDialog::on_pushButtonAbort_clicked()
155 measures->setTime10kmh(0);
156 measures->setTime20kmh(0);
157 measures->setTime30kmh(0);
158 measures->setTime40kmh(0);
159 measures->setTime50kmh(0);
160 measures->setTime60kmh(0);
161 measures->setTime70kmh(0);
162 measures->setTime80kmh(0);
163 measures->setTime90kmh(0);
164 measures->setTime100kmh(0);
166 accelerometer->stop();
173 * Initializes measures class's member variables.
175 void MeasureDialog::initializeMeasures()
177 measures->setTime10kmh(0);
178 measures->setTime20kmh(0);
179 measures->setTime30kmh(0);
180 measures->setTime40kmh(0);
181 measures->setTime50kmh(0);
182 measures->setTime60kmh(0);
183 measures->setTime70kmh(0);
184 measures->setTime80kmh(0);
185 measures->setTime90kmh(0);
186 measures->setTime100kmh(0);