diff --git a/dialogs/settingsdialog.cpp b/dialogs/settingsdialog.cpp new file mode 100644 index 0000000..f2b14be --- /dev/null +++ b/dialogs/settingsdialog.cpp @@ -0,0 +1,38 @@ +#include "settingsdialog.h" +#include "ui_settingsdialog.h" + +#include "zeiterfassungsettings.h" + +SettingsDialog::SettingsDialog(ZeiterfassungSettings &settings, QWidget *parent) : + QDialog(parent), + ui(new Ui::SettingsDialog), + m_settings(settings) +{ + ui->setupUi(this); + + ui->lineEditBuchungKommenBackgroundColor->setText(settings.buchungKommenBackgroundColor()); + ui->lineEditBuchungGehenBackgroundColor->setText(settings.buchungGehenBackgroundColor()); + ui->lineEditBuchungOtherBackgroundColor->setText(settings.buchungOtherBackgroundColor()); + ui->lineEditKontierungBackgroundColor->setText(settings.kontierungBackgroundColor()); + + connect(ui->buttonBox, &QDialogButtonBox::accepted, this, &SettingsDialog::submit); +} + +SettingsDialog::~SettingsDialog() +{ + delete ui; +} + +void SettingsDialog::submit() +{ + if(ui->lineEditBuchungKommenBackgroundColor->text() != m_settings.buchungKommenBackgroundColor()) + m_settings.setBuchungKommenBackgroundColor(ui->lineEditBuchungKommenBackgroundColor->text()); + if(ui->lineEditBuchungGehenBackgroundColor->text() != m_settings.buchungGehenBackgroundColor()) + m_settings.setBuchungGehenBackgroundColor(ui->lineEditBuchungGehenBackgroundColor->text()); + if(ui->lineEditBuchungOtherBackgroundColor->text() != m_settings.buchungOtherBackgroundColor()) + m_settings.setBuchungOtherBackgroundColor(ui->lineEditBuchungOtherBackgroundColor->text()); + if(ui->lineEditKontierungBackgroundColor->text() != m_settings.kontierungBackgroundColor()) + m_settings.setKontierungBackgroundColor(ui->lineEditKontierungBackgroundColor->text()); + + accept(); +} diff --git a/dialogs/settingsdialog.h b/dialogs/settingsdialog.h new file mode 100644 index 0000000..5d50b6c --- /dev/null +++ b/dialogs/settingsdialog.h @@ -0,0 +1,25 @@ +#ifndef SETTINGSDIALOG_H +#define SETTINGSDIALOG_H + +#include + +class ZeiterfassungSettings; +namespace Ui { class SettingsDialog; } + +class SettingsDialog : public QDialog +{ + Q_OBJECT + +public: + explicit SettingsDialog(ZeiterfassungSettings &settings, QWidget *parent = 0); + ~SettingsDialog(); + +private Q_SLOTS: + void submit(); + +private: + Ui::SettingsDialog *ui; + ZeiterfassungSettings &m_settings; +}; + +#endif // SETTINGSDIALOG_H diff --git a/dialogs/settingsdialog.ui b/dialogs/settingsdialog.ui new file mode 100644 index 0000000..2afadbc --- /dev/null +++ b/dialogs/settingsdialog.ui @@ -0,0 +1,111 @@ + + + SettingsDialog + + + + 0 + 0 + 647 + 300 + + + + Dialog + + + + + + <h1>Settings</h1> + + + + + + + + + buchungKommenBackgroundColor + + + lineEditBuchungKommenBackgroundColor + + + + + + + buchungGehenBackgroundColor + + + lineEditBuchungGehenBackgroundColor + + + + + + + buchungOtherBackgroundColor + + + lineEditBuchungOtherBackgroundColor + + + + + + + kontierungBackgroundColor + + + lineEditKontierungBackgroundColor + + + + + + + + + + + + + + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Apply|QDialogButtonBox::Cancel + + + + + + + + + buttonBox + rejected() + SettingsDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + diff --git a/mainwindow.cpp b/mainwindow.cpp index d4a548b..bd9c5e8 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -19,6 +19,7 @@ #include "dialogs/aboutmedialog.h" #include "dialogs/buchungdialog.h" #include "dialogs/kontierungdialog.h" +#include "dialogs/settingsdialog.h" #include "strips/buchungstrip.h" #include "strips/kontierungstrip.h" #include "models/buchungenmodel.h" @@ -66,14 +67,16 @@ MainWindow::MainWindow(ZeiterfassungSettings &settings, Zeiterfassung &erfassung }); connect(ui->actionAboutMe, &QAction::triggered, [=](){ AboutMeDialog(userInfo, this).exec(); }); + connect(ui->actionSettings, &QAction::triggered, [=](){ SettingsDialog(m_settings, this).exec(); }); + connect(ui->actionAboutQt, &QAction::triggered, [=](){ QMessageBox::aboutQt(this); }); ui->dateEditDate->setDate(QDate::currentDate()); connect(ui->dateEditDate, &QDateTimeEdit::dateChanged, this, &MainWindow::refresh); refresh(); - connect(ui->pushButtonPrev, &QAbstractButton::pressed, this, &MainWindow::pushButtonPrevPressed); - connect(ui->pushButtonNext, &QAbstractButton::pressed, this, &MainWindow::pushButtonNextPressed); + connect(ui->pushButtonPrev, &QAbstractButton::pressed, [=](){ ui->dateEditDate->setDate(ui->dateEditDate->date().addDays(-1)); }); + connect(ui->pushButtonNext, &QAbstractButton::pressed, [=](){ ui->dateEditDate->setDate(ui->dateEditDate->date().addDays(1)); }); ui->timeEditTime->setTime(timeNormalise(QTime::currentTime())); @@ -671,16 +674,6 @@ void MainWindow::contextMenuKontierung(const QPoint &pos) } } -void MainWindow::pushButtonPrevPressed() -{ - ui->dateEditDate->setDate(ui->dateEditDate->date().addDays(-1)); -} - -void MainWindow::pushButtonNextPressed() -{ - ui->dateEditDate->setDate(ui->dateEditDate->date().addDays(1)); -} - void MainWindow::pushButtonStartPressed() { if(m_buchungenModel->rbegin() == m_buchungenModel->rend() || diff --git a/mainwindow.h b/mainwindow.h index f2dcb07..fbe66f7 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -34,8 +34,6 @@ private Q_SLOTS: void refreshKontierungenFinished(bool success, const QString &message); void contextMenuBuchung(const QPoint &pos); void contextMenuKontierung(const QPoint &pos); - void pushButtonPrevPressed(); - void pushButtonNextPressed(); void pushButtonStartPressed(); void pushButtonEndPressed(); diff --git a/zeiterfassung.pro b/zeiterfassung.pro index 181acd7..3f007bb 100755 --- a/zeiterfassung.pro +++ b/zeiterfassung.pro @@ -28,7 +28,8 @@ SOURCES += main.cpp \ eventloopwithstatus.cpp \ strips/buchungstrip.cpp \ strips/kontierungstrip.cpp \ - zeiterfassungsettings.cpp + zeiterfassungsettings.cpp \ + dialogs/settingsdialog.cpp HEADERS += \ zeiterfassung.h \ @@ -42,7 +43,8 @@ HEADERS += \ eventloopwithstatus.h \ strips/buchungstrip.h \ strips/kontierungstrip.h \ - zeiterfassungsettings.h + zeiterfassungsettings.h \ + dialogs/settingsdialog.h RESOURCES += \ resources.qrc @@ -54,4 +56,5 @@ FORMS += \ dialogs/buchungdialog.ui \ dialogs/kontierungdialog.ui \ strips/buchungstrip.ui \ - strips/kontierungstrip.ui + strips/kontierungstrip.ui \ + dialogs/settingsdialog.ui