/* * 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 */ #ifndef MIRAI_TASKSVIEW_H #define MIRAI_TASKSVIEW_H #include "TasksFile.h" #include "using.h" #include #include #include namespace mirai { class TasksView { public: TasksView(std::shared_ptr> files); TaskItem &operator[](int index); size_t count() const; void update(); void addTagFilter(const std::string &tag); void removeTagFilter(const std::string &tag); void removeFilters(); const Tags &getActiveTagsFilter(); private: std::shared_ptr> files; std::vector tasksToShow; Tags tagsFilter; }; } // namespace mirai #endif