#include "mainwindow.h" #include "database.h" #include "hardwaresetup.h" #include "training.h" #include "ui_mainwindow.h" #include "unistd.h" #include "windowrace.h" #include "windowrennliste2.h" #include "windowssettings.h" #include #include #include #include #include using std::vector; MainWindow::MainWindow(QWidget * parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); this->interfaceTraining = nullptr; this->interfaceRace = nullptr; this->interfaceSettings = nullptr; this->interfaceRennliste = nullptr; QObject::connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(NewWindowSettings())); QObject::connect(ui->pBRennen, SIGNAL(clicked()), this, SLOT(WindowRennen())); QObject::connect(this->ui->pBTraining, SIGNAL(clicked()), this, SLOT(WindowTraining())); QObject::connect(this->ui->pBEvaluation, SIGNAL(clicked()), this, SLOT(WindowEvaluation())); QShortcut * startTraining = new QShortcut(QKeySequence("Ctrl+t"), this); QShortcut * startRennen = new QShortcut(QKeySequence("Ctrl+r"), this); QObject::connect(startTraining, SIGNAL(activated()), this, SLOT(WindowTraining())); QObject::connect(startRennen, SIGNAL(activated()), this, SLOT(WindowRennen())); this->db = new DataBase; // vector> daten = db->getData("select * from Fahrer", 2); } void MainWindow::closeEvent(QCloseEvent * event) { Q_UNUSED(event); } MainWindow::~MainWindow() { delete this->db; delete ui; } void MainWindow::WindowTraining() { this->interfaceTraining = new Training(this, this->db); this->interfaceTraining->show(); } void MainWindow::NewWindowSettings() { this->interfaceSettings = new WindowsSettings(this->db, this); this->interfaceSettings->show(); } void MainWindow::WindowRennen() { // check if a valid racelist has been created // get last race id string statement = "select aktRennen.id_rennen from aktRennen order by " "id_rennen DESC limit 1"; try { string raceId = this->db->getData2(statement, 1).at(0).at(0).toStdString(); std::stringstream ss; ss << "select count(*) from Zeiten where zeiten.id_rennen like " << raceId; int res = this->db->getData2(ss.str(), 1).at(0).at(0).toInt(); if (res > 0) { // current race was raced before QMessageBox msgBox; msgBox.setText( "Aktuelles Rennen wurde bereits gefahren! Trotzdem fahren?"); msgBox.setInformativeText(""); msgBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No); msgBox.setDefaultButton(QMessageBox::No); int ret = msgBox.exec(); switch (ret) { case QMessageBox::No: return; case QMessageBox::Yes: // do nothing break; default: // should never be reached break; } } } catch (std::exception & e) { Q_UNUSED(e); } this->interfaceRace = new WindowRace(this->db, this); this->interfaceRace->show(); this->interfaceRennliste = new WindowRennliste(this->db, this); this->interfaceRennliste->show(); this->interfaceRace->setWindowRennliste(this->interfaceRennliste); this->interfaceRennliste->setWindowRace(this->interfaceRace); } void MainWindow::WindowEvaluation() { this->interfaceEvaluation = new Evaluation(this->db); this->interfaceEvaluation->show(); }