126 lines
5.0 KiB
C++
126 lines
5.0 KiB
C++
#include "windowssettings.h"
|
|
#include "ui_windowssettings.h"
|
|
#include <iostream>
|
|
#include <string>
|
|
#include <stdio.h>
|
|
#include <time.h>
|
|
#include <vector>
|
|
|
|
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<QString> > 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;
|
|
}
|