Compare commits
1 Commits
v0.3.1-bet
...
0.3.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
69f4ec570a |
@@ -77,10 +77,12 @@ SOURCES += \
|
||||
src/frames/namedialog.cpp \
|
||||
src/frames/prefdialog.cpp \
|
||||
src/models/filter.cpp \
|
||||
src/models/generalpreferences.cpp \
|
||||
src/models/priority.cpp \
|
||||
src/models/status.cpp \
|
||||
src/models/task.cpp \
|
||||
src/frames/taskdialog.cpp \
|
||||
src/services/configservice.cpp \
|
||||
src/services/taskstateservice.cpp \
|
||||
src/tools.cpp
|
||||
|
||||
@@ -93,10 +95,12 @@ HEADERS += \
|
||||
src/frames/namedialog.h \
|
||||
src/frames/prefdialog.h \
|
||||
src/models/filter.h \
|
||||
src/models/generalpreferences.h \
|
||||
src/models/priority.h \
|
||||
src/models/status.h \
|
||||
src/models/task.h \
|
||||
src/frames/taskdialog.h \
|
||||
src/services/configservice.h \
|
||||
src/services/taskstateservice.h \
|
||||
src/tools.h
|
||||
|
||||
|
||||
@@ -28,10 +28,8 @@ QString AboutDialog::getCompilerInfo()
|
||||
#elif __GNUC__
|
||||
#ifdef __MINGW32__
|
||||
return QString("MinGW_%1.%2").arg(QString::number(__MINGW32_MAJOR_VERSION), QString::number(__MINGW32_MINOR_VERSION));
|
||||
#elif __linux__
|
||||
return QString("GLIBC_%1.%2").arg(QString::number(__GLIBC__), QString::number(__GLIBC_MINOR__));
|
||||
#else
|
||||
return "unknown";
|
||||
return QString("GLIBC_%1.%2").arg(QString::number(__GLIBC__), QString::number(__GLIBC_MINOR__));
|
||||
#endif
|
||||
#elif _MSC_VER
|
||||
return QString("MSVC_%1").arg(_MSC_VER);
|
||||
|
||||
@@ -11,18 +11,17 @@ 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())
|
||||
ui->boardStatusModeComboBox->setCurrentIndex(b->getStatusMode());
|
||||
if (b->getStatusMode() == CUSTOM_STATUS_MODE)
|
||||
{
|
||||
QVector<Status> statuses = TaskStateService::getInstance()->getStatuses();
|
||||
foreach (Status s, statuses)
|
||||
{
|
||||
ui->statusCombobox->addItem(s.getName(), s.getUUID());
|
||||
}
|
||||
ui->autoStatusCheckbox->setChecked(false);
|
||||
ui->statusCombobox->setEnabled(true);
|
||||
}
|
||||
connect(ui->autoStatusCheckbox, &QCheckBox::stateChanged, this, &BoardConfigDialog::onAutoStatusCheckboxChange);
|
||||
connect(ui->boardStatusModeComboBox, &QComboBox::currentIndexChanged, this, &BoardConfigDialog::onAutoStatusCheckboxChange);
|
||||
}
|
||||
|
||||
BoardConfigDialog::~BoardConfigDialog()
|
||||
@@ -40,19 +39,14 @@ const QString BoardConfigDialog::getDescription()
|
||||
return ui->descriptionField->toPlainText();
|
||||
}
|
||||
|
||||
bool BoardConfigDialog::isAutoStatus()
|
||||
uint8_t BoardConfigDialog::getBoardStatusMode()
|
||||
{
|
||||
return ui->autoStatusCheckbox->isChecked();
|
||||
}
|
||||
|
||||
bool BoardConfigDialog::isShowingStatus()
|
||||
{
|
||||
return ui->showStatusCheckbox->isChecked();
|
||||
return ui->boardStatusModeComboBox->currentIndex();
|
||||
}
|
||||
|
||||
const QString BoardConfigDialog::getStatus()
|
||||
{
|
||||
if (!ui->autoStatusCheckbox->isChecked())
|
||||
if (ui->boardStatusModeComboBox->currentIndex() == CUSTOM_STATUS_MODE)
|
||||
{
|
||||
if (!ui->statusCombobox->currentData().isNull())
|
||||
{
|
||||
@@ -62,9 +56,9 @@ const QString BoardConfigDialog::getStatus()
|
||||
return "";
|
||||
}
|
||||
|
||||
void BoardConfigDialog::onAutoStatusCheckboxChange(int state)
|
||||
void BoardConfigDialog::onAutoStatusCheckboxChange(int status)
|
||||
{
|
||||
if (state == Qt::CheckState::Unchecked)
|
||||
if (status == CUSTOM_STATUS_MODE)
|
||||
{
|
||||
QVector<Status> statuses = TaskStateService::getInstance()->getStatuses();
|
||||
foreach (Status s, statuses)
|
||||
|
||||
@@ -19,8 +19,7 @@ public:
|
||||
|
||||
const QString getName();
|
||||
const QString getDescription();
|
||||
bool isAutoStatus();
|
||||
bool isShowingStatus();
|
||||
uint8_t getBoardStatusMode();
|
||||
const QString getStatus();
|
||||
|
||||
private slots:
|
||||
|
||||
@@ -37,29 +37,42 @@
|
||||
<item>
|
||||
<widget class="Line" name="line">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Orientation::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="showStatusCheckbox">
|
||||
<property name="text">
|
||||
<string>Show the board status</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="autoStatusCheckbox">
|
||||
<property name="text">
|
||||
<string>Auto determine status</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="text">
|
||||
<string>Board status mode</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QComboBox" name="boardStatusModeComboBox">
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Auto</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Manual</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>None</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="statusContainer">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
@@ -79,10 +92,10 @@
|
||||
<item>
|
||||
<widget class="QDialogButtonBox" name="buttonBox">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Orientation::Horizontal</enum>
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok</set>
|
||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
#define STATUS_KEY "status"
|
||||
#define BOARDS_KEY "boards"
|
||||
#define FILTERS_KEY "filters"
|
||||
#define DEFAULT_STATUS "default_status"
|
||||
|
||||
#include <QUuid>
|
||||
#include <QColor>
|
||||
@@ -70,7 +69,6 @@ void MainWindow::openPreferences()
|
||||
{
|
||||
TaskStateService::getInstance()->updatePriorities(dialog.getPriorities());
|
||||
TaskStateService::getInstance()->updateStatuses(dialog.getStatus());
|
||||
TaskStateService::getInstance()->setDefaultStatus(dialog.getDefaultStatus());
|
||||
save();
|
||||
redrawTaskTree();
|
||||
}
|
||||
@@ -357,23 +355,12 @@ void MainWindow::onEditNameBoardMenu()
|
||||
QString newDesc = dialog.getDescription();
|
||||
b->setName(newName);
|
||||
b->setDescription(newDesc);
|
||||
b->setShowingStatus(dialog.isShowingStatus());
|
||||
if (!dialog.isAutoStatus())
|
||||
{
|
||||
std::optional<Status> status = TaskStateService::getInstance()->getStatusByUUID(dialog.getStatus());
|
||||
if (status.has_value())
|
||||
{
|
||||
b->setDirtyStatus(status.value());
|
||||
}
|
||||
else
|
||||
{
|
||||
b->removeDirtyStatus();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
b->removeDirtyStatus();
|
||||
b->setStatus(status.value());
|
||||
}
|
||||
b->setStatusMode(dialog.getBoardStatusMode());
|
||||
QListWidgetItem *item = ui->boardList->item(i);
|
||||
item->setText(newName);
|
||||
item->setToolTip(newDesc);
|
||||
@@ -488,14 +475,6 @@ void MainWindow::init()
|
||||
}
|
||||
TaskStateService::getInstance()->updatePriorities(priorities);
|
||||
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();
|
||||
redrawBoardList();
|
||||
return;
|
||||
@@ -581,7 +560,6 @@ const QJsonDocument MainWindow::getJsonSave()
|
||||
obj[STATUS_KEY] = jsonStatus;
|
||||
obj[BOARDS_KEY] = jsonBoards;
|
||||
obj[FILTERS_KEY] = jsonFilters;
|
||||
obj[DEFAULT_STATUS] = TaskStateService::getInstance()->getDefaultStatus().getUUID();
|
||||
doc.setObject(obj);
|
||||
return doc;
|
||||
}
|
||||
@@ -702,10 +680,6 @@ void MainWindow::redrawTaskTree()
|
||||
{
|
||||
QTreeWidget *l = ui->taskList;
|
||||
uint16_t itemCount = l->topLevelItemCount();
|
||||
if (itemCount == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
for (int16_t i = itemCount; i >= 0; i--)
|
||||
{
|
||||
delete l->takeTopLevelItem(i);
|
||||
@@ -747,8 +721,6 @@ void MainWindow::redrawBoardStatus()
|
||||
if (selectedBoardIndex > -1)
|
||||
{
|
||||
Board *b = boards[selectedBoardIndex];
|
||||
if (b->isShowingStatus())
|
||||
{
|
||||
std::optional<Status> boardStatus = TaskStateService::getInstance()->getStatusByUUID(b->getStatus());
|
||||
if (boardStatus.has_value())
|
||||
{
|
||||
@@ -758,7 +730,6 @@ void MainWindow::redrawBoardStatus()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::save()
|
||||
{
|
||||
|
||||
@@ -48,8 +48,6 @@ private:
|
||||
|
||||
void init();
|
||||
|
||||
// properties
|
||||
|
||||
int16_t selectedBoardIndex;
|
||||
int16_t selectedFilterIndex;
|
||||
|
||||
@@ -62,8 +60,6 @@ private:
|
||||
QVector<Board*> boards;
|
||||
QVector<Filter> filters;
|
||||
|
||||
// functions
|
||||
|
||||
QVector<Priority> defaultPriorities();
|
||||
QVector<Status> defaultStatus();
|
||||
QVector<Filter> defaultFilters();
|
||||
|
||||
@@ -20,7 +20,6 @@ PrefDialog::PrefDialog(QWidget *parent) :
|
||||
statusUUIDRef.append(s.getUUID());
|
||||
setItemColor(item, s.getColor());
|
||||
ui->statusListWidget->addItem(item);
|
||||
ui->defaultStatusCombobox->addItem(s.getName(), s.getUUID());
|
||||
}
|
||||
|
||||
QVector<Priority> priorities = TaskStateService::getInstance()->getPriorities();
|
||||
@@ -32,8 +31,6 @@ 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);
|
||||
@@ -83,24 +80,6 @@ QVector<Status> PrefDialog::getStatus()
|
||||
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()
|
||||
{
|
||||
QColor bgColor = Tools::getRandomColor();
|
||||
|
||||
@@ -22,7 +22,6 @@ public:
|
||||
|
||||
QVector<Priority> getPriorities();
|
||||
QVector<Status> getStatus();
|
||||
Status getDefaultStatus();
|
||||
|
||||
private slots:
|
||||
void onAddStatusButtonClick();
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<class>PrefDialog</class>
|
||||
<widget class="QDialog" name="PrefDialog">
|
||||
<property name="windowModality">
|
||||
<enum>Qt::WindowModality::ApplicationModal</enum>
|
||||
<enum>Qt::ApplicationModal</enum>
|
||||
</property>
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
@@ -41,10 +41,10 @@
|
||||
</rect>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Orientation::Horizontal</enum>
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok</set>
|
||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QTabWidget" name="tabWidget">
|
||||
@@ -59,6 +59,52 @@
|
||||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="tab_3">
|
||||
<attribute name="title">
|
||||
<string>General</string>
|
||||
</attribute>
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>10</y>
|
||||
<width>161</width>
|
||||
<height>18</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>At startup</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_6">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>40</y>
|
||||
<width>81</width>
|
||||
<height>18</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Open...</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QComboBox" name="comboBox">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>100</x>
|
||||
<y>35</y>
|
||||
<width>521</width>
|
||||
<height>26</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tab">
|
||||
<attribute name="title">
|
||||
<string>Status</string>
|
||||
@@ -66,10 +112,10 @@
|
||||
<widget class="QListWidget" name="statusListWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>40</x>
|
||||
<y>64</y>
|
||||
<width>571</width>
|
||||
<height>161</height>
|
||||
<x>10</x>
|
||||
<y>10</y>
|
||||
<width>601</width>
|
||||
<height>291</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
@@ -80,7 +126,7 @@
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>90</x>
|
||||
<y>290</y>
|
||||
<y>350</y>
|
||||
<width>521</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
@@ -90,7 +136,7 @@
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>292</y>
|
||||
<y>352</y>
|
||||
<width>58</width>
|
||||
<height>16</height>
|
||||
</rect>
|
||||
@@ -103,7 +149,7 @@
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>330</y>
|
||||
<y>390</y>
|
||||
<width>58</width>
|
||||
<height>16</height>
|
||||
</rect>
|
||||
@@ -119,7 +165,7 @@
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>90</x>
|
||||
<y>330</y>
|
||||
<y>390</y>
|
||||
<width>113</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
@@ -135,7 +181,7 @@
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>210</x>
|
||||
<y>330</y>
|
||||
<y>390</y>
|
||||
<width>26</width>
|
||||
<height>22</height>
|
||||
</rect>
|
||||
@@ -148,9 +194,9 @@
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>570</x>
|
||||
<y>240</y>
|
||||
<y>310</y>
|
||||
<width>41</width>
|
||||
<height>31</height>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
@@ -164,9 +210,9 @@
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>520</x>
|
||||
<y>240</y>
|
||||
<y>310</y>
|
||||
<width>41</width>
|
||||
<height>31</height>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
@@ -179,10 +225,10 @@
|
||||
</property>
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>240</y>
|
||||
<width>51</width>
|
||||
<height>31</height>
|
||||
<x>20</x>
|
||||
<y>310</y>
|
||||
<width>41</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
@@ -196,115 +242,15 @@
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>70</x>
|
||||
<y>240</y>
|
||||
<width>51</width>
|
||||
<height>31</height>
|
||||
<y>310</y>
|
||||
<width>41</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Up</string>
|
||||
</property>
|
||||
</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 class="QWidget" name="tab_2">
|
||||
<attribute name="title">
|
||||
|
||||
@@ -16,7 +16,6 @@ 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) :
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
#define UUID_KEY "uuid"
|
||||
#define DESCRIPTION_KEY "description"
|
||||
#define AUTOSTATUS_KEY "auto_status"
|
||||
#define STATUSMODE_KEY "status_mode"
|
||||
#define STATUS_KEY "status"
|
||||
#define SHOW_STATUS_KEY "show_status"
|
||||
|
||||
#include <QJsonArray>
|
||||
#include <QJsonValue>
|
||||
@@ -20,6 +20,7 @@ Board::Board(QString name, QString description)
|
||||
this->uuid = uuid.toString(QUuid::WithoutBraces);
|
||||
this->name = name;
|
||||
this->description = description;
|
||||
this->statusMode = NO_STATUS_MODE;
|
||||
}
|
||||
|
||||
Board::Board(QJsonObject obj)
|
||||
@@ -28,9 +29,20 @@ Board::Board(QJsonObject obj)
|
||||
this->uuid = obj[UUID_KEY].toString(uuid.toString(QUuid::WithoutBraces));
|
||||
this->name = obj[NAME_KEY].toString("!Missing name!");
|
||||
this->description = obj[DESCRIPTION_KEY].toString("");
|
||||
this->autoStatus = obj[AUTOSTATUS_KEY].toBool(true);
|
||||
if (obj.contains(AUTOSTATUS_KEY))
|
||||
{
|
||||
this->statusMode = obj[AUTOSTATUS_KEY].toBool(true) ? AUTO_STATUS_MODE : CUSTOM_STATUS_MODE;
|
||||
}
|
||||
else
|
||||
{
|
||||
int val = obj[STATUSMODE_KEY].toInt(NO_STATUS_MODE);
|
||||
if (val > std::numeric_limits<uint8_t>::max() || val < 0)
|
||||
{
|
||||
val = AUTO_STATUS_MODE;
|
||||
}
|
||||
this->statusMode = val;
|
||||
}
|
||||
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());
|
||||
@@ -64,7 +76,7 @@ const QString Board::getDescription()
|
||||
|
||||
const QString Board::getStatus()
|
||||
{
|
||||
if (autoStatus)
|
||||
if (statusMode == AUTO_STATUS_MODE)
|
||||
{
|
||||
TaskStateService *tss = TaskStateService::getInstance();
|
||||
int16_t h = -1;
|
||||
@@ -80,17 +92,16 @@ const QString Board::getStatus()
|
||||
}
|
||||
return suuid;
|
||||
}
|
||||
else if (statusMode == NO_STATUS_MODE)
|
||||
{
|
||||
return "";
|
||||
}
|
||||
return statusUUID;
|
||||
}
|
||||
|
||||
bool Board::isShowingStatus()
|
||||
uint8_t Board::getStatusMode()
|
||||
{
|
||||
return showStatus;
|
||||
}
|
||||
|
||||
bool Board::isAutoStatus()
|
||||
{
|
||||
return autoStatus;
|
||||
return statusMode;
|
||||
}
|
||||
|
||||
void Board::setName(const QString name)
|
||||
@@ -103,22 +114,21 @@ void Board::setDescription(const QString description)
|
||||
this->description = description;
|
||||
}
|
||||
|
||||
void Board::setDirtyStatus(Status s)
|
||||
void Board::setStatus(Status s)
|
||||
{
|
||||
this->autoStatus = false;
|
||||
this->statusMode = CUSTOM_STATUS_MODE;
|
||||
this->statusUUID = s.getUUID();
|
||||
}
|
||||
|
||||
void Board::setShowingStatus(bool v)
|
||||
{
|
||||
this->showStatus = v;
|
||||
}
|
||||
|
||||
void Board::removeDirtyStatus()
|
||||
void Board::setStatusMode(uint8_t mode)
|
||||
{
|
||||
this->statusMode = mode;
|
||||
if (mode != CUSTOM_STATUS_MODE)
|
||||
{
|
||||
this->autoStatus = true;
|
||||
this->statusUUID = "";
|
||||
}
|
||||
}
|
||||
|
||||
void Board::add(Task t)
|
||||
{
|
||||
@@ -157,10 +167,9 @@ const QJsonObject Board::toJson()
|
||||
obj[NAME_KEY] = this->name;
|
||||
obj[UUID_KEY] = this->uuid;
|
||||
obj[STATUS_KEY] = this->statusUUID;
|
||||
obj[AUTOSTATUS_KEY] = this->autoStatus;
|
||||
obj[STATUSMODE_KEY] = this->statusMode;
|
||||
obj[TASKS_KEY] = array;
|
||||
obj[DESCRIPTION_KEY] = description;
|
||||
obj[SHOW_STATUS_KEY] = this->showStatus;
|
||||
return obj;
|
||||
}
|
||||
|
||||
|
||||
@@ -8,6 +8,10 @@
|
||||
#include "task.h"
|
||||
#include "status.h"
|
||||
|
||||
#define AUTO_STATUS_MODE 0
|
||||
#define CUSTOM_STATUS_MODE 1
|
||||
#define NO_STATUS_MODE 2
|
||||
|
||||
class Board
|
||||
{
|
||||
public:
|
||||
@@ -19,14 +23,12 @@ public:
|
||||
const QString getName();
|
||||
const QString getDescription();
|
||||
const QString getStatus();
|
||||
bool isShowingStatus();
|
||||
bool isAutoStatus();
|
||||
uint8_t getStatusMode();
|
||||
|
||||
void setName(const QString name);
|
||||
void setDescription(const QString description);
|
||||
void setDirtyStatus(Status s);
|
||||
void setShowingStatus(bool);
|
||||
void removeDirtyStatus();
|
||||
void setStatus(Status s);
|
||||
void setStatusMode(uint8_t mode);
|
||||
|
||||
void add(Task);
|
||||
void remove(uint16_t index);
|
||||
@@ -43,9 +45,7 @@ private:
|
||||
QString description;
|
||||
|
||||
QString statusUUID;
|
||||
bool autoStatus;
|
||||
bool showStatus;
|
||||
|
||||
uint8_t statusMode;
|
||||
};
|
||||
|
||||
#endif // BOARD_H
|
||||
|
||||
55
src/models/generalpreferences.cpp
Normal file
55
src/models/generalpreferences.cpp
Normal file
@@ -0,0 +1,55 @@
|
||||
#include "generalpreferences.h"
|
||||
|
||||
#define PRELOAD_TYPE_KEY "preload_type"
|
||||
#define PRELOAD_FACE_UUID_KEY "pr_face_uuid"
|
||||
|
||||
GeneralPreferences::GeneralPreferences()
|
||||
{
|
||||
this->preloadType = NO_PRELOAD_TYPE;
|
||||
this->preloadUUID = "";
|
||||
}
|
||||
|
||||
GeneralPreferences::GeneralPreferences(QJsonObject obj)
|
||||
{
|
||||
int val = obj[PRELOAD_TYPE_KEY].toInt(NO_PRELOAD_TYPE);
|
||||
if (val > std::numeric_limits<uint8_t>::max() || val < 0)
|
||||
{
|
||||
val = NO_PRELOAD_TYPE;
|
||||
}
|
||||
this->preloadType = val;
|
||||
this->preloadUUID = obj[PRELOAD_FACE_UUID_KEY].toString("");
|
||||
}
|
||||
|
||||
uint8_t GeneralPreferences::getPreloadType()
|
||||
{
|
||||
return this->preloadType;
|
||||
}
|
||||
|
||||
std::optional<QString> GeneralPreferences::getPreloadUUID()
|
||||
{
|
||||
if (this->preloadType == NO_PRELOAD_TYPE || this->preloadUUID.isEmpty())
|
||||
{
|
||||
return std::nullopt;
|
||||
}
|
||||
return std::optional<QString> {this->preloadUUID};
|
||||
}
|
||||
|
||||
void GeneralPreferences::setPreloadType(uint8_t type)
|
||||
{
|
||||
this->preloadType = type;
|
||||
}
|
||||
|
||||
void GeneralPreferences::setPreloadUUID(QString uuid)
|
||||
{
|
||||
this->preloadUUID = uuid;
|
||||
}
|
||||
|
||||
const QJsonObject GeneralPreferences::toJson()
|
||||
{
|
||||
QJsonObject obj;
|
||||
|
||||
obj[PRELOAD_TYPE_KEY] = this->preloadType;
|
||||
obj[PRELOAD_FACE_UUID_KEY] = this->preloadUUID;
|
||||
|
||||
return obj;
|
||||
}
|
||||
31
src/models/generalpreferences.h
Normal file
31
src/models/generalpreferences.h
Normal file
@@ -0,0 +1,31 @@
|
||||
#ifndef GENERALPREFERENCES_H
|
||||
#define GENERALPREFERENCES_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QString>
|
||||
#include <QJsonObject>
|
||||
|
||||
#define NO_PRELOAD_TYPE 0
|
||||
#define FILTER_PRELOAD_TYPE 1
|
||||
#define BOARD_PRELOAD_TYPE 2
|
||||
|
||||
class GeneralPreferences
|
||||
{
|
||||
public:
|
||||
GeneralPreferences();
|
||||
GeneralPreferences(QJsonObject);
|
||||
|
||||
uint8_t getPreloadType();
|
||||
std::optional<QString> getPreloadUUID();
|
||||
|
||||
void setPreloadType(uint8_t type);
|
||||
void setPreloadUUID(QString uuid);
|
||||
|
||||
const QJsonObject toJson();
|
||||
|
||||
private:
|
||||
uint8_t preloadType;
|
||||
QString preloadUUID;
|
||||
};
|
||||
|
||||
#endif // GENERALPREFERENCES_H
|
||||
33
src/services/configservice.cpp
Normal file
33
src/services/configservice.cpp
Normal file
@@ -0,0 +1,33 @@
|
||||
#include "configservice.h"
|
||||
|
||||
ConfigService *ConfigService::instance = nullptr;
|
||||
|
||||
ConfigService::~ConfigService()
|
||||
{
|
||||
delete data;
|
||||
}
|
||||
|
||||
ConfigService *ConfigService::getInstance()
|
||||
{
|
||||
if (instance == nullptr)
|
||||
{
|
||||
instance = new ConfigService();
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
|
||||
void ConfigService::loadConfig(GeneralPreferences data)
|
||||
{
|
||||
delete this->data;
|
||||
this->data = new GeneralPreferences(data);
|
||||
}
|
||||
|
||||
GeneralPreferences *ConfigService::getConfig()
|
||||
{
|
||||
return data;
|
||||
}
|
||||
|
||||
ConfigService::ConfigService()
|
||||
{
|
||||
data = new GeneralPreferences();
|
||||
}
|
||||
22
src/services/configservice.h
Normal file
22
src/services/configservice.h
Normal file
@@ -0,0 +1,22 @@
|
||||
#ifndef CONFIGSERVICE_H
|
||||
#define CONFIGSERVICE_H
|
||||
|
||||
#include "../models/generalpreferences.h"
|
||||
|
||||
class ConfigService
|
||||
{
|
||||
public:
|
||||
~ConfigService();
|
||||
static ConfigService *getInstance();
|
||||
|
||||
void loadConfig(GeneralPreferences);
|
||||
GeneralPreferences *getConfig();
|
||||
|
||||
private:
|
||||
static ConfigService *instance;
|
||||
ConfigService();
|
||||
|
||||
GeneralPreferences *data;
|
||||
};
|
||||
|
||||
#endif // CONFIGSERVICE_H
|
||||
@@ -21,11 +21,6 @@ void TaskStateService::updatePriorities(QVector<Priority> priorities)
|
||||
this->priorities = priorities;
|
||||
}
|
||||
|
||||
void TaskStateService::setDefaultStatus(Status s)
|
||||
{
|
||||
this->defaultStatus = s;
|
||||
}
|
||||
|
||||
QVector<Status> TaskStateService::getStatuses()
|
||||
{
|
||||
return statuses;
|
||||
@@ -36,11 +31,6 @@ QVector<Priority> TaskStateService::getPriorities()
|
||||
return priorities;
|
||||
}
|
||||
|
||||
Status TaskStateService::getDefaultStatus()
|
||||
{
|
||||
return this->defaultStatus;
|
||||
}
|
||||
|
||||
std::optional<Status> TaskStateService::getStatusByUUID(QString uuid)
|
||||
{
|
||||
foreach (Status s, statuses) {
|
||||
@@ -84,9 +74,7 @@ TaskStateService::TaskStateService()
|
||||
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)));
|
||||
|
||||
Status defaultStatus = Status(QUuid::createUuid().toString(QUuid::WithoutBraces), "To Do", QColor(143, 143, 143));
|
||||
statuses.append(Status(QUuid::createUuid().toString(QUuid::WithoutBraces), "Completed", QColor(48, 176, 73)));
|
||||
statuses.append(defaultStatus);
|
||||
statuses.append(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)));
|
||||
this->defaultStatus = defaultStatus;
|
||||
statuses.append(Status(QUuid::createUuid().toString(QUuid::WithoutBraces), "Completed", QColor(48, 176, 73)));
|
||||
}
|
||||
|
||||
@@ -13,11 +13,9 @@ public:
|
||||
|
||||
void updateStatuses(QVector<Status>);
|
||||
void updatePriorities(QVector<Priority>);
|
||||
void setDefaultStatus(Status s);
|
||||
|
||||
QVector<Status> getStatuses();
|
||||
QVector<Priority> getPriorities();
|
||||
Status getDefaultStatus();
|
||||
|
||||
std::optional<Status> getStatusByUUID(QString);
|
||||
std::optional<Priority> getPriorityByUUID(QString);
|
||||
@@ -28,8 +26,6 @@ private:
|
||||
TaskStateService();
|
||||
static TaskStateService *instance;
|
||||
|
||||
Status defaultStatus = Status("", "", QColor::fromRgb(0,0,0));
|
||||
|
||||
QVector<Priority> priorities;
|
||||
QVector<Status> statuses;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user