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 "resultdialog.h"
10 #include "ui_resultdialog.h"
13 const QPoint diagramStemStart(50, 350);
14 const QPoint diagramStemEnd(50, 30);
16 const QPoint diagramHorizontalStart(50, 350);
17 const QPoint diagramHorizontalEnd(450, 350);
19 const int diagramGap = 30;
21 // Test arrays for changing speeds and times to the points in diagram
22 static const int speedArray[10] = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100};
23 //static const int timeArray[10] = {1, 2, 3, 4, 5, 6, 7, 8, 10, 12};
25 // Test point array for the diagram.
29 * Constructor of this class.
30 * @param QWidget pointer to parent object. By default the value is NULL.
32 ResultDialog::ResultDialog(QWidget *parent) :
34 ui(new Ui::ResultDialog)
40 // ui->labelXLine->setText(ui->labelXLine->text().append(": time/ s"));
41 // ui->labelYLine->setText(ui->labelYLine->text().append(": speed/ km/h"));
45 * Destructor of this class. Should be used to release all allocated resources.
47 ResultDialog::~ResultDialog()
52 void ResultDialog::changeEvent(QEvent *e)
54 QDialog::changeEvent(e);
56 case QEvent::LanguageChange:
57 ui->retranslateUi(this);
65 * Draws speed diagram to the UI
68 void ResultDialog::paintEvent(QPaintEvent *)
70 QPainter painter(this);
72 painter.setRenderHint(QPainter::Antialiasing, true);
73 painter.setPen(QPen((Qt::white),2));
74 painter.setBrush(QBrush((Qt::yellow), Qt::SolidPattern));
75 painter.drawLine(diagramStemStart, diagramStemEnd);
76 painter.drawLine(diagramHorizontalStart, diagramHorizontalEnd);
78 int currentX = diagramStemStart.x();
79 int currentY = diagramStemStart.y();
81 // Draws diagram's X-axel
82 for (int i = 0; i < 13; i++)
84 currentX += diagramGap;
85 painter.drawLine(currentX, currentY, currentX, currentY - 10);
88 currentX = diagramStemStart.x();
89 currentY = diagramStemStart.y();
91 // Draws diagram's Y-axel
92 for (int i = 0; i < 10; i++)
94 currentY -= diagramGap;
95 painter.drawLine(currentX, currentY, currentX+10, currentY);
98 painter.drawPolyline(points, 4);
103 * Change the given speed and time to the point for the diagram.
104 * @param aSpeed is speed which need to change, aTime is time in seconds which need to change.
105 * @return point is calculated from aSpeed and aTime.
107 QPoint ResultDialog::changeMeasuresToDiagramPoint(int aSpeed, qreal aTime)
113 speedAsPixels = 300*aSpeed/100;
114 timeAsPixels = 300*aTime/10;
115 point.setY(diagramStemStart.y()-speedAsPixels);
116 point.setX(diagramStemStart.x()+timeAsPixels);
122 * Saves the given measures to array.
123 * @param pMeasures has information about acceleration.
125 void ResultDialog::saveMeasuresToArray(Measures *pMeasures)
127 timeArray[0] = pMeasures->getTime10kmh();
128 timeArray[1] = pMeasures->getTime20kmh();
129 timeArray[2] = pMeasures->getTime30kmh();
130 timeArray[3] = pMeasures->getTime40kmh();
131 timeArray[4] = pMeasures->getTime50kmh();
132 timeArray[5] = pMeasures->getTime60kmh();
133 timeArray[6] = pMeasures->getTime70kmh();
134 timeArray[7] = pMeasures->getTime80kmh();
135 timeArray[8] = pMeasures->getTime90kmh();
136 timeArray[9] = pMeasures->getTime100kmh();
138 for (int i = 0; i < 4; i++)
140 points[i] = changeMeasuresToDiagramPoint(speedArray[i], timeArray[i]);
143 QString time, timeInteger;
144 timeInteger.setNum(timeArray[3]);
145 time = "0 - 40 km/h: ";
146 time.append(timeInteger);
147 ui->labelResult40kmh->setText(time);
149 timeInteger.setNum(timeArray[2]);
150 time = "0 - 30 km/h: ";
151 time.append(timeInteger);
152 ui->labelResult30kmh->setText(time);
154 timeInteger.setNum(timeArray[1]);
155 time = "0 - 20 km/h: ";
156 time.append(timeInteger);
157 ui->labelResult20kmh->setText(time);
159 timeInteger.setNum(timeArray[0]);
160 time = "0 - 10 km/h: ";
161 time.append(timeInteger);
162 ui->labelResult10kmh->setText(time);
164 /* timeInteger.setNum(timeArray[5]);
165 time = "0 - 60 km/h: ";
166 time.append(timeInteger);
167 ui->labelResult_5->setText(time);
169 timeInteger.setNum(timeArray[4]);
170 time = "0 - 50 km/h: ";
171 time.append(timeInteger);
172 ui->labelResult_6->setText(time);
174 timeInteger.setNum(timeArray[3]);
175 time = "0 - 40 km/h: ";
176 time.append(timeInteger);
177 ui->labelResult_7->setText(time);*/
181 for (int i = 0; i < 10; i++)
187 void ResultDialog::on_pushButtonSend_clicked()