mirror of
https://codeberg.org/vyn/mirai.git
synced 2025-07-03 01:33:19 +00:00
Fix tags list not up to date after adding or removing a tag
This commit is contained in:
parent
dc4f0795c7
commit
9ced5c422d
3 changed files with 27 additions and 10 deletions
|
@ -22,16 +22,7 @@ void Mirai::loadFile(const std::string &path)
|
|||
{
|
||||
auto tasksFile = TodoMdFormat::readFile(path);
|
||||
files->push_back(std::move(tasksFile));
|
||||
tags.clear();
|
||||
for (auto &file : *files) {
|
||||
for (auto &task : file->getTasks()) {
|
||||
for (auto &tag : task->getTags()) {
|
||||
if (!vectorUtils::contains(tags, tag)) {
|
||||
tags.push_back(tag);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
reloadTags();
|
||||
}
|
||||
|
||||
void Mirai::save()
|
||||
|
@ -42,6 +33,7 @@ void Mirai::save()
|
|||
file->setDirty(false);
|
||||
}
|
||||
}
|
||||
reloadTags();
|
||||
}
|
||||
|
||||
void Mirai::addTask(TaskItemData taskItem)
|
||||
|
@ -103,4 +95,18 @@ const std::vector<std::string> &Mirai::getTags()
|
|||
return tags;
|
||||
}
|
||||
|
||||
void Mirai::reloadTags()
|
||||
{
|
||||
tags.clear();
|
||||
for (auto &file : *files) {
|
||||
for (auto &task : file->getTasks()) {
|
||||
for (auto &tag : task->getTags()) {
|
||||
if (!vectorUtils::contains(tags, tag)) {
|
||||
tags.push_back(tag);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace mirai
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue