aboutsummaryrefslogtreecommitdiff
path: root/main/src/ui/conversation_selector/conversation_selector.vala
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/ui/conversation_selector/conversation_selector.vala')
-rw-r--r--main/src/ui/conversation_selector/conversation_selector.vala10
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) {