Show tasks with deadline first, in order

This commit is contained in:
Vyn 2024-04-17 15:07:33 +02:00
parent 3030e15d5e
commit d1a4858504
4 changed files with 19 additions and 1 deletions

View file

@ -122,6 +122,7 @@ void Backend::updateTodoFromRawFormat(int todoIndex, QString text, QString date)
*(taskItem.taskItem) =
mirai::TodoMdFormat::StringToTask(text.toStdString(), date.toStdString());
mirai.save();
view.lock()->update();
rebuildQMLTasksList();
emit tasksChanged();
}
@ -137,6 +138,7 @@ void Backend::updateTodo(int todoIndex, QString state, QString text, QString dat
taskItem.taskItem->setText(text.toStdString());
taskItem.taskItem->setDate(date.toStdString());
mirai.save();
view.lock()->update();
rebuildQMLTasksList();
emit tasksChanged();
}

View file

@ -75,6 +75,11 @@ bool TaskItem::hasDate() const
return isDate(data.date);
}
bool TaskItem::hasTime() const
{
return getStartTime() != "" && getEndTime() != "";
}
bool TaskItem::hasTag(const std::string &tag) const
{
return vectorUtils::contains(data.tags, tag);

View file

@ -57,6 +57,7 @@ class TaskItem
const Tags &getTags() const;
bool hasTag(const std::string &tag) const;
bool hasDate() const;
bool hasTime() const;
private:
void onChange();

View file

@ -52,7 +52,17 @@ void TasksView::update()
} else if (!t1->hasDate() && t2->hasDate()) {
return false;
}
return t1->getDate() < t2->getDate();
if (t1->getDate() < t2->getDate()) {
return true;
} else if (t1->getDate() > t2->getDate()) {
return false;
}
if (t1->hasTime() && !t2->hasTime()) {
return true;
} else if (!t1->hasTime() && t2->hasTime()) {
return false;
}
return t1->getStartTime() < t2->getStartTime();
});
}