summaryrefslogtreecommitdiffstats
path: root/src/mainwindow.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mainwindow.h')
-rw-r--r--src/mainwindow.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/mainwindow.h b/src/mainwindow.h
index fa413fe..0999ef3 100644
--- a/src/mainwindow.h
+++ b/src/mainwindow.h
@@ -235,6 +235,16 @@ public:
sendMessageTagChange(messageIds, add, remove, description);
}
+ /// Sends a thread-scoped tag change directly. The counterpart seam to
+ /// sendMessageTagChangeForTesting, for the same reason.
+ void sendThreadTagChangeForTesting(const QStringList &threadIds,
+ const QStringList &add,
+ const QStringList &remove,
+ const QString &description)
+ {
+ sendThreadTagChange(threadIds, add, remove, description);
+ }
+
/// The ids the last tag change was sent for, and whether they were thread
/// ids or message ids.
///
@@ -1191,6 +1201,29 @@ private:
/// firing in a view it cannot judge.
QString viewFilterTag() const;
+ /// Keeps the current view's membership in step with a write: drops a row
+ /// whose UNION has stopped matching, and refreshes when one starts
+ /// matching, which the model cannot express on its own. No-op unless the
+ /// view has a filter tag and the write touched it.
+ void syncViewMembership(const QStringList &threadIds,
+ bool aRowIsMissing,
+ const QStringList &added,
+ const QStringList &removed);
+
+ /// Removes the rows that stopped matching the view while the user was
+ /// sitting on them. Called when the selection moves.
+ void flushDeferredEviction();
+
+ /// Threads that have stopped matching the view but were selected when it
+ /// happened, so evicting them would have moved the list under the user.
+ QStringList m_deferredEvictions;
+
+ /// True only while an AUTOMATIC write is being sent. A write the user
+ /// asked for evicts its row at once; one a timer made must not, or the row
+ /// leaves under an open context menu two seconds after it was selected.
+ /// The distinction is who initiated it, not what it does (item 177).
+ bool m_automaticWrite = false;
+
void onMessagesMoved(const QMap<QString, QString> &originByMessageId,
const QString &destFolder);