Status and Priority service singleton
This commit is contained in:
@@ -18,6 +18,7 @@
|
||||
#include "taskdialog.h"
|
||||
#include "filterdialog.h"
|
||||
#include "../tools.h"
|
||||
#include "../services/taskstateservice.h"
|
||||
|
||||
MainWindow::MainWindow(QWidget *parent)
|
||||
: QMainWindow(parent)
|
||||
@@ -61,11 +62,11 @@ MainWindow::~MainWindow()
|
||||
|
||||
void MainWindow::openPreferences()
|
||||
{
|
||||
PrefDialog dialog(status, priorities, this);
|
||||
PrefDialog dialog(this);
|
||||
if (dialog.exec() == QDialog::DialogCode::Accepted)
|
||||
{
|
||||
this->priorities = dialog.getPriorities();
|
||||
this->status = dialog.getStatus();
|
||||
TaskStateService::getInstance()->updatePriorities(dialog.getPriorities());
|
||||
TaskStateService::getInstance()->updateStatuses(dialog.getStatus());
|
||||
save();
|
||||
redrawTaskTree();
|
||||
}
|
||||
@@ -153,7 +154,7 @@ void MainWindow::onNewTaskClick()
|
||||
{
|
||||
if (selectedBoardIndex > -1)
|
||||
{
|
||||
TaskDialog dialog(status, priorities, this);
|
||||
TaskDialog dialog(this);
|
||||
if (dialog.exec() == QDialog::DialogCode::Accepted)
|
||||
{
|
||||
Task t = dialog.getTask();
|
||||
@@ -169,7 +170,7 @@ void MainWindow::onNewTaskClick()
|
||||
|
||||
void MainWindow::onNewFilterClick()
|
||||
{
|
||||
FilterDialog dialog("New filter", boards, status, priorities, this);
|
||||
FilterDialog dialog("New filter", boards, this);
|
||||
if (dialog.exec() == QDialog::DialogCode::Accepted)
|
||||
{
|
||||
Filter f = dialog.getFilter();
|
||||
@@ -237,7 +238,7 @@ void MainWindow::onEditTask(QTreeWidgetItem *item)
|
||||
Task *t = getSelectedTask();
|
||||
if (t != nullptr)
|
||||
{
|
||||
TaskDialog dialog(t, status, priorities, this);
|
||||
TaskDialog dialog(t, this);
|
||||
if (dialog.exec() == QDialog::DialogCode::Accepted)
|
||||
{
|
||||
Task editedTask = dialog.getTask();
|
||||
@@ -346,7 +347,7 @@ void MainWindow::onEditFilterMenu()
|
||||
{
|
||||
int i = ui->filterListWidget->indexFromItem(menuSelectedFilterItem).row();
|
||||
Filter f = filters[i];
|
||||
FilterDialog dialog("Edit the filter", f, boards, status, priorities, this);
|
||||
FilterDialog dialog("Edit the filter", f, boards, this);
|
||||
if (dialog.exec() == QDialog::DialogCode::Accepted)
|
||||
{
|
||||
Filter f = dialog.getFilter();
|
||||
@@ -396,13 +397,15 @@ void MainWindow::init()
|
||||
QJsonArray jsonStatus = save[STATUS_KEY].toArray();
|
||||
QJsonArray jsonBoards = save[BOARDS_KEY].toArray();
|
||||
QJsonArray jsonFilters = save[FILTERS_KEY].toArray();
|
||||
QVector<Priority> priorities;
|
||||
QVector<Status> statuses;
|
||||
for (QJsonValueRef value : jsonPriorities)
|
||||
{
|
||||
priorities.append(Priority(value.toObject()));
|
||||
}
|
||||
for (QJsonValueRef value : jsonStatus)
|
||||
{
|
||||
status.append(Status(value.toObject()));
|
||||
statuses.append(Status(value.toObject()));
|
||||
}
|
||||
for (QJsonValueRef value : jsonBoards)
|
||||
{
|
||||
@@ -412,35 +415,16 @@ void MainWindow::init()
|
||||
{
|
||||
filters.append(Filter(value.toObject()));
|
||||
}
|
||||
TaskStateService::getInstance()->updatePriorities(priorities);
|
||||
TaskStateService::getInstance()->updateStatuses(statuses);
|
||||
redrawFilterList();
|
||||
redrawBoardList();
|
||||
return;
|
||||
}
|
||||
}
|
||||
this->priorities = defaultPriorities();
|
||||
this->status = defaultStatus();
|
||||
save();
|
||||
}
|
||||
|
||||
QVector<Priority> MainWindow::defaultPriorities()
|
||||
{
|
||||
QVector<Priority> res;
|
||||
res.append(Priority(QUuid::createUuid().toString(QUuid::WithoutBraces), "None", QColor(217, 217, 217)));
|
||||
res.append(Priority(QUuid::createUuid().toString(QUuid::WithoutBraces), "Low", QColor(48, 157, 176)));
|
||||
res.append(Priority(QUuid::createUuid().toString(QUuid::WithoutBraces), "Medium", QColor(176, 142, 48)));
|
||||
res.append(Priority(QUuid::createUuid().toString(QUuid::WithoutBraces), "High", QColor(176, 67, 48)));
|
||||
return res;
|
||||
}
|
||||
|
||||
QVector<Status> MainWindow::defaultStatus()
|
||||
{
|
||||
QVector<Status> res;
|
||||
res.append(Status(QUuid::createUuid().toString(QUuid::WithoutBraces), "To Do", QColor(143, 143, 143)));
|
||||
res.append(Status(QUuid::createUuid().toString(QUuid::WithoutBraces), "Working on", QColor(95, 48, 176)));
|
||||
res.append(Status(QUuid::createUuid().toString(QUuid::WithoutBraces), "Completed", QColor(48, 176, 73)));
|
||||
return res;
|
||||
}
|
||||
|
||||
QVector<Filter> MainWindow::defaultFilters()
|
||||
{
|
||||
QVector<Filter> res;
|
||||
@@ -449,54 +433,42 @@ QVector<Filter> MainWindow::defaultFilters()
|
||||
|
||||
const QString MainWindow::getPriorityLabel(QString uuid)
|
||||
{
|
||||
QString res = "";
|
||||
foreach (Priority p, priorities)
|
||||
std::optional<Priority> p = TaskStateService::getInstance()->getPriorityByUUID(uuid);
|
||||
if (p.has_value())
|
||||
{
|
||||
if (p.getUUID() == uuid)
|
||||
{
|
||||
res = p.getName();
|
||||
}
|
||||
return p.value().getName();
|
||||
}
|
||||
return res;
|
||||
return "";
|
||||
}
|
||||
|
||||
const QString MainWindow::getStatusLabel(QString uuid)
|
||||
{
|
||||
QString res = "";
|
||||
foreach (Status s, status)
|
||||
std::optional<Status> s = TaskStateService::getInstance()->getStatusByUUID(uuid);
|
||||
if (s.has_value())
|
||||
{
|
||||
if (s.getUUID() == uuid)
|
||||
{
|
||||
res = s.getName();
|
||||
}
|
||||
return s.value().getName();
|
||||
}
|
||||
return res;
|
||||
return "";
|
||||
}
|
||||
|
||||
const QColor MainWindow::getPriorityColor(QString uuid, QColor defaultColor)
|
||||
{
|
||||
QColor color = defaultColor;
|
||||
foreach (Priority p, priorities)
|
||||
std::optional<Priority> p = TaskStateService::getInstance()->getPriorityByUUID(uuid);
|
||||
if (p.has_value())
|
||||
{
|
||||
if (p.getUUID() == uuid)
|
||||
{
|
||||
color = p.getColor();
|
||||
}
|
||||
return p.value().getColor();
|
||||
}
|
||||
return color;
|
||||
return defaultColor;
|
||||
}
|
||||
|
||||
const QColor MainWindow::getStatusColor(QString uuid, QColor defaultColor)
|
||||
{
|
||||
QColor color = defaultColor;
|
||||
foreach (Status s, status)
|
||||
std::optional<Status> s = TaskStateService::getInstance()->getStatusByUUID(uuid);
|
||||
if (s.has_value())
|
||||
{
|
||||
if (s.getUUID() == uuid)
|
||||
{
|
||||
color = s.getColor();
|
||||
}
|
||||
return s.value().getColor();
|
||||
}
|
||||
return color;
|
||||
return defaultColor;
|
||||
}
|
||||
|
||||
const QJsonDocument MainWindow::getJsonSave()
|
||||
@@ -504,18 +476,24 @@ const QJsonDocument MainWindow::getJsonSave()
|
||||
QJsonDocument doc;
|
||||
QJsonObject obj;
|
||||
QJsonArray jsonPriorities;
|
||||
foreach (Priority p, this->priorities) {
|
||||
QJsonArray jsonStatus;
|
||||
QJsonArray jsonBoards;
|
||||
QJsonArray jsonFilters;
|
||||
|
||||
QVector<Priority> priorities = TaskStateService::getInstance()->getPriorities();
|
||||
foreach (Priority p, priorities) {
|
||||
jsonPriorities.append(p.toJson());
|
||||
}
|
||||
QJsonArray jsonStatus;
|
||||
foreach (Status s, this->status) {
|
||||
|
||||
QVector<Status> statuses = TaskStateService::getInstance()->getStatuses();
|
||||
foreach (Status s, statuses) {
|
||||
jsonStatus.append(s.toJson());
|
||||
}
|
||||
QJsonArray jsonBoards;
|
||||
|
||||
foreach (Board *b, this->boards) {
|
||||
jsonBoards.append(b->toJson());
|
||||
}
|
||||
QJsonArray jsonFilters;
|
||||
|
||||
foreach (Filter f, this->filters)
|
||||
{
|
||||
jsonFilters.append(f.toJson());
|
||||
|
||||
Reference in New Issue
Block a user