diff --git a/src/frames/mainwindow.cpp b/src/frames/mainwindow.cpp index da56824..bde5993 100644 --- a/src/frames/mainwindow.cpp +++ b/src/frames/mainwindow.cpp @@ -70,6 +70,7 @@ void MainWindow::openPreferences() { TaskStateService::getInstance()->updatePriorities(dialog.getPriorities()); TaskStateService::getInstance()->updateStatuses(dialog.getStatus()); + TaskStateService::getInstance()->setDefaultStatus(dialog.getDefaultStatus()); save(); redrawTaskTree(); } diff --git a/src/frames/prefdialog.cpp b/src/frames/prefdialog.cpp index 5bef786..db4dce9 100644 --- a/src/frames/prefdialog.cpp +++ b/src/frames/prefdialog.cpp @@ -20,6 +20,7 @@ PrefDialog::PrefDialog(QWidget *parent) : statusUUIDRef.append(s.getUUID()); setItemColor(item, s.getColor()); ui->statusListWidget->addItem(item); + ui->defaultStatusCombobox->addItem(s.getName(), s.getUUID()); } QVector priorities = TaskStateService::getInstance()->getPriorities(); @@ -31,6 +32,8 @@ PrefDialog::PrefDialog(QWidget *parent) : ui->priorityListWidget->addItem(item); } + ui->defaultStatusCombobox->setCurrentText(TaskStateService::getInstance()->getDefaultStatus().getName()); + connect(ui->addStatusButton, &QPushButton::clicked, this, &PrefDialog::onAddStatusButtonClick); connect(ui->addPriorityButton, &QPushButton::clicked, this, &PrefDialog::onAddPriorityButtonClick); connect(ui->statusListWidget, &QListWidget::currentRowChanged, this, &PrefDialog::onItemSelectionChange); @@ -80,6 +83,24 @@ QVector PrefDialog::getStatus() return res; } +Status PrefDialog::getDefaultStatus() +{ + QVector status = TaskStateService::getInstance()->getStatuses(); + QString uuid = ui->defaultStatusCombobox->currentData().toString(); + for (Status s : status) + { + if (uuid == s.getUUID()) + { + return s; + } + } + if (status.count() > 0) + { + return status[0]; + } + return Status("", "", QColor::fromRgb(0, 0, 0)); +} + void PrefDialog::onAddStatusButtonClick() { QColor bgColor = Tools::getRandomColor(); diff --git a/src/frames/prefdialog.h b/src/frames/prefdialog.h index 67f62bb..a255ff5 100644 --- a/src/frames/prefdialog.h +++ b/src/frames/prefdialog.h @@ -22,6 +22,7 @@ public: QVector getPriorities(); QVector getStatus(); + Status getDefaultStatus(); private slots: void onAddStatusButtonClick(); diff --git a/src/frames/taskdialog.cpp b/src/frames/taskdialog.cpp index e5eb6a8..f21a3b0 100644 --- a/src/frames/taskdialog.cpp +++ b/src/frames/taskdialog.cpp @@ -16,6 +16,7 @@ TaskDialog::TaskDialog(QWidget *parent) : QDate expectedFor = QDate::currentDate(); expectedFor = expectedFor.addDays(10); ui->expectedForEdit->setDate(expectedFor); + ui->statusCombo->setCurrentText(TaskStateService::getInstance()->getDefaultStatus().getName()); } TaskDialog::TaskDialog(Task *t, QWidget *parent) :