1 #include "resultdialog.h"
2 #include "ui_resultdialog.h"
5 const QPoint diagramStemStart(50, 350);
6 const QPoint diagramStemEnd(50, 30);
8 const QPoint diagramHorizontalStart(50, 350);
9 const QPoint diagramHorizontalEnd(450, 350);
11 const int diagramGap = 30;
13 // Test arrays for changing speeds and times to the points in diagram
14 static const int speedArray[10] = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100};
15 //static const int timeArray[10] = {1, 2, 3, 4, 5, 6, 7, 8, 10, 12};
17 // Test point array for the diagram.
20 ResultDialog::ResultDialog(QWidget *parent) :
22 ui(new Ui::ResultDialog)
28 // ui->labelXLine->setText(ui->labelXLine->text().append(": time/ s"));
29 // ui->labelYLine->setText(ui->labelYLine->text().append(": speed/ km/h"));
32 ResultDialog::~ResultDialog()
37 void ResultDialog::changeEvent(QEvent *e)
39 QDialog::changeEvent(e);
41 case QEvent::LanguageChange:
42 ui->retranslateUi(this);
50 * Draws speed diagram to the UI
53 void ResultDialog::paintEvent(QPaintEvent *)
55 QPainter painter(this);
57 painter.setRenderHint(QPainter::Antialiasing, true);
58 painter.setPen(QPen((Qt::white),2));
59 painter.setBrush(QBrush((Qt::yellow), Qt::SolidPattern));
60 painter.drawLine(diagramStemStart, diagramStemEnd);
61 painter.drawLine(diagramHorizontalStart, diagramHorizontalEnd);
63 int currentX = diagramStemStart.x();
64 int currentY = diagramStemStart.y();
66 // Draws diagram's X-axel
67 for(int i = 0; i<13; i++)
69 currentX += diagramGap;
70 painter.drawLine(currentX, currentY, currentX, currentY - 10);
73 currentX = diagramStemStart.x();
74 currentY = diagramStemStart.y();
76 // Draws diagram's Y-axel
77 for(int i = 0; i<10; i++)
79 currentY -= diagramGap;
80 painter.drawLine(currentX, currentY, currentX+10, currentY);
83 painter.drawPolyline(points, 4);
88 *Change the given speed and time to the point for the diagram.
89 *@param aSpeed is speed which need to change, aTime is time in seconds which need to change.
90 *@return point is calculated from aSpeed and aTime.
92 QPoint ResultDialog::changeMeasuresToDiagramPoint(int aSpeed, qreal aTime)
98 speedAsPixels = 300*aSpeed/100;
99 timeAsPixels = 300*aTime/10;
100 point.setY(diagramStemStart.y()-speedAsPixels);
101 point.setX(diagramStemStart.x()+timeAsPixels);
107 *Saves the given measures to array.
108 *@param pMeasures has information about acceleration.
110 void ResultDialog::saveMeasuresToArray(Measures *pMeasures)
112 timeArray[0] = pMeasures->getTime10kmh();
113 timeArray[1] = pMeasures->getTime20kmh();
114 timeArray[2] = pMeasures->getTime30kmh();
115 timeArray[3] = pMeasures->getTime40kmh();
116 timeArray[4] = pMeasures->getTime50kmh();
117 timeArray[5] = pMeasures->getTime60kmh();
118 timeArray[6] = pMeasures->getTime70kmh();
119 timeArray[7] = pMeasures->getTime80kmh();
120 timeArray[8] = pMeasures->getTime90kmh();
121 timeArray[9] = pMeasures->getTime100kmh();
123 for(int i = 0; i < 4; i++)
125 points[i] = changeMeasuresToDiagramPoint(speedArray[i], timeArray[i]);
128 QString time, timeInteger;
129 timeInteger.setNum(timeArray[3]);
130 time = "0 - 40 km/h: ";
131 time.append(timeInteger);
132 ui->labelResult40kmh->setText(time);
134 timeInteger.setNum(timeArray[2]);
135 time = "0 - 30 km/h: ";
136 time.append(timeInteger);
137 ui->labelResult30kmh->setText(time);
139 timeInteger.setNum(timeArray[1]);
140 time = "0 - 20 km/h: ";
141 time.append(timeInteger);
142 ui->labelResult20kmh->setText(time);
144 timeInteger.setNum(timeArray[0]);
145 time = "0 - 10 km/h: ";
146 time.append(timeInteger);
147 ui->labelResult10kmh->setText(time);
149 /* timeInteger.setNum(timeArray[5]);
150 time = "0 - 60 km/h: ";
151 time.append(timeInteger);
152 ui->labelResult_5->setText(time);
154 timeInteger.setNum(timeArray[4]);
155 time = "0 - 50 km/h: ";
156 time.append(timeInteger);
157 ui->labelResult_6->setText(time);
159 timeInteger.setNum(timeArray[3]);
160 time = "0 - 40 km/h: ";
161 time.append(timeInteger);
162 ui->labelResult_7->setText(time);*/
166 for(int i = 0; i < 10; i++)