/* * Mirai. Copyright (C) 2024 Vyn * This file is licensed under version 3 of the GNU General Public License (GPL-3.0-only) * The license can be found in the LICENSE file or at https://www.gnu.org/licenses/gpl-3.0.txt */ #include "TaskItem.h" #include "BaseResource.h" #include "utils.h" #include namespace mirai { int TaskItem::nextId = 0; TaskItem::TaskItem(BaseResource *source, Day *day, TaskItemData data) : source_(source), day_(day), data(data) { } void TaskItem::markAsDone() { data.state = DONE; onChange(); } void TaskItem::markAsUndone() { data.state = TODO; onChange(); } void TaskItem::setText(const std::string &text) { this->data.text = text; onChange(); } const std::string &TaskItem::getText() const { return data.text; } const TaskItemState &TaskItem::getState() const { return data.state; } const Tags &TaskItem::getTags() const { return data.tags; } bool TaskItem::hasTag(const std::string &tag) const { return vectorUtils::contains(data.tags, tag); } void TaskItem::onChange() { source()->setDirty(true); } } // namespace mirai