Simplify logic for item refreshing.
This commit is contained in:
parent
432f63a062
commit
76ffe8cbee
1 changed files with 10 additions and 47 deletions
|
@ -556,27 +556,12 @@ bool ServiceRoot::onBeforeSetMessagesRead(RootItem* selected_item, const QList<M
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ServiceRoot::onAfterSetMessagesRead(RootItem* selected_item, const QList<Message>& messages, RootItem::ReadStatus read) {
|
bool ServiceRoot::onAfterSetMessagesRead(RootItem* selected_item, const QList<Message>& messages, RootItem::ReadStatus read) {
|
||||||
|
Q_UNUSED(selected_item)
|
||||||
Q_UNUSED(messages)
|
Q_UNUSED(messages)
|
||||||
Q_UNUSED(read)
|
Q_UNUSED(read)
|
||||||
|
|
||||||
QList<RootItem*> items_to_reload;
|
updateCounts(true);
|
||||||
ImportantNode* imp = importantNode();
|
itemChanged(getSubTree());
|
||||||
|
|
||||||
if (imp == selected_item) {
|
|
||||||
updateCounts(true);
|
|
||||||
items_to_reload << getSubTree();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
selected_item->updateCounts(false);
|
|
||||||
items_to_reload << selected_item;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (imp != nullptr && imp != selected_item) {
|
|
||||||
imp->updateCounts(true);
|
|
||||||
items_to_reload << imp;
|
|
||||||
}
|
|
||||||
|
|
||||||
itemChanged(items_to_reload);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -615,15 +600,8 @@ bool ServiceRoot::onAfterSwitchMessageImportance(RootItem* selected_item, const
|
||||||
Q_UNUSED(selected_item)
|
Q_UNUSED(selected_item)
|
||||||
Q_UNUSED(changes)
|
Q_UNUSED(changes)
|
||||||
|
|
||||||
QList<RootItem*> items_to_reload;
|
updateCounts(false);
|
||||||
ImportantNode* imp = importantNode();
|
itemChanged(getSubTree());
|
||||||
|
|
||||||
if (imp != nullptr) {
|
|
||||||
imp->updateCounts(true);
|
|
||||||
items_to_reload << imp;
|
|
||||||
}
|
|
||||||
|
|
||||||
itemChanged(items_to_reload);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -634,40 +612,25 @@ bool ServiceRoot::onBeforeMessagesDelete(RootItem* selected_item, const QList<Me
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ServiceRoot::onAfterMessagesDelete(RootItem* selected_item, const QList<Message>& messages) {
|
bool ServiceRoot::onAfterMessagesDelete(RootItem* selected_item, const QList<Message>& messages) {
|
||||||
|
Q_UNUSED(selected_item)
|
||||||
Q_UNUSED(messages)
|
Q_UNUSED(messages)
|
||||||
|
|
||||||
QList<RootItem*> items_to_reload;
|
updateCounts(true);
|
||||||
|
itemChanged(getSubTree());
|
||||||
selected_item->updateCounts(true);
|
|
||||||
items_to_reload << selected_item;
|
|
||||||
|
|
||||||
RecycleBin* bin = recycleBin();
|
|
||||||
|
|
||||||
if (bin != nullptr && bin != selected_item) {
|
|
||||||
bin->updateCounts(true);
|
|
||||||
items_to_reload << bin;
|
|
||||||
}
|
|
||||||
|
|
||||||
ImportantNode* imp = importantNode();
|
|
||||||
|
|
||||||
if (imp != nullptr && imp != selected_item) {
|
|
||||||
imp->updateCounts(true);
|
|
||||||
items_to_reload << imp;
|
|
||||||
}
|
|
||||||
|
|
||||||
itemChanged(items_to_reload);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ServiceRoot::onBeforeMessagesRestoredFromBin(RootItem* selected_item, const QList<Message>& messages) {
|
bool ServiceRoot::onBeforeMessagesRestoredFromBin(RootItem* selected_item, const QList<Message>& messages) {
|
||||||
Q_UNUSED(selected_item)
|
Q_UNUSED(selected_item)
|
||||||
Q_UNUSED(messages)
|
Q_UNUSED(messages)
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ServiceRoot::onAfterMessagesRestoredFromBin(RootItem* selected_item, const QList<Message>& messages) {
|
bool ServiceRoot::onAfterMessagesRestoredFromBin(RootItem* selected_item, const QList<Message>& messages) {
|
||||||
Q_UNUSED(selected_item)
|
Q_UNUSED(selected_item)
|
||||||
Q_UNUSED(messages)
|
Q_UNUSED(messages)
|
||||||
|
|
||||||
updateCounts(true);
|
updateCounts(true);
|
||||||
itemChanged(getSubTree());
|
itemChanged(getSubTree());
|
||||||
return true;
|
return true;
|
||||||
|
|
Loading…
Add table
Reference in a new issue