diff --git a/TaskBoard.pro b/TaskBoard.pro index f00e34e..16b0279 100644 --- a/TaskBoard.pro +++ b/TaskBoard.pro @@ -4,8 +4,8 @@ greaterThan(QT_MAJOR_VERSION, 5): QT += widgets CONFIG += c++17 -win32:VERSION = 0.3.0.0 # major.minor.patch.build -else:VERSION = 0.3.0 # major.minor.patch +win32:VERSION = 0.3.1.0 # major.minor.patch.build +else:VERSION = 0.3.1 # major.minor.patch DEFINES += APP_VERSION=\"\\\"$${VERSION}\\\"\" DEFINES += APP_NAME=\"\\\"TaskBoard\\\"\" diff --git a/src/frames/boardconfigdialog.cpp b/src/frames/boardconfigdialog.cpp index f2ebdd6..39135b1 100644 --- a/src/frames/boardconfigdialog.cpp +++ b/src/frames/boardconfigdialog.cpp @@ -11,6 +11,7 @@ BoardConfigDialog::BoardConfigDialog(Board *b, QWidget *parent) : ui->setupUi(this); ui->nameField->setText(b->getName()); ui->descriptionField->setPlainText(b->getDescription()); + ui->showStatusCheckbox->setChecked(b->isShowingStatus()); if (!b->isAutoStatus()) { QVector statuses = TaskStateService::getInstance()->getStatuses(); @@ -44,6 +45,11 @@ bool BoardConfigDialog::isAutoStatus() return ui->autoStatusCheckbox->isChecked(); } +bool BoardConfigDialog::isShowingStatus() +{ + return ui->showStatusCheckbox->isChecked(); +} + const QString BoardConfigDialog::getStatus() { if (!ui->autoStatusCheckbox->isChecked()) diff --git a/src/frames/boardconfigdialog.h b/src/frames/boardconfigdialog.h index fe2c88f..56c8653 100644 --- a/src/frames/boardconfigdialog.h +++ b/src/frames/boardconfigdialog.h @@ -20,6 +20,7 @@ public: const QString getName(); const QString getDescription(); bool isAutoStatus(); + bool isShowingStatus(); const QString getStatus(); private slots: diff --git a/src/frames/boardconfigdialog.ui b/src/frames/boardconfigdialog.ui index 4eab8d5..485ddeb 100644 --- a/src/frames/boardconfigdialog.ui +++ b/src/frames/boardconfigdialog.ui @@ -37,7 +37,14 @@ - Qt::Horizontal + Qt::Orientation::Horizontal + + + + + + + Show the board status @@ -72,10 +79,10 @@ - Qt::Horizontal + Qt::Orientation::Horizontal - QDialogButtonBox::Cancel|QDialogButtonBox::Ok + QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok diff --git a/src/frames/mainwindow.cpp b/src/frames/mainwindow.cpp index eaec679..58bd27b 100644 --- a/src/frames/mainwindow.cpp +++ b/src/frames/mainwindow.cpp @@ -355,6 +355,7 @@ void MainWindow::onEditNameBoardMenu() QString newDesc = dialog.getDescription(); b->setName(newName); b->setDescription(newDesc); + b->setShowingStatus(dialog.isShowingStatus()); if (!dialog.isAutoStatus()) { std::optional status = TaskStateService::getInstance()->getStatusByUUID(dialog.getStatus()); @@ -731,12 +732,15 @@ void MainWindow::redrawBoardStatus() if (selectedBoardIndex > -1) { Board *b = boards[selectedBoardIndex]; - std::optional boardStatus = TaskStateService::getInstance()->getStatusByUUID(b->getStatus()); - if (boardStatus.has_value()) + if (b->isShowingStatus()) { - ui->boardStatus->setStyleSheet(Tools::getStatusLabelStylesheet(boardStatus.value())); - ui->boardStatus->setText(boardStatus.value().getName()); - ui->boardStatus->setVisible(true); + std::optional boardStatus = TaskStateService::getInstance()->getStatusByUUID(b->getStatus()); + if (boardStatus.has_value()) + { + ui->boardStatus->setStyleSheet(Tools::getStatusLabelStylesheet(boardStatus.value())); + ui->boardStatus->setText(boardStatus.value().getName()); + ui->boardStatus->setVisible(true); + } } } } diff --git a/src/frames/prefdialog.ui b/src/frames/prefdialog.ui index 5b20809..1459806 100644 --- a/src/frames/prefdialog.ui +++ b/src/frames/prefdialog.ui @@ -3,7 +3,7 @@ PrefDialog - Qt::ApplicationModal + Qt::WindowModality::ApplicationModal @@ -41,10 +41,10 @@ - Qt::Horizontal + Qt::Orientation::Horizontal - QDialogButtonBox::Cancel|QDialogButtonBox::Ok + QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok @@ -66,10 +66,10 @@ - 10 - 10 - 601 - 291 + 40 + 50 + 571 + 251 @@ -150,7 +150,7 @@ 570 310 41 - 21 + 31 @@ -166,7 +166,7 @@ 520 310 41 - 21 + 31 @@ -179,10 +179,10 @@ - 20 + 10 310 - 41 - 21 + 51 + 31 @@ -197,14 +197,78 @@ 70 310 - 41 - 21 + 51 + 31 Up + + + + 11 + 4 + 601 + 41 + + + + <html><head/><body><p>Sort status by display priority. The lowest status will only be displayed if higher statuses are not assigned to the board.</p></body></html> + + + false + + + true + + + + + + 7 + 65 + 20 + 221 + + + + Qt::Orientation::Vertical + + + + + + -4 + 46 + 41 + 16 + + + + Low + + + Qt::AlignmentFlag::AlignCenter + + + + + + -3 + 290 + 41 + 16 + + + + High + + + Qt::AlignmentFlag::AlignCenter + + diff --git a/src/models/board.cpp b/src/models/board.cpp index c6a61e5..c5a6ecf 100644 --- a/src/models/board.cpp +++ b/src/models/board.cpp @@ -6,6 +6,7 @@ #define DESCRIPTION_KEY "description" #define AUTOSTATUS_KEY "auto_status" #define STATUS_KEY "status" +#define SHOW_STATUS_KEY "show_status" #include #include @@ -29,6 +30,7 @@ Board::Board(QJsonObject obj) this->description = obj[DESCRIPTION_KEY].toString(""); this->autoStatus = obj[AUTOSTATUS_KEY].toBool(true); this->statusUUID = obj[STATUS_KEY].toString(); + this->showStatus = obj[SHOW_STATUS_KEY].toBool(!this->autoStatus); QJsonArray jsonTasks = obj[TASKS_KEY].toArray(); foreach (QJsonValue value, jsonTasks) { Task *t = new Task(value.toObject()); @@ -81,6 +83,11 @@ const QString Board::getStatus() return statusUUID; } +bool Board::isShowingStatus() +{ + return showStatus; +} + bool Board::isAutoStatus() { return autoStatus; @@ -102,6 +109,11 @@ void Board::setDirtyStatus(Status s) this->statusUUID = s.getUUID(); } +void Board::setShowingStatus(bool v) +{ + this->showStatus = v; +} + void Board::removeDirtyStatus() { this->autoStatus = true; @@ -148,6 +160,7 @@ const QJsonObject Board::toJson() obj[AUTOSTATUS_KEY] = this->autoStatus; obj[TASKS_KEY] = array; obj[DESCRIPTION_KEY] = description; + obj[SHOW_STATUS_KEY] = this->showStatus; return obj; } diff --git a/src/models/board.h b/src/models/board.h index 3f1343d..74bc9da 100644 --- a/src/models/board.h +++ b/src/models/board.h @@ -19,11 +19,13 @@ public: const QString getName(); const QString getDescription(); const QString getStatus(); + bool isShowingStatus(); bool isAutoStatus(); void setName(const QString name); void setDescription(const QString description); void setDirtyStatus(Status s); + void setShowingStatus(bool); void removeDirtyStatus(); void add(Task); @@ -42,6 +44,7 @@ private: QString statusUUID; bool autoStatus; + bool showStatus; };