diff --git a/mainwindow.ui b/mainwindow.ui index adf23eb..be1d214 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -11,7 +11,7 @@ - MainWindow + Rennmessung diff --git a/training.cpp b/training.cpp index 59a0447..d608aac 100644 --- a/training.cpp +++ b/training.cpp @@ -20,7 +20,7 @@ Training::Training(QWidget *parent, DataBase *db) : this->db = db; string statement = "select mindestrundendauer from renndauer where id like 1"; - this->minTimeOneRound = this->db->getData(statement, 1)[0][0].toInt(); + this->minimumTime = this->db->getData(statement, 1)[0][0].toInt(); this->finished = false; firstTimeDea = true; @@ -38,6 +38,42 @@ Training::Training(QWidget *parent, DataBase *db) : QShortcut *shortcut = new QShortcut(QKeySequence("Ctrl+Q"), this); QObject::connect(shortcut, SIGNAL(activated()), this, SLOT(close())); + QObject::connect(this->ui->pBReset, SIGNAL(clicked()), this, SLOT(Reset())); + QObject::connect(this->ui->pBResetDea, SIGNAL(clicked()), this, SLOT(ResetDea())); + QObject::connect(this->ui->pBResetShell, SIGNAL(clicked()), this, SLOT(ResetShell())); + +} +void Training::ResetShell(){ + this->VecShell.clear(); + + this->ui->lWShellTime->clear(); + + this->ui->lBestZeitShell->setText("∞"); + this->ui->lCurRoundTimeShell->setText("∞"); + this->firstTimeShell = true; +} +void Training::ResetDea(){ + this->VecDea.clear(); + + this->ui->lWDeaTime->clear(); + + this->ui->lBestZeitDea->setText("∞"); + + this->ui->lCurRoundDea->setText("∞"); + this->firstTimeDea = true; +} +void Training::Reset(){ + this->VecShell.clear(); + this->VecDea.clear(); + this->ui->lWDeaTime->clear(); + this->ui->lWShellTime->clear(); + + this->ui->lBestZeitDea->setText("∞"); + this->ui->lBestZeitShell->setText("∞"); + this->ui->lCurRoundTimeShell->setText("∞"); + this->ui->lCurRoundDea->setText("∞"); + this->firstTimeShell = true; + this->firstTimeDea = true; } void Training::prepareNextRace(){ this->firstTimeShell = true; @@ -70,10 +106,16 @@ void Training::shellSlot(){ if(getMinimum(VecShell) == zeit && VecShell.size() > 1){ item->setBackgroundColor(Qt::green); } + if(zeit < this->minimumTime){ + item->setBackgroundColor(Qt::red); + } item->setText(QString::number((double)zeit/1000)); ui->lWShellTime->addItem(item); - ui->lBestZeitShell->setText(QString::number((double)getMinimum(VecShell)/1000)); + ui->lWShellTime->scrollToBottom(); + if(getMinimum(VecShell) > 0){ + ui->lBestZeitShell->setText(QString::number((double)getMinimum(VecShell)/1000)); + } ui->lCurRoundTimeShell->setText(QString::number((double)zeit/1000)); } } @@ -89,6 +131,7 @@ void Training::deaSlot(){ counterDea.start(); } else{ + /* long zeit = counterDea.getTime(); VecDea.push_back(zeit); QListWidgetItem *item = new QListWidgetItem; @@ -97,19 +140,47 @@ void Training::deaSlot(){ } item->setText(QString::number((double)zeit/1000)); ui->lWDeaTime->addItem(item); + ui->lWDeaTime->scrollToBottom(); ui->lBestZeitDea->setText(QString::number((double)getMinimum(VecDea)/1000)); ui->lCurRoundDea->setText(QString::number((double)zeit/1000)); + */ + // + long zeit = counterDea.getTime(); + VecDea.push_back(zeit); + QListWidgetItem *item = new QListWidgetItem; + if(getMinimum(VecDea) == zeit && VecDea.size() > 1){ + item->setBackgroundColor(Qt::green); + } + if(zeit < this->minimumTime){ + item->setBackgroundColor(Qt::red); + } + item->setText(QString::number((double)zeit/1000)); + ui->lWDeaTime->addItem(item); + + ui->lWDeaTime->scrollToBottom(); + if(getMinimum(VecDea) > 0){ + ui->lBestZeitDea->setText(QString::number((double)getMinimum(VecDea)/1000)); + } + ui->lCurRoundDea->setText(QString::number((double)zeit/1000)); } } } long Training::getMinimum(std::vector a){ - long minimum = a[0]; + long minimum = -1; for(unsigned int i = 0; i < a.size(); i++){ - if(a[i] < minimum){ - minimum = a[i]; + if(minimum < 0){ + if(a[i] >= this->minimumTime){ + minimum = a[i]; + } } + else{ + if(a[i] < minimum && a[i] >= this->minimumTime){ + minimum = a[i]; + } + } + } return minimum; } diff --git a/training.h b/training.h index 2b77fd2..283fff5 100644 --- a/training.h +++ b/training.h @@ -38,7 +38,12 @@ private: Counter counterDea; DataBase *db; long minTimeOneRound; + int minimumTime; + public slots: + void ResetShell(); + void ResetDea(); + void Reset(); void deaSlot(); void shellSlot(); diff --git a/training.ui b/training.ui index 49763c6..9f898be 100644 --- a/training.ui +++ b/training.ui @@ -11,7 +11,7 @@ - MainWindow + Training @@ -217,6 +217,31 @@ + + + + + + Reset Shell + + + + + + + Reset + + + + + + + Reset Dea + + + + + diff --git a/windowrace.cpp b/windowrace.cpp index 02fb02d..0798806 100644 --- a/windowrace.cpp +++ b/windowrace.cpp @@ -341,7 +341,6 @@ long WindowRace::getMinimum(std::vector a){ } return minimum; - } void WindowRace::ampelSlot(){ if(ampelCounter == 5){ diff --git a/windowrennliste.ui b/windowrennliste.ui index 35d7a4a..6fb3115 100644 --- a/windowrennliste.ui +++ b/windowrennliste.ui @@ -11,7 +11,7 @@ - MainWindow + Rennliste diff --git a/windowssettings.ui b/windowssettings.ui index f66b035..db9bb15 100644 --- a/windowssettings.ui +++ b/windowssettings.ui @@ -11,7 +11,7 @@ - MainWindow + Einstellungen