diff options
| author | frosty <gabriel@bwaaa.monster> | 2026-08-18 12:59:50 -0400 |
|---|---|---|
| committer | frosty <gabriel@bwaaa.monster> | 2026-08-18 12:59:50 -0400 |
| commit | d2c69cfb544c23042652dee9ebf0e7031d6c2b29 (patch) | |
| tree | ff4e6d6d9ef398e55d0b9c9b0c2ca8bb4ac5c42d /main/src/ui/conversation_selector/conversation_selector.vala | |
| parent | 35108fe1936a280318ad8935b89277f049a6428e (diff) | |
Add conversation search and change window decorations
Diffstat (limited to 'main/src/ui/conversation_selector/conversation_selector.vala')
| -rw-r--r-- | main/src/ui/conversation_selector/conversation_selector.vala | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/main/src/ui/conversation_selector/conversation_selector.vala b/main/src/ui/conversation_selector/conversation_selector.vala index 5d88c540..c11eea82 100644 --- a/main/src/ui/conversation_selector/conversation_selector.vala +++ b/main/src/ui/conversation_selector/conversation_selector.vala @@ -14,6 +14,7 @@ public class ConversationSelector : Widget { ListBox list_box = new ListBox() { hexpand=true }; private StreamInteractor stream_interactor; + private string search_text = ""; private HashMap<Conversation, ConversationSelectorRow> rows = new HashMap<Conversation, ConversationSelectorRow>(Conversation.hash_func, Conversation.equals_func); public ConversationSelector init(StreamInteractor stream_interactor) { @@ -37,6 +38,7 @@ public class ConversationSelector : Widget { } construct { + list_box.set_filter_func(filter); list_box.set_sort_func(sort); realize.connect(() => { @@ -52,6 +54,16 @@ public class ConversationSelector : Widget { check_widget_leak(this); } + public void set_search_text(string text) { + search_text = text.strip().casefold(); + 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)); + } + public void row_activated(ListBoxRow r) { ConversationSelectorRow? row = r as ConversationSelectorRow; if (row != null) { |
