#include "redigerprosjektdialog.h" #include "ui_redigerprosjektdialog.h" RedigerProsjektDialog::RedigerProsjektDialog(QWidget *parent) : QDialog(parent), ui(new Ui::RedigerProsjektDialog) { ui->setupUi(this); } RedigerProsjektDialog::~RedigerProsjektDialog() { delete ui; } void RedigerProsjektDialog::settProsjektFil(ProsjektFil prosjekt) { prosjektFil = prosjekt; fyllSkjemaElementer(); } void RedigerProsjektDialog::fyllSkjemaElementer() { ui->lineProsjektNavn->setText(prosjektFil.value("prosjektnavn").toString()); ui->lineOrdrenummer->setText(prosjektFil.value("ordrenummer").toString()); ui->textEditProsjektBeskrivelse->setHtml(prosjektFil.value("prosjektbeskrivelse").toString()); ui->checkVarsleStart->setChecked(prosjektFil.value("varslestart").toBool()); ui->checkVarsleSlutt->setChecked(prosjektFil.value("varsleslutt").toBool()); endreVarselStatus(); quint64 prosjektStart = prosjektFil.value("prosjektstart").toULongLong(); quint64 prosjektSlutt = prosjektFil.value("prosjektslutt").toULongLong(); QDateTime tProsjektStart(QDateTime::fromMSecsSinceEpoch(prosjektStart)); QDateTime tProsjektSlutt(QDateTime::fromMSecsSinceEpoch(prosjektSlutt)); ui->dateStart->setDateTime(tProsjektStart); ui->dateSlutt->setDateTime(tProsjektSlutt); ui->timeStart->setDateTime(tProsjektStart); ui->timeSlutt->setDateTime(tProsjektSlutt); ui->spinBoxAntallDognVarslingStart->setValue(prosjektFil.value("dognvarselstart").toInt()); ui->spinBoxAntallDognVarslingSlutt->setValue(prosjektFil.value("dognvarselslutt").toInt()); ui->spinBoxTimerForStart->setValue(prosjektFil.value("timervarselstart").toInt()); ui->spinBoxTimerForSlutt->setValue(prosjektFil.value("timercarselslutt").toInt()); } void RedigerProsjektDialog::on_checkVarsleStart_clicked() { endreVarselStatus(); } void RedigerProsjektDialog::on_checkVarsleSlutt_clicked() { endreVarselStatus(); } void RedigerProsjektDialog::endreVarselStatus() { ui->spinBoxAntallDognVarslingSlutt->setEnabled(ui->checkVarsleSlutt->isChecked()); ui->spinBoxTimerForSlutt->setEnabled(ui->checkVarsleSlutt->isChecked()); ui->spinBoxAntallDognVarslingStart->setEnabled(ui->checkVarsleStart->isChecked()); ui->spinBoxTimerForStart->setEnabled(ui->checkVarsleStart->isChecked()); } void RedigerProsjektDialog::on_pushAvbryt_clicked() { QDialog::close(); } void RedigerProsjektDialog::on_pushLagre_clicked() { ProsjektFil nyttProsjekt; nyttProsjekt.insert("prosjektnavn", ui->lineProsjektNavn->text()); nyttProsjekt.insert("ordrenummer", ui->lineOrdrenummer->text().toInt()); nyttProsjekt.insert("prosjektbeskrivelse", ui->textEditProsjektBeskrivelse->toHtml()); nyttProsjekt.insert("varslestart", ui->checkVarsleStart->isChecked()); nyttProsjekt.insert("varsleslutt", ui->checkVarsleSlutt->isChecked()); QDateTime prosjektStartDato = ui->dateStart->dateTime(); quint64 mSekStart = prosjektStartDato.toMSecsSinceEpoch() + ui->timeStart->time().msecsSinceStartOfDay(); QDateTime prosjektSluttDato = ui->dateSlutt->dateTime(); quint64 mSekSlutt = prosjektSluttDato.toMSecsSinceEpoch() + ui->timeSlutt->time().msecsSinceStartOfDay(); nyttProsjekt.insert("prosjektstart", mSekStart); nyttProsjekt.insert("prosjektslutt", mSekSlutt); int dognVarselStart = ui->spinBoxAntallDognVarslingStart->value(); int timerVarselStart = ui->spinBoxTimerForStart->value(); quint64 epochVarselDognStart = dognVarselStart * 24 * 60 * 60 * 1000; quint64 epochVarselTimerStart = timerVarselStart * 60 * 60 * 1000; quint64 epochVarselStart = epochVarselDognStart + epochVarselTimerStart; int dognVarselSlutt = ui->spinBoxAntallDognVarslingSlutt->value(); int timerVarselSlutt = ui->spinBoxTimerForSlutt->value(); quint64 epochVarselDognSlutt = dognVarselSlutt * 24 * 60 * 60 * 1000; quint64 epochVarselTimerSlutt = timerVarselSlutt * 60 * 60 * 1000; quint64 epochVarselSlutt = epochVarselDognSlutt + epochVarselTimerSlutt; nyttProsjekt.insert("varselstart", epochVarselStart); nyttProsjekt.insert("varselslutt", epochVarselSlutt); nyttProsjekt.insert("dognvarselstart", ui->spinBoxAntallDognVarslingStart->value()); nyttProsjekt.insert("dognvarselslutt", ui->spinBoxAntallDognVarslingSlutt->value()); nyttProsjekt.insert("timervarselstart", ui->spinBoxTimerForStart->value()); nyttProsjekt.insert("timercarselslutt", ui->spinBoxTimerForSlutt->value()); nyttProsjekt.insert("active", true); nyttProsjekt.insert("ferdig", false); emit lagreProsjekt(nyttProsjekt); } void RedigerProsjektDialog::fokusStart() { ui->lineProsjektNavn->setFocus(); ui->lineProsjektNavn->selectAll(); }