aboutsummaryrefslogtreecommitdiff
path: root/main/src/ui/conversation_selector
diff options
context:
space:
mode:
authorfiaxh <git@lightrise.org>2025-10-05 11:20:39 +0200
committerfiaxh <git@lightrise.org>2025-10-05 11:20:39 +0200
commit3f9318f83f75ee45ede07da4e617556421505eeb (patch)
treece783c258f9574cda7cb83f6e418a6cac5688007 /main/src/ui/conversation_selector
parentd625058d76efc9e344dd5e1239a4b040a7d2519a (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.vala1
-rw-r--r--main/src/ui/conversation_selector/conversation_selector_row.vala32
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