diff options
| author | frosty <frostinator33@airmail.cc> | 2026-10-27 12:35:27 -0400 |
|---|---|---|
| committer | frosty <frostinator33@airmail.cc> | 2026-10-27 12:35:27 -0400 |
| commit | bff7a3a4a6512f48a7b58c2b20404e2d3173050e (patch) | |
| tree | 44cff6c45b158251890c1e24dc0986c3a80021f5 /main/src/ui/conversation_selector/conversation_selector.vala | |
| parent | c7426c9fb97f1afdf2b33a055d977762af92c795 (diff) | |
Diffstat (limited to 'main/src/ui/conversation_selector/conversation_selector.vala')
| -rw-r--r-- | main/src/ui/conversation_selector/conversation_selector.vala | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/main/src/ui/conversation_selector/conversation_selector.vala b/main/src/ui/conversation_selector/conversation_selector.vala index 25ea1b1e..c087cde0 100644 --- a/main/src/ui/conversation_selector/conversation_selector.vala +++ b/main/src/ui/conversation_selector/conversation_selector.vala @@ -15,6 +15,7 @@ public class ConversationSelector : Widget { private StreamInteractor stream_interactor; private string search_text = ""; + private Account? account_filter = null; private HashMap<Conversation, ConversationSelectorRow> rows = new HashMap<Conversation, ConversationSelectorRow>(Conversation.hash_func, Conversation.equals_func); public ConversationSelector init(StreamInteractor stream_interactor) { @@ -60,9 +61,16 @@ public class ConversationSelector : Widget { list_box.invalidate_filter(); } + public void set_account_filter(Account? account) { + account_filter = account; + list_box.invalidate_filter(); + } + private bool filter(ListBoxRow list_box_row) { ConversationSelectorRow? row = list_box_row as ConversationSelectorRow; - return row != null && (search_text == "" || row.matches_search(search_text)); + if (row == null) return false; + if (account_filter != null && !row.conversation.account.equals(account_filter)) return false; + return search_text == "" || row.matches_search(search_text); } public void row_activated(ListBoxRow r) { |
