#include "windowssettings.h" #include "ui_windowssettings.h" #include #include #include #include #include using std::vector; using std::cout; using std::endl; using std::string; WindowsSettings::WindowsSettings(DataBase *db, QWidget *parent) : QMainWindow(parent), ui(new Ui::WindowsSettings) { ui->setupUi(this); QObject::connect(ui->pBSpeichernStrecke, SIGNAL(clicked()), this, SLOT(StreckeSpeichernSlot())); QObject::connect(ui->pBAbbrechenStrecke, SIGNAL(clicked()), this, SLOT(AbbrechenSlot())); QObject::connect(this->ui->pbAbbrechenDauer, SIGNAL(clicked()), this, SLOT(AbbrechenSlot())); QObject::connect(this->ui->pbSaveDauer, SIGNAL(clicked()), this, SLOT(SaveDauerSlot())); QObject::connect(this->ui->pbSaveAndExitDauer, SIGNAL(clicked()), this, SLOT(SaveDauerAndExitSlot())); this->db = db; //Shell prepare string statement = "select geraden, kurven_aussen, " "kurven_innen, steilkurve_innen, steilkurve_aussen, seit " "from Strecke where id_bahn like 1 order by seit DESC limit 1"; vector< vector > res; res = db->getData(statement, 6); ui->lEShellGeraden->setText(res[0][0]); ui->lEShellKurvenAussen->setText(res[0][1]); ui->lEShellKurvenInnen->setText(res[0][2]); ui->lEShellSteilkurveInnen->setText(res[0][3]); ui->lEShellSteilkurveaussen->setText(res[0][4]); //Dea prepare statement = "select geraden, kurven_aussen, " "kurven_innen, steilkurve_innen, steilkurve_aussen, seit " "from Strecke where id_bahn like 2 order by seit DESC limit 1"; res = db->getData(statement, 6); ui->lEDeaGeraden->setText(res[0][0]); ui->lEDeaKurvenAussen->setText(res[0][1]); ui->lEDeaKurvenInnen->setText(res[0][2]); ui->lEDeaSteilkurveInnen->setText(res[0][3]); ui->lEDeaSteilkurveAussen->setText(res[0][4]); //duration prepare statement = "select dauer, mindestrundendauer from renndauer"; res = db->getData(statement, 2); this->ui->leRenndauer->setText(res[0][0]); this->ui->lEMinRundenzeit->setText(res[0][1]); statement = "SELECT id, minimumroundtime FROM rennen order by id DESC limit 1"; res = this->db->getData(statement, 2); this->rennId = res[0][0].toInt(); this->ui->lEMinRundenzeitAktRennen->setText(res[0][1]); } void WindowsSettings::AbbrechenSlot(){ this->close(); delete this; } void WindowsSettings::SaveDauerSlot(){ string statement = "update renndauer set dauer="+this->ui->leRenndauer->text().toStdString()+ ", mindestrundendauer="+this->ui->lEMinRundenzeit->text().toStdString()+" where id like 1"; this->db->setData(statement); statement = "update rennen set minimumroundtime="+this->ui->lEMinRundenzeitAktRennen->text().toStdString()+ " where id like "+QString::number(this->rennId).toStdString(); this->db->setData(statement); } void WindowsSettings::SaveDauerAndExitSlot(){ this->SaveDauerSlot(); this->AbbrechenSlot(); } void WindowsSettings::StreckeSpeichernSlot(){ QString shellGeraden, shellKurvenAussen, shellKurvenInnen, shellSteilAussen, shellSteilInnen; QString deaGeraden, deaKurvenAussen, deaKurvenInnen, deaSteilAussen, deaSteilInnen; shellGeraden = ui->lEShellGeraden->text(); shellKurvenAussen = ui->lEShellKurvenAussen->text(); shellKurvenInnen = ui->lEShellKurvenInnen->text(); shellSteilAussen = ui->lEShellSteilkurveaussen->text(); shellSteilInnen = ui->lEShellSteilkurveInnen->text(); QString statement = QString("insert into strecke (geraden, kurven_aussen, kurven_innen, steilkurve_innen, steilkurve_aussen, seit, id_bahn)" " values ("+shellGeraden+", "+shellKurvenAussen+", "+shellKurvenInnen+", "+shellSteilInnen+", "+shellSteilAussen+", '"+QString::fromStdString(currentDateTime())+"', 1)"); //cout << statement.toStdString() << endl; db->setData(statement.toStdString()); deaGeraden = ui->lEDeaGeraden->text(); deaKurvenAussen = ui->lEDeaKurvenAussen->text(); deaKurvenInnen = ui->lEDeaKurvenInnen->text(); deaSteilAussen = ui->lEDeaSteilkurveAussen->text(); deaSteilInnen = ui->lEDeaSteilkurveInnen->text(); statement = QString("insert into strecke (geraden, kurven_aussen, kurven_innen, steilkurve_innen, steilkurve_aussen, seit, id_bahn)" " values ("+deaGeraden+", "+deaKurvenAussen+", "+deaKurvenInnen+", "+deaSteilInnen+", "+deaSteilAussen+", '"+QString::fromStdString(currentDateTime())+"', 2)"); //cout << statement.toStdString() << endl; db->setData(statement.toStdString()); } WindowsSettings::~WindowsSettings() { delete ui; std::cout << "Destruktor einstellungen" << std::endl; } // Get current date/time, format is YYYY-MM-DD.HH:mm:ss string WindowsSettings::currentDateTime() { time_t now = time(0); struct tm tstruct; char buf[80]; tstruct = *localtime(&now); // Visit http://en.cppreference.com/w/cpp/chrono/c/strftime // for more information about date/time format strftime(buf, sizeof(buf), "%Y-%m-%d.%X", &tstruct); return buf; }