Changes in measuredialog.cpp, .h and carmainwindow.cpp, .h.
[speedfreak] / Client / measuredialog.cpp
1 #include "measuredialog.h"
2 #include "ui_measuredialog.h"
3
4
5 /**
6   *Constructor of this class.
7   *@param QWidget pointer to parent object. By default the value is NULL.
8   */
9 MeasureDialog::MeasureDialog(QWidget *parent) :
10     QDialog(parent),
11     ui(new Ui::MeasureDialog)
12 {
13     ui->setupUi(this);
14     ui->labelInfo->setText("Accelerate to 100 km/h");
15     time = 0;
16     speed = 0;
17     timer = new QTimer();
18
19     accelerometer = new Accelerometer();
20     //accelerometer->start();
21
22     timer->setInterval(1000);
23     timer->start();
24     connect(this->timer, SIGNAL(timeout()), this, SLOT(after_timeout()));
25 }
26
27 /**
28   *Destructor of this class.  Should be used to release all allocated resources.
29   */
30 MeasureDialog::~MeasureDialog()
31 {
32     delete ui;
33 }
34
35 void MeasureDialog::changeEvent(QEvent *e)
36 {
37     QDialog::changeEvent(e);
38     switch (e->type()) {
39     case QEvent::LanguageChange:
40         ui->retranslateUi(this);
41         break;
42     default:
43         break;
44     }
45 }
46
47 /**
48   *This slot function is called when timer gives timeout signal.
49   */
50 void MeasureDialog::after_timeout()
51 {
52     QString timeString, speedString;
53     time++;
54     speed = accelerometer->getCurrentSpeed();
55
56     // If speed is over 100 km/h emits speedAchieved() signal and close this dialog.
57     if(speed>=100.0)
58     {
59         timer->stop();
60         //accelerometer->stop();
61         time = 0;
62         speed = 0;
63         emit this->speedAchieved();
64         this->close();
65
66     }
67
68     // Updates speed and time.
69     else
70     {
71         timeString.setNum(time);
72         speedString.setNum(speed);
73         ui->labelSpeed->setText(speedString);
74         ui->labelTime->setText(timeString);
75         timer->start();
76     }
77 }
78
79 /**
80   *This slot function is called when Abort button is clicked.
81   */
82 void MeasureDialog::on_pushButtonAbort_clicked()
83 {
84     timer->stop();
85     //accelerometer->stop();
86     time = 0;
87     speed = 0;
88     this->close();
89 }