Saeterprosjekt/src/uidialogs/widgetdialogs/prosjekt/redigerprosjektdialog.cpp

112 lines
4.7 KiB
C++

#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();
}