Files
Rennbahn/windowssettings.cpp

117 lines
4.5 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 from renndauer";
res = db->getData(statement, 1);
this->ui->leRenndauer->setText(res[0][0]);
}
void WindowsSettings::AbbrechenSlot(){
this->close();
delete this;
}
void WindowsSettings::SaveDauerSlot(){
string statement = "update renndauer set dauer="+this->ui->leRenndauer->text().toStdString()+" where id like 1";
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;
}