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.
21 * Constructor of this class.
22 * @param QWidget pointer to parent object. By default the value is NULL.
24 ResultDialog::ResultDialog(QWidget *parent) :
26 ui(new Ui::ResultDialog)
32 // ui->labelXLine->setText(ui->labelXLine->text().append(": time/ s"));
33 // ui->labelYLine->setText(ui->labelYLine->text().append(": speed/ km/h"));
37 * Destructor of this class. Should be used to release all allocated resources.
39 ResultDialog::~ResultDialog()
44 void ResultDialog::changeEvent(QEvent *e)
46 QDialog::changeEvent(e);
48 case QEvent::LanguageChange:
49 ui->retranslateUi(this);
57 * Draws speed diagram to the UI
60 void ResultDialog::paintEvent(QPaintEvent *)
62 QPainter painter(this);
64 painter.setRenderHint(QPainter::Antialiasing, true);
65 painter.setPen(QPen((Qt::white),2));
66 painter.setBrush(QBrush((Qt::yellow), Qt::SolidPattern));
67 painter.drawLine(diagramStemStart, diagramStemEnd);
68 painter.drawLine(diagramHorizontalStart, diagramHorizontalEnd);
70 int currentX = diagramStemStart.x();
71 int currentY = diagramStemStart.y();
73 // Draws diagram's X-axel
74 for (int i = 0; i < 13; i++)
76 currentX += diagramGap;
77 painter.drawLine(currentX, currentY, currentX, currentY - 10);
80 currentX = diagramStemStart.x();
81 currentY = diagramStemStart.y();
83 // Draws diagram's Y-axel
84 for (int i = 0; i < 10; i++)
86 currentY -= diagramGap;
87 painter.drawLine(currentX, currentY, currentX+10, currentY);
90 painter.drawPolyline(points, 4);
95 * Change the given speed and time to the point for the diagram.
96 * @param aSpeed is speed which need to change, aTime is time in seconds which need to change.
97 * @return point is calculated from aSpeed and aTime.
99 QPoint ResultDialog::changeMeasuresToDiagramPoint(int aSpeed, qreal aTime)
105 speedAsPixels = 300*aSpeed/100;
106 timeAsPixels = 300*aTime/10;
107 point.setY(diagramStemStart.y()-speedAsPixels);
108 point.setX(diagramStemStart.x()+timeAsPixels);
114 * Saves the given measures to array.
115 * @param pMeasures has information about acceleration.
117 void ResultDialog::saveMeasuresToArray(Measures *pMeasures)
119 timeArray[0] = pMeasures->getTime10kmh();
120 timeArray[1] = pMeasures->getTime20kmh();
121 timeArray[2] = pMeasures->getTime30kmh();
122 timeArray[3] = pMeasures->getTime40kmh();
123 timeArray[4] = pMeasures->getTime50kmh();
124 timeArray[5] = pMeasures->getTime60kmh();
125 timeArray[6] = pMeasures->getTime70kmh();
126 timeArray[7] = pMeasures->getTime80kmh();
127 timeArray[8] = pMeasures->getTime90kmh();
128 timeArray[9] = pMeasures->getTime100kmh();
130 for (int i = 0; i < 4; i++)
132 points[i] = changeMeasuresToDiagramPoint(speedArray[i], timeArray[i]);
135 QString time, timeInteger;
136 timeInteger.setNum(timeArray[3]);
137 time = "0 - 40 km/h: ";
138 time.append(timeInteger);
139 ui->labelResult40kmh->setText(time);
141 timeInteger.setNum(timeArray[2]);
142 time = "0 - 30 km/h: ";
143 time.append(timeInteger);
144 ui->labelResult30kmh->setText(time);
146 timeInteger.setNum(timeArray[1]);
147 time = "0 - 20 km/h: ";
148 time.append(timeInteger);
149 ui->labelResult20kmh->setText(time);
151 timeInteger.setNum(timeArray[0]);
152 time = "0 - 10 km/h: ";
153 time.append(timeInteger);
154 ui->labelResult10kmh->setText(time);
156 /* timeInteger.setNum(timeArray[5]);
157 time = "0 - 60 km/h: ";
158 time.append(timeInteger);
159 ui->labelResult_5->setText(time);
161 timeInteger.setNum(timeArray[4]);
162 time = "0 - 50 km/h: ";
163 time.append(timeInteger);
164 ui->labelResult_6->setText(time);
166 timeInteger.setNum(timeArray[3]);
167 time = "0 - 40 km/h: ";
168 time.append(timeInteger);
169 ui->labelResult_7->setText(time);*/
173 for (int i = 0; i < 10; i++)
179 void ResultDialog::on_pushButtonSend_clicked()