forked from nuttyartist/notes
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtagpool.cpp
More file actions
68 lines (59 loc) · 1.63 KB
/
Copy pathtagpool.cpp
File metadata and controls
68 lines (59 loc) · 1.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include "tagpool.h"
#include "dbmanager.h"
TagPool::TagPool(DBManager *dbManager, QObject *parent) :
QObject(parent),
m_dbManager{dbManager}
{
connect(m_dbManager, &DBManager::nodesTagTreeReceived,
this, [this] (const NodeTagTreeData& treeData) {
QMap<int, TagData> newPool;
for (const auto& tag: treeData.tagTreeData) {
newPool[tag.id()] = tag;
}
setTagPool(newPool);
}, Qt::QueuedConnection);
connect(m_dbManager, &DBManager::tagAdded,
this, &TagPool::onTagAdded, Qt::QueuedConnection);
connect(m_dbManager, &DBManager::tagRemoved,
this, &TagPool::onTagDeleted, Qt::QueuedConnection);
connect(m_dbManager, &DBManager::tagRenamed,
this, &TagPool::onTagRenamed, Qt::QueuedConnection);
connect(m_dbManager, &DBManager::tagColorChanged,
this, &TagPool::onTagColorChanged, Qt::QueuedConnection);
}
void TagPool::setTagPool(const QMap<int, TagData> &newPool)
{
m_pool = newPool;
emit dataReseted();
}
void TagPool::onTagDeleted(int id)
{
m_pool.remove(id);
emit tagDeleted(id);
}
void TagPool::onTagAdded(const TagData &tag)
{
m_pool[tag.id()] = tag;
}
void TagPool::onTagRenamed(int id, const QString &newName)
{
m_pool[id].setName(newName);
emit dataUpdated(id);
}
void TagPool::onTagColorChanged(int id, const QString &newColor)
{
m_pool[id].setColor(newColor);
emit dataUpdated(id);
}
TagData TagPool::getTag(int id) const
{
return m_pool[id];
}
bool TagPool::contains(int id) const
{
return m_pool.contains(id);
}
QList<int> TagPool::tagIds() const
{
return m_pool.keys();
}