97 lines
2.4 KiB
C++
97 lines
2.4 KiB
C++
#include "taskdialog.h"
|
|
#include "ui_taskdialog.h"
|
|
|
|
#include <QDate>
|
|
|
|
#include "../services/taskstateservice.h"
|
|
|
|
TaskDialog::TaskDialog(QWidget *parent) :
|
|
QDialog(parent),
|
|
ui(new Ui::TaskDialog)
|
|
{
|
|
ui->setupUi(this);
|
|
init();
|
|
this->setWindowTitle("New task");
|
|
|
|
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) :
|
|
QDialog(parent),
|
|
ui(new Ui::TaskDialog)
|
|
{
|
|
ui->setupUi(this);
|
|
init();
|
|
this->setWindowTitle("Edit task");
|
|
|
|
// set fields
|
|
ui->nameEdit->setText(t->getTitle());
|
|
ui->descriptionEdit->setMarkdown(t->getDescription());
|
|
ui->expectedForEdit->setDate(t->getExpectedFor());
|
|
|
|
if (t->getPriorityUUID().length() > 0)
|
|
{
|
|
initSelectionCombobox(t->getPriorityUUID(), ui->priorityCombo);
|
|
}
|
|
|
|
if (t->getStatusUUID().length() > 0)
|
|
{
|
|
initSelectionCombobox(t->getStatusUUID(), ui->statusCombo);
|
|
}
|
|
|
|
}
|
|
|
|
TaskDialog::~TaskDialog()
|
|
{
|
|
delete ui;
|
|
}
|
|
|
|
Task TaskDialog::getTask()
|
|
{
|
|
QString title = ui->nameEdit->text();
|
|
QString description = ui->descriptionEdit->toMarkdown(QTextDocument::MarkdownFeature::MarkdownDialectCommonMark);
|
|
QDate expectedFor = ui->expectedForEdit->date();
|
|
QString priorityUUID = "";
|
|
if (!ui->priorityCombo->currentData().isNull())
|
|
{
|
|
priorityUUID = ui->priorityCombo->currentData().toString();
|
|
}
|
|
QString statusUUID = "";
|
|
if (!ui->statusCombo->currentData().isNull())
|
|
{
|
|
statusUUID = ui->statusCombo->currentData().toString();
|
|
}
|
|
return Task(title, description, expectedFor, priorityUUID, statusUUID);
|
|
}
|
|
|
|
void TaskDialog::init()
|
|
{
|
|
QVector<Status> statuses = TaskStateService::getInstance()->getStatuses();
|
|
QVector<Priority> priorities = TaskStateService::getInstance()->getPriorities();
|
|
|
|
foreach (Status s, statuses)
|
|
{
|
|
ui->statusCombo->addItem(s.getName(), s.getUUID());
|
|
}
|
|
|
|
foreach (Priority p, priorities)
|
|
{
|
|
ui->priorityCombo->addItem(p.getName(), p.getUUID());
|
|
}
|
|
}
|
|
|
|
void TaskDialog::initSelectionCombobox(QString uuid, QComboBox *cbx)
|
|
{
|
|
for (uint16_t i = 0; i < cbx->count(); i++)
|
|
{
|
|
if (cbx->itemData(i).toString() == uuid)
|
|
{
|
|
cbx->setCurrentIndex(i);
|
|
break;
|
|
}
|
|
}
|
|
}
|