[WIP] full views rework

This commit is contained in:
Vyn 2025-06-29 20:07:11 +02:00
parent 9de3972630
commit 15bd0f58a7
Signed by: vyn
GPG key ID: E1B2BE34E7A971E7
30 changed files with 812 additions and 1175 deletions

View file

@ -6,7 +6,6 @@
#include "Task.h"
#include "DataProvider.h"
#include "Day.h"
#include "utils.h"
#include <optional>
#include <string>
@ -19,7 +18,7 @@ int Task::id() const
return task_.id;
}
int Task::sourceId() const
int Task::source_id() const
{
return data_->id;
}
@ -39,50 +38,37 @@ bool Task::checked() const
return task_.state == mirai::DONE;
}
bool Task::hasEvent() const
bool Task::has_due_date() const
{
return task_.eventId.has_value();
return task_.due_date.has_value();
}
bool Task::hasDate() const
std::optional<Date> Task::due_date() const
{
return task_.dayId.has_value();
if (!task_.due_date.has_value()) {
return std::nullopt;
}
return task_.due_date.value();
}
void Task::setTitle(const std::string &newTitle)
void Task::set_title(const std::string &newTitle)
{
data_->update_task(id(), {.title = newTitle});
}
void Task::setDay(const Day &day)
void Task::set_date(const Date &date)
{
auto emptyEventId = std::optional<std::optional<int>>(std::optional<int>(std::nullopt));
data_->update_task(id(), {.dayId = day.id(), .eventId = emptyEventId});
}
void Task::setDate(const Date &date)
{
auto day = data_->get_day_by_date(date);
if (!day.has_value()) {
day = data_->insert_day({.id = generateUniqueId(), .date = date});
}
auto emptyEventId = std::optional<std::optional<int>>(std::optional<int>(std::nullopt));
data_->update_task(id(), {.dayId = day.value().id, .eventId = emptyEventId});
data_->update_task(id(), {.due_date = date});
}
void Task::unschedule()
{
auto emptyId = std::optional<std::optional<int>>(std::optional<int>(std::nullopt));
data_->update_task(id(), {.dayId = emptyId, .eventId = emptyId});
data_->update_task(id(), {.due_date = std::nullopt});
}
void Task::setEvent(const Event &event)
{
auto emptyDayId = std::optional<std::optional<int>>(std::optional<int>(std::nullopt));
data_->update_task(id(), {.dayId = emptyDayId, .eventId = event.id()});
}
void Task::setChecked(bool checked)
void Task::set_checked(bool checked)
{
data_->update_task(id(), {.state = checked ? DONE : TODO});
}