Compare commits
5 Commits
0.3.1
...
v0.3.1.1-b
| Author | SHA1 | Date | |
|---|---|---|---|
| 9832b2b275 | |||
| 34cb5776f6 | |||
| 3112e16326 | |||
| 09e5f4cd41 | |||
| e40dfb8f69 |
@@ -4,8 +4,8 @@ greaterThan(QT_MAJOR_VERSION, 5): QT += widgets
|
|||||||
|
|
||||||
CONFIG += c++17
|
CONFIG += c++17
|
||||||
|
|
||||||
win32:VERSION = 0.3.0.0 # major.minor.patch.build
|
win32:VERSION = 0.3.1.1 # major.minor.patch.build
|
||||||
else:VERSION = 0.3.0 # major.minor.patch
|
else:VERSION = 0.3.1.1 # major.minor.patch
|
||||||
|
|
||||||
DEFINES += APP_VERSION=\"\\\"$${VERSION}\\\"\"
|
DEFINES += APP_VERSION=\"\\\"$${VERSION}\\\"\"
|
||||||
DEFINES += APP_NAME=\"\\\"TaskBoard\\\"\"
|
DEFINES += APP_NAME=\"\\\"TaskBoard\\\"\"
|
||||||
@@ -63,6 +63,23 @@ linux-* {
|
|||||||
QMAKE_CXXFLAGS_RELEASE *= -O3
|
QMAKE_CXXFLAGS_RELEASE *= -O3
|
||||||
}
|
}
|
||||||
|
|
||||||
|
freebsd-* {
|
||||||
|
message("Build for FreeBSD")
|
||||||
|
DEFINES += APP_OS=\"\\\"$$system(freebsd-version -u)\\\"\"
|
||||||
|
DEFINES += APP_OS_VERSION=\"\\\"$$system(uname -r)\\\"\"
|
||||||
|
DEFINES += APP_ARCH=\"\\\"$$system(uname -m)\\\"\"
|
||||||
|
ARCH = $$system(uname -m)
|
||||||
|
equals(ARCH, aarch64) {
|
||||||
|
message("CPU Architecture : aarch64")
|
||||||
|
QMAKE_CXXFLAGS_RELEASE += -mtune=cortex-a72
|
||||||
|
}
|
||||||
|
equals(ARCH, amd64) {
|
||||||
|
message("CPU Architecture : amd64")
|
||||||
|
QMAKE_CXXFLAGS_RELEASE += -march=skylake
|
||||||
|
}
|
||||||
|
QMAKE_CXXFLAGS_RELEASE *= -O3
|
||||||
|
}
|
||||||
|
|
||||||
# You can make your code fail to compile if it uses deprecated APIs.
|
# You can make your code fail to compile if it uses deprecated APIs.
|
||||||
# In order to do so, uncomment the following line.
|
# In order to do so, uncomment the following line.
|
||||||
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
|
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
|
||||||
|
|||||||
@@ -28,8 +28,10 @@ QString AboutDialog::getCompilerInfo()
|
|||||||
#elif __GNUC__
|
#elif __GNUC__
|
||||||
#ifdef __MINGW32__
|
#ifdef __MINGW32__
|
||||||
return QString("MinGW_%1.%2").arg(QString::number(__MINGW32_MAJOR_VERSION), QString::number(__MINGW32_MINOR_VERSION));
|
return QString("MinGW_%1.%2").arg(QString::number(__MINGW32_MAJOR_VERSION), QString::number(__MINGW32_MINOR_VERSION));
|
||||||
#else
|
#elif __linux__
|
||||||
return QString("GLIBC_%1.%2").arg(QString::number(__GLIBC__), QString::number(__GLIBC_MINOR__));
|
return QString("GLIBC_%1.%2").arg(QString::number(__GLIBC__), QString::number(__GLIBC_MINOR__));
|
||||||
|
#else
|
||||||
|
return "unknown";
|
||||||
#endif
|
#endif
|
||||||
#elif _MSC_VER
|
#elif _MSC_VER
|
||||||
return QString("MSVC_%1").arg(_MSC_VER);
|
return QString("MSVC_%1").arg(_MSC_VER);
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ BoardConfigDialog::BoardConfigDialog(Board *b, QWidget *parent) :
|
|||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
ui->nameField->setText(b->getName());
|
ui->nameField->setText(b->getName());
|
||||||
ui->descriptionField->setPlainText(b->getDescription());
|
ui->descriptionField->setPlainText(b->getDescription());
|
||||||
|
ui->showStatusCheckbox->setChecked(b->isShowingStatus());
|
||||||
if (!b->isAutoStatus())
|
if (!b->isAutoStatus())
|
||||||
{
|
{
|
||||||
QVector<Status> statuses = TaskStateService::getInstance()->getStatuses();
|
QVector<Status> statuses = TaskStateService::getInstance()->getStatuses();
|
||||||
@@ -44,6 +45,11 @@ bool BoardConfigDialog::isAutoStatus()
|
|||||||
return ui->autoStatusCheckbox->isChecked();
|
return ui->autoStatusCheckbox->isChecked();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool BoardConfigDialog::isShowingStatus()
|
||||||
|
{
|
||||||
|
return ui->showStatusCheckbox->isChecked();
|
||||||
|
}
|
||||||
|
|
||||||
const QString BoardConfigDialog::getStatus()
|
const QString BoardConfigDialog::getStatus()
|
||||||
{
|
{
|
||||||
if (!ui->autoStatusCheckbox->isChecked())
|
if (!ui->autoStatusCheckbox->isChecked())
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ public:
|
|||||||
const QString getName();
|
const QString getName();
|
||||||
const QString getDescription();
|
const QString getDescription();
|
||||||
bool isAutoStatus();
|
bool isAutoStatus();
|
||||||
|
bool isShowingStatus();
|
||||||
const QString getStatus();
|
const QString getStatus();
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
|
|||||||
@@ -37,7 +37,14 @@
|
|||||||
<item>
|
<item>
|
||||||
<widget class="Line" name="line">
|
<widget class="Line" name="line">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Orientation::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="showStatusCheckbox">
|
||||||
|
<property name="text">
|
||||||
|
<string>Show the board status</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@@ -72,10 +79,10 @@
|
|||||||
<item>
|
<item>
|
||||||
<widget class="QDialogButtonBox" name="buttonBox">
|
<widget class="QDialogButtonBox" name="buttonBox">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Orientation::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="standardButtons">
|
<property name="standardButtons">
|
||||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
<set>QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok</set>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
#define STATUS_KEY "status"
|
#define STATUS_KEY "status"
|
||||||
#define BOARDS_KEY "boards"
|
#define BOARDS_KEY "boards"
|
||||||
#define FILTERS_KEY "filters"
|
#define FILTERS_KEY "filters"
|
||||||
|
#define DEFAULT_STATUS "default_status"
|
||||||
|
|
||||||
#include <QUuid>
|
#include <QUuid>
|
||||||
#include <QColor>
|
#include <QColor>
|
||||||
@@ -69,6 +70,7 @@ void MainWindow::openPreferences()
|
|||||||
{
|
{
|
||||||
TaskStateService::getInstance()->updatePriorities(dialog.getPriorities());
|
TaskStateService::getInstance()->updatePriorities(dialog.getPriorities());
|
||||||
TaskStateService::getInstance()->updateStatuses(dialog.getStatus());
|
TaskStateService::getInstance()->updateStatuses(dialog.getStatus());
|
||||||
|
TaskStateService::getInstance()->setDefaultStatus(dialog.getDefaultStatus());
|
||||||
save();
|
save();
|
||||||
redrawTaskTree();
|
redrawTaskTree();
|
||||||
}
|
}
|
||||||
@@ -355,6 +357,7 @@ void MainWindow::onEditNameBoardMenu()
|
|||||||
QString newDesc = dialog.getDescription();
|
QString newDesc = dialog.getDescription();
|
||||||
b->setName(newName);
|
b->setName(newName);
|
||||||
b->setDescription(newDesc);
|
b->setDescription(newDesc);
|
||||||
|
b->setShowingStatus(dialog.isShowingStatus());
|
||||||
if (!dialog.isAutoStatus())
|
if (!dialog.isAutoStatus())
|
||||||
{
|
{
|
||||||
std::optional<Status> status = TaskStateService::getInstance()->getStatusByUUID(dialog.getStatus());
|
std::optional<Status> status = TaskStateService::getInstance()->getStatusByUUID(dialog.getStatus());
|
||||||
@@ -485,6 +488,14 @@ void MainWindow::init()
|
|||||||
}
|
}
|
||||||
TaskStateService::getInstance()->updatePriorities(priorities);
|
TaskStateService::getInstance()->updatePriorities(priorities);
|
||||||
TaskStateService::getInstance()->updateStatuses(statuses);
|
TaskStateService::getInstance()->updateStatuses(statuses);
|
||||||
|
QString defaultStatusUUID = save[DEFAULT_STATUS].toString("");
|
||||||
|
for (Status s : TaskStateService::getInstance()->getStatuses())
|
||||||
|
{
|
||||||
|
if (s.getUUID() == defaultStatusUUID)
|
||||||
|
{
|
||||||
|
TaskStateService::getInstance()->setDefaultStatus(s);
|
||||||
|
}
|
||||||
|
}
|
||||||
redrawFilterList();
|
redrawFilterList();
|
||||||
redrawBoardList();
|
redrawBoardList();
|
||||||
return;
|
return;
|
||||||
@@ -570,6 +581,7 @@ const QJsonDocument MainWindow::getJsonSave()
|
|||||||
obj[STATUS_KEY] = jsonStatus;
|
obj[STATUS_KEY] = jsonStatus;
|
||||||
obj[BOARDS_KEY] = jsonBoards;
|
obj[BOARDS_KEY] = jsonBoards;
|
||||||
obj[FILTERS_KEY] = jsonFilters;
|
obj[FILTERS_KEY] = jsonFilters;
|
||||||
|
obj[DEFAULT_STATUS] = TaskStateService::getInstance()->getDefaultStatus().getUUID();
|
||||||
doc.setObject(obj);
|
doc.setObject(obj);
|
||||||
return doc;
|
return doc;
|
||||||
}
|
}
|
||||||
@@ -694,7 +706,7 @@ void MainWindow::redrawTaskTree()
|
|||||||
{
|
{
|
||||||
delete l->takeTopLevelItem(i);
|
delete l->takeTopLevelItem(i);
|
||||||
}
|
}
|
||||||
if (selectedBoardIndex > -1)
|
if (selectedBoardIndex > -1 && selectedBoardIndex < boards.count())
|
||||||
{
|
{
|
||||||
Board *b = boards[selectedBoardIndex];
|
Board *b = boards[selectedBoardIndex];
|
||||||
std::optional<Status> boardStatus = TaskStateService::getInstance()->getStatusByUUID(b->getStatus());
|
std::optional<Status> boardStatus = TaskStateService::getInstance()->getStatusByUUID(b->getStatus());
|
||||||
@@ -711,7 +723,7 @@ void MainWindow::redrawTaskTree()
|
|||||||
ui->taskList->addTopLevelItem(item);
|
ui->taskList->addTopLevelItem(item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (selectedFilterIndex > -1)
|
else if (selectedFilterIndex > -1 && selectedFilterIndex < filters.count())
|
||||||
{
|
{
|
||||||
Filter f = filters[selectedFilterIndex];
|
Filter f = filters[selectedFilterIndex];
|
||||||
filterResult = f.filter(boards);
|
filterResult = f.filter(boards);
|
||||||
@@ -731,6 +743,8 @@ void MainWindow::redrawBoardStatus()
|
|||||||
if (selectedBoardIndex > -1)
|
if (selectedBoardIndex > -1)
|
||||||
{
|
{
|
||||||
Board *b = boards[selectedBoardIndex];
|
Board *b = boards[selectedBoardIndex];
|
||||||
|
if (b->isShowingStatus())
|
||||||
|
{
|
||||||
std::optional<Status> boardStatus = TaskStateService::getInstance()->getStatusByUUID(b->getStatus());
|
std::optional<Status> boardStatus = TaskStateService::getInstance()->getStatusByUUID(b->getStatus());
|
||||||
if (boardStatus.has_value())
|
if (boardStatus.has_value())
|
||||||
{
|
{
|
||||||
@@ -740,6 +754,7 @@ void MainWindow::redrawBoardStatus()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void MainWindow::save()
|
void MainWindow::save()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -48,6 +48,8 @@ private:
|
|||||||
|
|
||||||
void init();
|
void init();
|
||||||
|
|
||||||
|
// properties
|
||||||
|
|
||||||
int16_t selectedBoardIndex;
|
int16_t selectedBoardIndex;
|
||||||
int16_t selectedFilterIndex;
|
int16_t selectedFilterIndex;
|
||||||
|
|
||||||
@@ -60,6 +62,8 @@ private:
|
|||||||
QVector<Board*> boards;
|
QVector<Board*> boards;
|
||||||
QVector<Filter> filters;
|
QVector<Filter> filters;
|
||||||
|
|
||||||
|
// functions
|
||||||
|
|
||||||
QVector<Priority> defaultPriorities();
|
QVector<Priority> defaultPriorities();
|
||||||
QVector<Status> defaultStatus();
|
QVector<Status> defaultStatus();
|
||||||
QVector<Filter> defaultFilters();
|
QVector<Filter> defaultFilters();
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ PrefDialog::PrefDialog(QWidget *parent) :
|
|||||||
statusUUIDRef.append(s.getUUID());
|
statusUUIDRef.append(s.getUUID());
|
||||||
setItemColor(item, s.getColor());
|
setItemColor(item, s.getColor());
|
||||||
ui->statusListWidget->addItem(item);
|
ui->statusListWidget->addItem(item);
|
||||||
|
ui->defaultStatusCombobox->addItem(s.getName(), s.getUUID());
|
||||||
}
|
}
|
||||||
|
|
||||||
QVector<Priority> priorities = TaskStateService::getInstance()->getPriorities();
|
QVector<Priority> priorities = TaskStateService::getInstance()->getPriorities();
|
||||||
@@ -31,6 +32,8 @@ PrefDialog::PrefDialog(QWidget *parent) :
|
|||||||
ui->priorityListWidget->addItem(item);
|
ui->priorityListWidget->addItem(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ui->defaultStatusCombobox->setCurrentText(TaskStateService::getInstance()->getDefaultStatus().getName());
|
||||||
|
|
||||||
connect(ui->addStatusButton, &QPushButton::clicked, this, &PrefDialog::onAddStatusButtonClick);
|
connect(ui->addStatusButton, &QPushButton::clicked, this, &PrefDialog::onAddStatusButtonClick);
|
||||||
connect(ui->addPriorityButton, &QPushButton::clicked, this, &PrefDialog::onAddPriorityButtonClick);
|
connect(ui->addPriorityButton, &QPushButton::clicked, this, &PrefDialog::onAddPriorityButtonClick);
|
||||||
connect(ui->statusListWidget, &QListWidget::currentRowChanged, this, &PrefDialog::onItemSelectionChange);
|
connect(ui->statusListWidget, &QListWidget::currentRowChanged, this, &PrefDialog::onItemSelectionChange);
|
||||||
@@ -80,6 +83,24 @@ QVector<Status> PrefDialog::getStatus()
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Status PrefDialog::getDefaultStatus()
|
||||||
|
{
|
||||||
|
QVector<Status> 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()
|
void PrefDialog::onAddStatusButtonClick()
|
||||||
{
|
{
|
||||||
QColor bgColor = Tools::getRandomColor();
|
QColor bgColor = Tools::getRandomColor();
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ public:
|
|||||||
|
|
||||||
QVector<Priority> getPriorities();
|
QVector<Priority> getPriorities();
|
||||||
QVector<Status> getStatus();
|
QVector<Status> getStatus();
|
||||||
|
Status getDefaultStatus();
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void onAddStatusButtonClick();
|
void onAddStatusButtonClick();
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<class>PrefDialog</class>
|
<class>PrefDialog</class>
|
||||||
<widget class="QDialog" name="PrefDialog">
|
<widget class="QDialog" name="PrefDialog">
|
||||||
<property name="windowModality">
|
<property name="windowModality">
|
||||||
<enum>Qt::ApplicationModal</enum>
|
<enum>Qt::WindowModality::ApplicationModal</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
@@ -41,10 +41,10 @@
|
|||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Orientation::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="standardButtons">
|
<property name="standardButtons">
|
||||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
<set>QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok</set>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QTabWidget" name="tabWidget">
|
<widget class="QTabWidget" name="tabWidget">
|
||||||
@@ -66,10 +66,10 @@
|
|||||||
<widget class="QListWidget" name="statusListWidget">
|
<widget class="QListWidget" name="statusListWidget">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>10</x>
|
<x>40</x>
|
||||||
<y>10</y>
|
<y>64</y>
|
||||||
<width>601</width>
|
<width>571</width>
|
||||||
<height>291</height>
|
<height>161</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
@@ -80,7 +80,7 @@
|
|||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>90</x>
|
<x>90</x>
|
||||||
<y>350</y>
|
<y>290</y>
|
||||||
<width>521</width>
|
<width>521</width>
|
||||||
<height>21</height>
|
<height>21</height>
|
||||||
</rect>
|
</rect>
|
||||||
@@ -90,7 +90,7 @@
|
|||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>10</x>
|
<x>10</x>
|
||||||
<y>352</y>
|
<y>292</y>
|
||||||
<width>58</width>
|
<width>58</width>
|
||||||
<height>16</height>
|
<height>16</height>
|
||||||
</rect>
|
</rect>
|
||||||
@@ -103,7 +103,7 @@
|
|||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>10</x>
|
<x>10</x>
|
||||||
<y>390</y>
|
<y>330</y>
|
||||||
<width>58</width>
|
<width>58</width>
|
||||||
<height>16</height>
|
<height>16</height>
|
||||||
</rect>
|
</rect>
|
||||||
@@ -119,7 +119,7 @@
|
|||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>90</x>
|
<x>90</x>
|
||||||
<y>390</y>
|
<y>330</y>
|
||||||
<width>113</width>
|
<width>113</width>
|
||||||
<height>21</height>
|
<height>21</height>
|
||||||
</rect>
|
</rect>
|
||||||
@@ -135,7 +135,7 @@
|
|||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>210</x>
|
<x>210</x>
|
||||||
<y>390</y>
|
<y>330</y>
|
||||||
<width>26</width>
|
<width>26</width>
|
||||||
<height>22</height>
|
<height>22</height>
|
||||||
</rect>
|
</rect>
|
||||||
@@ -148,9 +148,9 @@
|
|||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>570</x>
|
<x>570</x>
|
||||||
<y>310</y>
|
<y>240</y>
|
||||||
<width>41</width>
|
<width>41</width>
|
||||||
<height>21</height>
|
<height>31</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
@@ -164,9 +164,9 @@
|
|||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>520</x>
|
<x>520</x>
|
||||||
<y>310</y>
|
<y>240</y>
|
||||||
<width>41</width>
|
<width>41</width>
|
||||||
<height>21</height>
|
<height>31</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
@@ -179,10 +179,10 @@
|
|||||||
</property>
|
</property>
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>20</x>
|
<x>10</x>
|
||||||
<y>310</y>
|
<y>240</y>
|
||||||
<width>41</width>
|
<width>51</width>
|
||||||
<height>21</height>
|
<height>31</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
@@ -196,15 +196,115 @@
|
|||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>70</x>
|
<x>70</x>
|
||||||
<y>310</y>
|
<y>240</y>
|
||||||
<width>41</width>
|
<width>51</width>
|
||||||
<height>21</height>
|
<height>31</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Up</string>
|
<string>Up</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
|
<widget class="QLabel" name="label_5">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>11</x>
|
||||||
|
<y>4</y>
|
||||||
|
<width>601</width>
|
||||||
|
<height>41</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string><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></string>
|
||||||
|
</property>
|
||||||
|
<property name="scaledContents">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="Line" name="line">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>10</x>
|
||||||
|
<y>79</y>
|
||||||
|
<width>20</width>
|
||||||
|
<height>121</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Orientation::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QLabel" name="label_6">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>60</y>
|
||||||
|
<width>41</width>
|
||||||
|
<height>16</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Low</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignmentFlag::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QLabel" name="label_7">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>204</y>
|
||||||
|
<width>41</width>
|
||||||
|
<height>16</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>High</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignmentFlag::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="Line" name="line_2">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>20</x>
|
||||||
|
<y>360</y>
|
||||||
|
<width>591</width>
|
||||||
|
<height>16</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Orientation::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QLabel" name="label_8">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>10</x>
|
||||||
|
<y>390</y>
|
||||||
|
<width>141</width>
|
||||||
|
<height>18</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Default (for new task)</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QComboBox" name="defaultStatusCombobox">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>440</x>
|
||||||
|
<y>384</y>
|
||||||
|
<width>171</width>
|
||||||
|
<height>26</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QWidget" name="tab_2">
|
<widget class="QWidget" name="tab_2">
|
||||||
<attribute name="title">
|
<attribute name="title">
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ TaskDialog::TaskDialog(QWidget *parent) :
|
|||||||
QDate expectedFor = QDate::currentDate();
|
QDate expectedFor = QDate::currentDate();
|
||||||
expectedFor = expectedFor.addDays(10);
|
expectedFor = expectedFor.addDays(10);
|
||||||
ui->expectedForEdit->setDate(expectedFor);
|
ui->expectedForEdit->setDate(expectedFor);
|
||||||
|
ui->statusCombo->setCurrentText(TaskStateService::getInstance()->getDefaultStatus().getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
TaskDialog::TaskDialog(Task *t, QWidget *parent) :
|
TaskDialog::TaskDialog(Task *t, QWidget *parent) :
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
#define DESCRIPTION_KEY "description"
|
#define DESCRIPTION_KEY "description"
|
||||||
#define AUTOSTATUS_KEY "auto_status"
|
#define AUTOSTATUS_KEY "auto_status"
|
||||||
#define STATUS_KEY "status"
|
#define STATUS_KEY "status"
|
||||||
|
#define SHOW_STATUS_KEY "show_status"
|
||||||
|
|
||||||
#include <QJsonArray>
|
#include <QJsonArray>
|
||||||
#include <QJsonValue>
|
#include <QJsonValue>
|
||||||
@@ -29,6 +30,7 @@ Board::Board(QJsonObject obj)
|
|||||||
this->description = obj[DESCRIPTION_KEY].toString("");
|
this->description = obj[DESCRIPTION_KEY].toString("");
|
||||||
this->autoStatus = obj[AUTOSTATUS_KEY].toBool(true);
|
this->autoStatus = obj[AUTOSTATUS_KEY].toBool(true);
|
||||||
this->statusUUID = obj[STATUS_KEY].toString();
|
this->statusUUID = obj[STATUS_KEY].toString();
|
||||||
|
this->showStatus = obj[SHOW_STATUS_KEY].toBool(!this->autoStatus);
|
||||||
QJsonArray jsonTasks = obj[TASKS_KEY].toArray();
|
QJsonArray jsonTasks = obj[TASKS_KEY].toArray();
|
||||||
foreach (QJsonValue value, jsonTasks) {
|
foreach (QJsonValue value, jsonTasks) {
|
||||||
Task *t = new Task(value.toObject());
|
Task *t = new Task(value.toObject());
|
||||||
@@ -81,6 +83,11 @@ const QString Board::getStatus()
|
|||||||
return statusUUID;
|
return statusUUID;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Board::isShowingStatus()
|
||||||
|
{
|
||||||
|
return showStatus;
|
||||||
|
}
|
||||||
|
|
||||||
bool Board::isAutoStatus()
|
bool Board::isAutoStatus()
|
||||||
{
|
{
|
||||||
return autoStatus;
|
return autoStatus;
|
||||||
@@ -102,6 +109,11 @@ void Board::setDirtyStatus(Status s)
|
|||||||
this->statusUUID = s.getUUID();
|
this->statusUUID = s.getUUID();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Board::setShowingStatus(bool v)
|
||||||
|
{
|
||||||
|
this->showStatus = v;
|
||||||
|
}
|
||||||
|
|
||||||
void Board::removeDirtyStatus()
|
void Board::removeDirtyStatus()
|
||||||
{
|
{
|
||||||
this->autoStatus = true;
|
this->autoStatus = true;
|
||||||
@@ -148,6 +160,7 @@ const QJsonObject Board::toJson()
|
|||||||
obj[AUTOSTATUS_KEY] = this->autoStatus;
|
obj[AUTOSTATUS_KEY] = this->autoStatus;
|
||||||
obj[TASKS_KEY] = array;
|
obj[TASKS_KEY] = array;
|
||||||
obj[DESCRIPTION_KEY] = description;
|
obj[DESCRIPTION_KEY] = description;
|
||||||
|
obj[SHOW_STATUS_KEY] = this->showStatus;
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -19,11 +19,13 @@ public:
|
|||||||
const QString getName();
|
const QString getName();
|
||||||
const QString getDescription();
|
const QString getDescription();
|
||||||
const QString getStatus();
|
const QString getStatus();
|
||||||
|
bool isShowingStatus();
|
||||||
bool isAutoStatus();
|
bool isAutoStatus();
|
||||||
|
|
||||||
void setName(const QString name);
|
void setName(const QString name);
|
||||||
void setDescription(const QString description);
|
void setDescription(const QString description);
|
||||||
void setDirtyStatus(Status s);
|
void setDirtyStatus(Status s);
|
||||||
|
void setShowingStatus(bool);
|
||||||
void removeDirtyStatus();
|
void removeDirtyStatus();
|
||||||
|
|
||||||
void add(Task);
|
void add(Task);
|
||||||
@@ -42,6 +44,7 @@ private:
|
|||||||
|
|
||||||
QString statusUUID;
|
QString statusUUID;
|
||||||
bool autoStatus;
|
bool autoStatus;
|
||||||
|
bool showStatus;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -21,6 +21,11 @@ void TaskStateService::updatePriorities(QVector<Priority> priorities)
|
|||||||
this->priorities = priorities;
|
this->priorities = priorities;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TaskStateService::setDefaultStatus(Status s)
|
||||||
|
{
|
||||||
|
this->defaultStatus = s;
|
||||||
|
}
|
||||||
|
|
||||||
QVector<Status> TaskStateService::getStatuses()
|
QVector<Status> TaskStateService::getStatuses()
|
||||||
{
|
{
|
||||||
return statuses;
|
return statuses;
|
||||||
@@ -31,6 +36,11 @@ QVector<Priority> TaskStateService::getPriorities()
|
|||||||
return priorities;
|
return priorities;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Status TaskStateService::getDefaultStatus()
|
||||||
|
{
|
||||||
|
return this->defaultStatus;
|
||||||
|
}
|
||||||
|
|
||||||
std::optional<Status> TaskStateService::getStatusByUUID(QString uuid)
|
std::optional<Status> TaskStateService::getStatusByUUID(QString uuid)
|
||||||
{
|
{
|
||||||
foreach (Status s, statuses) {
|
foreach (Status s, statuses) {
|
||||||
@@ -74,7 +84,9 @@ TaskStateService::TaskStateService()
|
|||||||
priorities.append(Priority(QUuid::createUuid().toString(QUuid::WithoutBraces), "Medium", QColor(176, 142, 48)));
|
priorities.append(Priority(QUuid::createUuid().toString(QUuid::WithoutBraces), "Medium", QColor(176, 142, 48)));
|
||||||
priorities.append(Priority(QUuid::createUuid().toString(QUuid::WithoutBraces), "High", QColor(176, 67, 48)));
|
priorities.append(Priority(QUuid::createUuid().toString(QUuid::WithoutBraces), "High", QColor(176, 67, 48)));
|
||||||
|
|
||||||
statuses.append(Status(QUuid::createUuid().toString(QUuid::WithoutBraces), "To Do", QColor(143, 143, 143)));
|
Status defaultStatus = Status(QUuid::createUuid().toString(QUuid::WithoutBraces), "To Do", QColor(143, 143, 143));
|
||||||
statuses.append(Status(QUuid::createUuid().toString(QUuid::WithoutBraces), "Working on", QColor(95, 48, 176)));
|
|
||||||
statuses.append(Status(QUuid::createUuid().toString(QUuid::WithoutBraces), "Completed", QColor(48, 176, 73)));
|
statuses.append(Status(QUuid::createUuid().toString(QUuid::WithoutBraces), "Completed", QColor(48, 176, 73)));
|
||||||
|
statuses.append(defaultStatus);
|
||||||
|
statuses.append(Status(QUuid::createUuid().toString(QUuid::WithoutBraces), "Working on", QColor(95, 48, 176)));
|
||||||
|
this->defaultStatus = defaultStatus;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,9 +13,11 @@ public:
|
|||||||
|
|
||||||
void updateStatuses(QVector<Status>);
|
void updateStatuses(QVector<Status>);
|
||||||
void updatePriorities(QVector<Priority>);
|
void updatePriorities(QVector<Priority>);
|
||||||
|
void setDefaultStatus(Status s);
|
||||||
|
|
||||||
QVector<Status> getStatuses();
|
QVector<Status> getStatuses();
|
||||||
QVector<Priority> getPriorities();
|
QVector<Priority> getPriorities();
|
||||||
|
Status getDefaultStatus();
|
||||||
|
|
||||||
std::optional<Status> getStatusByUUID(QString);
|
std::optional<Status> getStatusByUUID(QString);
|
||||||
std::optional<Priority> getPriorityByUUID(QString);
|
std::optional<Priority> getPriorityByUUID(QString);
|
||||||
@@ -26,6 +28,8 @@ private:
|
|||||||
TaskStateService();
|
TaskStateService();
|
||||||
static TaskStateService *instance;
|
static TaskStateService *instance;
|
||||||
|
|
||||||
|
Status defaultStatus = Status("", "", QColor::fromRgb(0,0,0));
|
||||||
|
|
||||||
QVector<Priority> priorities;
|
QVector<Priority> priorities;
|
||||||
QVector<Status> statuses;
|
QVector<Status> statuses;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user