From bff7a3a4a6512f48a7b58c2b20404e2d3173050e Mon Sep 17 00:00:00 2001 From: frosty Date: Tue, 27 Oct 2026 12:35:27 -0400 Subject: feat: begin working on account switcher --- main/src/ui/conversation_selector/conversation_selector.vala | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'main/src/ui/conversation_selector/conversation_selector.vala') 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 rows = new HashMap(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) { -- cgit v1.3