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;
14 // Test arrays for changing speeds and times to the points in diagram
15 static const int speedArray[10] = {12, 34, 56, 78, 90, 100, 104, 100, 90, 80};
16 static const int timeArray[10] = {1, 2, 3, 4, 5, 6, 7, 8, 10, 12};
20 // Test point array for the diagram.
23 ResultDialog::ResultDialog(QWidget *parent) :
25 ui(new Ui::ResultDialog)
29 QString time, timeInteger;
30 timeInteger.setNum(timeArray[9]);
31 time = "0 - 100 km/h: ";
32 time.append(timeInteger);
33 ui->labelResult->setText(time);
35 timeInteger.setNum(timeArray[8]);
36 time = "0 - 90 km/h: ";
37 time.append(timeInteger);
38 ui->labelResult_2->setText(time);
40 timeInteger.setNum(timeArray[7]);
41 time = "0 - 80 km/h: ";
42 time.append(timeInteger);
43 ui->labelResult_3->setText(time);
45 timeInteger.setNum(timeArray[6]);
46 time = "0 - 70 km/h: ";
47 time.append(timeInteger);
48 ui->labelResult_4->setText(time);
50 timeInteger.setNum(timeArray[5]);
51 time = "0 - 60 km/h: ";
52 time.append(timeInteger);
53 ui->labelResult_5->setText(time);
55 timeInteger.setNum(timeArray[4]);
56 time = "0 - 50 km/h: ";
57 time.append(timeInteger);
58 ui->labelResult_6->setText(time);
60 timeInteger.setNum(timeArray[3]);
61 time = "0 - 40 km/h: ";
62 time.append(timeInteger);
63 ui->labelResult_7->setText(time);
65 for(int i = 0; i < 10; i++)
67 points[i] = changeMeasuresToDiagramPoint(speedArray[i], timeArray[i]);
69 // ui->labelXLine->setText(ui->labelXLine->text().append(": time/ s"));
70 // ui->labelYLine->setText(ui->labelYLine->text().append(": speed/ km/h"));
73 ResultDialog::~ResultDialog()
78 void ResultDialog::changeEvent(QEvent *e)
80 QDialog::changeEvent(e);
82 case QEvent::LanguageChange:
83 ui->retranslateUi(this);
91 * Draws speed diagram to the UI
94 void ResultDialog::paintEvent(QPaintEvent *)
96 QPainter painter(this);
98 painter.setRenderHint(QPainter::Antialiasing, true);
99 painter.setPen(QPen((Qt::white),2));
100 painter.setBrush(QBrush((Qt::yellow), Qt::SolidPattern));
101 painter.drawLine(diagramStemStart, diagramStemEnd);
102 painter.drawLine(diagramHorizontalStart, diagramHorizontalEnd);
104 int currentX = diagramStemStart.x();
105 int currentY = diagramStemStart.y();
107 // Draws diagram's X-axel
108 for(int i = 0; i<13; i++)
110 currentX += diagramGap;
111 painter.drawLine(currentX, currentY, currentX, currentY - 10);
114 currentX = diagramStemStart.x();
115 currentY = diagramStemStart.y();
117 // Draws diagram's Y-axel
118 for(int i = 0; i<10; i++)
120 currentY -= diagramGap;
121 painter.drawLine(currentX, currentY, currentX+10, currentY);
124 painter.drawPolyline(points, 10);
129 *Change the given speed and time to the point for the diagram.
130 *@param aSpeed is speed which need to change, aTime is time in seconds which need to change.
131 *@return point is calculated from aSpeed and aTime.
133 QPoint ResultDialog::changeMeasuresToDiagramPoint(int aSpeed, int aTime)
139 speedAsPixels = 300*aSpeed/100;
140 timeAsPixels = 300*aTime/10;
141 point.setY(diagramStemStart.y()-speedAsPixels);
142 point.setX(diagramStemStart.x()+timeAsPixels);