+ //emit sendresult(timeArray[this->getTargetChoice()]);
+}
+
+double ResultDialog::getResult()
+{
+ return timeArray[this->getTargetChoice()];
+}
+
+/**
+ * This public function sets diagram's stem gap
+ * @param pValue is the speed value which determines diagram gap's value
+ */
+void ResultDialog::setEnd(int pValue)
+{
+ for (int i = 0; i < 11; i++)
+ {
+ timeArray[i] = 0;
+ }
+ resultString = "";
+
+ switch (pValue)
+ {
+ case 10:
+ this->diagramGapStem = DIAGRAMGAP10KMH;
+ break;
+
+ case 20:
+ this->diagramGapStem = DIAGRAMGAP20KMH;
+ break;
+
+ case 30:
+ this->diagramGapStem = DIAGRAMGAP30KMH;
+ break;
+
+ case 40:
+ this->diagramGapStem = DIAGRAMGAP40KMH;
+ break;
+
+ case 50:
+ this->diagramGapStem = DIAGRAMGAP50KMH;
+ break;
+
+ case 60:
+ this->diagramGapStem = DIAGRAMGAP60KMH;
+ break;
+
+ case 70:
+ this->diagramGapStem = DIAGRAMGAP70KMH;
+ break;
+
+ case 80:
+ this->diagramGapStem = DIAGRAMGAP80KMH;
+ break;
+
+ case 90:
+ this->diagramGapStem = DIAGRAMGAP90KMH;
+ break;
+
+ case 100:
+ this->diagramGapStem = DIAGRAMGAP100KMH;
+ break;
+
+ default:
+ this->diagramGapStem = DIAGRAMGAP100KMH;
+ break;
+ }
+}
+
+/**
+ * This public function stores time in timeArray
+ * @param pSpeed is the speed value at the time so we know where store time
+ * @param pTime is the result which needs to be store in timeArray
+ */
+void ResultDialog::setValue(int pSpeed, double pTime)
+{
+ //timeArray[0] = 0;
+ if (pTime <= 5.0)
+ {
+ this->diagramGapHorizontal = DIAGRAMGAP5S;
+ }
+
+ else if (pTime <= 10.0 && pTime > 5.0)
+ {
+ this->diagramGapHorizontal = DIAGRAMGAP10S;
+ }
+
+ else if (pTime <= 16.0 && pTime > 10.0)
+ {
+ this->diagramGapHorizontal = DIAGRAMGAP16S;
+ }
+
+ else
+ {
+ this->diagramGapHorizontal = DIAGRAMGAP20S;
+ }
+
+ switch (pSpeed)
+ {
+ case 10:
+ timeArray[1] = pTime;
+ break;
+ case 20:
+ timeArray[2] = pTime;
+ break;
+ case 30:
+ timeArray[3] = pTime;
+ break;
+ case 40:
+ timeArray[4] = pTime;
+ break;
+ case 50:
+ timeArray[5] = pTime;
+ break;
+ case 60:
+ timeArray[6] = pTime;
+ break;
+ case 70:
+ timeArray[7] = pTime;
+ break;
+ case 80:
+ timeArray[8] = pTime;
+ break;
+ case 90:
+ timeArray[9] = pTime;
+ break;
+ case 100:
+ timeArray[10] = pTime;
+ break;
+ }
+
+ setTimeAxelLength(getTargetChoice());
+
+ for (int i = 0; i < 11; i++)
+ {
+ points[i] = changeMeasuresToDiagramPoint(speedArray[i], timeArray[i]);
+ }
+
+ setTimesIntoLabels();
+ this->repaint();
+}
+
+/**
+ * Sets dialog's heading and result text
+ */
+void ResultDialog::setHeaders()
+{
+ //QString resultString;
+ resultString.append("Time was ");
+
+ QString time;
+
+ if (this->diagramGapStem == DIAGRAMGAP100KMH)
+ {
+ time.sprintf("%.2f", timeArray[10]);
+ resultString.append(time);
+ this->setWindowTitle("Result for accelerating 100 km/h");
+ }
+
+ else if (this->diagramGapStem == DIAGRAMGAP90KMH)
+ {
+ time.sprintf("%.2f", timeArray[9]);
+ resultString.append(time);
+ this->setWindowTitle("Result for accelerating 90 km/h");
+ }
+
+ else if (this->diagramGapStem == DIAGRAMGAP80KMH)
+ {
+ time.sprintf("%.2f", timeArray[8]);
+ resultString.append(time);
+ this->setWindowTitle("Result for accelerating 80 km/h");
+ }
+
+ else if (this->diagramGapStem == DIAGRAMGAP70KMH)
+ {
+ time.sprintf("%.2f", timeArray[7]);
+ resultString.append(time);
+ this->setWindowTitle("Result for accelerating 70 km/h");
+ }
+
+ else if (this->diagramGapStem == DIAGRAMGAP60KMH)
+ {
+ time.sprintf("%.2f", timeArray[6]);
+ resultString.append(time);
+ this->setWindowTitle("Result for accelerating 60 km/h");
+ }
+
+ else if (this->diagramGapStem == DIAGRAMGAP50KMH)
+ {
+ time.sprintf("%.2f", timeArray[5]);
+ resultString.append(time);
+ this->setWindowTitle("Result for accelerating 50 km/h");
+ }
+
+ else if (this->diagramGapStem == DIAGRAMGAP40KMH)
+ {
+ time.sprintf("%.2f", timeArray[4]);
+ resultString.append(time);
+ this->setWindowTitle("Result for accelerating 40 km/h");
+ }
+
+ else if (this->diagramGapStem == DIAGRAMGAP30KMH)
+ {
+ time.sprintf("%.2f", timeArray[3]);
+ resultString.append(time);
+ this->setWindowTitle("Result for accelerating 30 km/h");
+ }
+
+ else if (this->diagramGapStem == DIAGRAMGAP20KMH)
+ {
+ time.sprintf("%.2f", timeArray[2]);
+ resultString.append(time);
+ this->setWindowTitle("Result for accelerating 20 km/h");
+ }
+
+ else
+ {
+ time.sprintf("%.2f", timeArray[1]);
+ resultString.append(time);
+ this->setWindowTitle("Result for accelerating 10 km/h");
+ }
+}
+
+/**
+ * Shows only wanted results and hides
+ * unwanted
+ */
+void ResultDialog::showOrHideLabels()
+{
+ if (this->diagramGapStem == DIAGRAMGAP10KMH)
+ {
+ ui->labelResult20kmh->hide();
+ ui->labelResult30kmh->hide();
+ ui->labelResult40kmh->hide();
+ ui->labelResult50kmh->hide();
+ ui->labelResult60kmh->hide();
+ ui->labelResult70kmh->hide();
+ ui->labelResult80kmh->hide();
+ ui->labelResult90kmh->hide();
+ ui->labelResult100kmh->hide();
+ }
+
+ else if (this->diagramGapStem == DIAGRAMGAP20KMH)
+ {
+ ui->labelResult10kmh->show();
+ ui->labelResult20kmh->show();
+ ui->labelResult30kmh->hide();
+ ui->labelResult40kmh->hide();
+ ui->labelResult50kmh->hide();
+ ui->labelResult60kmh->hide();
+ ui->labelResult70kmh->hide();
+ ui->labelResult80kmh->hide();
+ ui->labelResult90kmh->hide();
+ ui->labelResult100kmh->hide();
+ }
+
+ else if (this->diagramGapStem == DIAGRAMGAP30KMH)
+ {
+ ui->labelResult10kmh->show();
+ ui->labelResult20kmh->show();
+ ui->labelResult30kmh->show();
+ ui->labelResult40kmh->hide();
+ ui->labelResult50kmh->hide();
+ ui->labelResult60kmh->hide();
+ ui->labelResult70kmh->hide();
+ ui->labelResult80kmh->hide();
+ ui->labelResult90kmh->hide();
+ ui->labelResult100kmh->hide();
+ }
+
+ else if (this->diagramGapStem == DIAGRAMGAP40KMH)
+ {
+ ui->labelResult10kmh->show();
+ ui->labelResult20kmh->show();
+ ui->labelResult30kmh->show();
+ ui->labelResult40kmh->show();
+ ui->labelResult50kmh->hide();
+ ui->labelResult60kmh->hide();
+ ui->labelResult70kmh->hide();
+ ui->labelResult80kmh->hide();
+ ui->labelResult90kmh->hide();
+ ui->labelResult100kmh->hide();
+ }
+
+ else if (this->diagramGapStem == DIAGRAMGAP50KMH)
+ {
+ ui->labelResult10kmh->show();
+ ui->labelResult20kmh->show();
+ ui->labelResult30kmh->show();
+ ui->labelResult40kmh->show();
+ ui->labelResult50kmh->show();
+ ui->labelResult60kmh->hide();
+ ui->labelResult70kmh->hide();
+ ui->labelResult80kmh->hide();
+ ui->labelResult90kmh->hide();
+ ui->labelResult100kmh->hide();
+ }
+
+ else if (this->diagramGapStem == DIAGRAMGAP60KMH)
+ {
+ ui->labelResult10kmh->show();
+ ui->labelResult20kmh->show();
+ ui->labelResult30kmh->show();
+ ui->labelResult40kmh->show();
+ ui->labelResult50kmh->show();
+ ui->labelResult60kmh->show();
+ ui->labelResult70kmh->hide();
+ ui->labelResult80kmh->hide();
+ ui->labelResult90kmh->hide();
+ ui->labelResult100kmh->hide();
+ }
+
+ else if (this->diagramGapStem == DIAGRAMGAP70KMH)
+ {
+ ui->labelResult10kmh->show();
+ ui->labelResult20kmh->show();
+ ui->labelResult30kmh->show();
+ ui->labelResult40kmh->show();
+ ui->labelResult50kmh->show();
+ ui->labelResult60kmh->show();
+ ui->labelResult70kmh->show();
+ ui->labelResult80kmh->hide();
+ ui->labelResult90kmh->hide();
+ ui->labelResult100kmh->hide();
+ }
+
+ else if (this->diagramGapStem == DIAGRAMGAP80KMH)
+ {
+ ui->labelResult10kmh->show();
+ ui->labelResult20kmh->show();
+ ui->labelResult30kmh->show();
+ ui->labelResult40kmh->show();
+ ui->labelResult50kmh->show();
+ ui->labelResult60kmh->show();
+ ui->labelResult70kmh->show();
+ ui->labelResult80kmh->show();
+ ui->labelResult90kmh->hide();
+ ui->labelResult100kmh->hide();
+ }
+
+ else if (this->diagramGapStem == DIAGRAMGAP90KMH)
+ {
+ ui->labelResult10kmh->show();
+ ui->labelResult20kmh->show();
+ ui->labelResult30kmh->show();
+ ui->labelResult40kmh->show();
+ ui->labelResult50kmh->show();
+ ui->labelResult60kmh->show();
+ ui->labelResult70kmh->show();
+ ui->labelResult80kmh->show();
+ ui->labelResult90kmh->show();
+ ui->labelResult100kmh->hide();
+ }
+
+ else
+ {
+ ui->labelResult10kmh->show();
+ ui->labelResult20kmh->show();
+ ui->labelResult30kmh->show();
+ ui->labelResult40kmh->show();
+ ui->labelResult50kmh->show();
+ ui->labelResult60kmh->show();
+ ui->labelResult70kmh->show();
+ ui->labelResult80kmh->show();
+ ui->labelResult90kmh->show();
+ ui->labelResult100kmh->show();
+ }
+}
+
+/**
+ * Checks which target speed has been choosed
+ * @return targetChoice which tells to caller integer value about the target speed
+ * e.g. 20 km/h is value 2 and 60 km/h is value 6
+ */
+int ResultDialog::getTargetChoice()
+{
+
+ int targetChoice = 0;
+
+ if (this->diagramGapStem == DIAGRAMGAP10KMH)
+ {
+ targetChoice = 1;
+ }
+
+ else if (this->diagramGapStem == DIAGRAMGAP20KMH)
+ {
+ targetChoice = 2;
+ }
+
+ else if (this->diagramGapStem == DIAGRAMGAP30KMH)
+ {
+ targetChoice = 3;
+ }
+
+ else if (this->diagramGapStem == DIAGRAMGAP40KMH)
+ {
+ targetChoice = 4;
+ }
+
+ else if (this->diagramGapStem == DIAGRAMGAP50KMH)
+ {
+ targetChoice = 5;
+ }
+
+ else if (this->diagramGapStem == DIAGRAMGAP60KMH)
+ {
+ targetChoice = 6;
+ }
+
+ else if (this->diagramGapStem == DIAGRAMGAP70KMH)
+ {
+ targetChoice = 7;
+ }
+
+ else if (this->diagramGapStem == DIAGRAMGAP80KMH)
+ {
+ targetChoice = 8;
+ }
+
+ else if (this->diagramGapStem == DIAGRAMGAP90KMH)
+ {
+ targetChoice = 9;
+ }
+
+ else
+ {
+ targetChoice = 10;
+ }
+ return targetChoice;
+}
+
+void ResultDialog::setLabelInfoToUser(QString infoText)
+{
+ this->ui->labelInfoToUser->setText(infoText);