diff options
| author | fiaxh <git@lightrise.org> | 2025-10-05 11:20:39 +0200 |
|---|---|---|
| committer | fiaxh <git@lightrise.org> | 2025-10-05 11:20:39 +0200 |
| commit | 3f9318f83f75ee45ede07da4e617556421505eeb (patch) | |
| tree | ce783c258f9574cda7cb83f6e418a6cac5688007 /main/src/ui/conversation_selector | |
| parent | d625058d76efc9e344dd5e1239a4b040a7d2519a (diff) | |
Use AdwNavigationSplitView instead of AdwLeaflet for main window
Diffstat (limited to 'main/src/ui/conversation_selector')
| -rw-r--r-- | main/src/ui/conversation_selector/conversation_selector.vala | 1 | ||||
| -rw-r--r-- | main/src/ui/conversation_selector/conversation_selector_row.vala | 32 |
2 files changed, 10 insertions, 23 deletions
diff --git a/main/src/ui/conversation_selector/conversation_selector.vala b/main/src/ui/conversation_selector/conversation_selector.vala index 4439f443..3b3caf5a 100644 --- a/main/src/ui/conversation_selector/conversation_selector.vala +++ b/main/src/ui/conversation_selector/conversation_selector.vala @@ -19,6 +19,7 @@ public class ConversationSelector : Widget { public ConversationSelector init(StreamInteractor stream_interactor) { this.stream_interactor = stream_interactor; list_box.set_parent(this); + list_box.add_css_class("navigation-sidebar"); this.layout_manager = new BinLayout(); stream_interactor.get_module(ConversationManager.IDENTITY).conversation_activated.connect(add_conversation); diff --git a/main/src/ui/conversation_selector/conversation_selector_row.vala b/main/src/ui/conversation_selector/conversation_selector_row.vala index c180b6b3..a0e8b11b 100644 --- a/main/src/ui/conversation_selector/conversation_selector_row.vala +++ b/main/src/ui/conversation_selector/conversation_selector_row.vala @@ -39,29 +39,15 @@ public class ConversationSelectorRow : ListBoxRow { this.conversation = conversation; this.stream_interactor = stream_interactor; - switch (conversation.type_) { - case Conversation.Type.CHAT: - stream_interactor.get_module(RosterManager.IDENTITY).updated_roster_item.connect((account, jid, roster_item) => { - if (conversation.account.equals(account) && conversation.counterpart.equals(jid)) { - update_name_label(); - } - }); - break; - case Conversation.Type.GROUPCHAT: - stream_interactor.get_module(MucManager.IDENTITY).room_info_updated.connect((account, jid) => { - if (conversation != null && conversation.counterpart.equals_bare(jid) && conversation.account.equals(account)) { - update_name_label(); - update_read(true); // bubble color might have changed - } - }); - stream_interactor.get_module(MucManager.IDENTITY).private_room_occupant_updated.connect((account, room, occupant) => { - if (conversation != null && conversation.counterpart.equals_bare(room.bare_jid) && conversation.account.equals(account)) { - update_name_label(); - } - }); - break; - case Conversation.Type.GROUPCHAT_PM: - break; + var display_name_model = stream_interactor.get_module(ContactModels.IDENTITY).get_display_name_model(conversation); + display_name_model.bind_property("display-name", name_label, "label", BindingFlags.SYNC_CREATE); + + if (conversation.type_ == Conversation.Type.GROUPCHAT) { + stream_interactor.get_module(MucManager.IDENTITY).room_info_updated.connect((account, jid) => { + if (conversation != null && conversation.counterpart.equals_bare(jid) && conversation.account.equals(account)) { + update_read(true); // bubble color might have changed + } + }); } // Set tooltip |
