From f17926329915fcd8f95e00ab042d1a22ea2b7371 Mon Sep 17 00:00:00 2001 From: fiaxh Date: Mon, 6 Oct 2025 18:17:17 +0200 Subject: Use AdwDialog for conversation details and preferences --- main/src/ui/application.vala | 12 ++++++------ main/src/ui/chat_input/chat_input_controller.vala | 4 ++-- main/src/ui/conversation_details.vala | 7 +++---- main/src/ui/conversation_titlebar/menu_entry.vala | 4 ++-- main/src/ui/main_window_controller.vala | 3 +-- 5 files changed, 14 insertions(+), 16 deletions(-) (limited to 'main/src/ui') diff --git a/main/src/ui/application.vala b/main/src/ui/application.vala index ffdd2df3..b0473c16 100644 --- a/main/src/ui/application.vala +++ b/main/src/ui/application.vala @@ -153,9 +153,9 @@ public class Dino.Ui.Application : Adw.Application, Dino.Application { string stack_value = variant.get_child_value(1).get_string(); - var conversation_details = ConversationDetails.setup_dialog(conversation, stream_interactor, window); + var conversation_details = ConversationDetails.setup_dialog(conversation, stream_interactor); conversation_details.stack.visible_child_name = stack_value; - conversation_details.present(); + conversation_details.present(window); }); add_action(open_conversation_details_action); @@ -251,16 +251,16 @@ public class Dino.Ui.Application : Adw.Application, Dino.Application { } private void show_preferences_window() { - Ui.PreferencesWindow dialog = new Ui.PreferencesWindow() { transient_for = window }; + Ui.PreferencesDialog dialog = new Ui.PreferencesDialog(); dialog.model.populate(db, stream_interactor); - dialog.present(); + dialog.present(window); } private void show_preferences_account_window(Account account) { - Ui.PreferencesWindow dialog = new Ui.PreferencesWindow() { transient_for = window }; + Ui.PreferencesDialog dialog = new Ui.PreferencesDialog(); dialog.model.populate(db, stream_interactor); dialog.accounts_page.account_chosen(account); - dialog.present(); + dialog.present(window); } private void show_about_window() { diff --git a/main/src/ui/chat_input/chat_input_controller.vala b/main/src/ui/chat_input/chat_input_controller.vala index 07499aa4..660f29bb 100644 --- a/main/src/ui/chat_input/chat_input_controller.vala +++ b/main/src/ui/chat_input/chat_input_controller.vala @@ -56,8 +56,8 @@ public class ChatInputController : Object { status_description_label.activate_link.connect((uri) => { if (uri == OPEN_CONVERSATION_DETAILS_URI){ - var conversation_details = ConversationDetails.setup_dialog(conversation, stream_interactor, (Window)chat_input.get_root()); - conversation_details.present(); + var conversation_details = ConversationDetails.setup_dialog(conversation, stream_interactor); + conversation_details.present((Window)chat_input.get_root()); } return true; }); diff --git a/main/src/ui/conversation_details.vala b/main/src/ui/conversation_details.vala index a1b7a9ce..404f357d 100644 --- a/main/src/ui/conversation_details.vala +++ b/main/src/ui/conversation_details.vala @@ -189,20 +189,19 @@ namespace Dino.Ui.ConversationDetails { } } - public Dialog setup_dialog(Conversation conversation, StreamInteractor stream_interactor, Window parent) { - var dialog = new Dialog() { transient_for = parent }; + public Dialog setup_dialog(Conversation conversation, StreamInteractor stream_interactor) { + var dialog = new Dialog(); var model = new Model.ConversationDetails(); model.populate(stream_interactor, conversation); bind_dialog(model, dialog.model, stream_interactor); set_about_rows(model, dialog.model, stream_interactor); - dialog.close_request.connect(() => { + dialog.closed.connect(() => { // Only send the config form if something was changed if (model.data_form_bak != null && model.data_form_bak != model.data_form.stanza_node.to_string()) { stream_interactor.get_module(MucManager.IDENTITY).set_config_form.begin(conversation.account, conversation.counterpart, model.data_form); } - return false; }); Plugins.ContactDetails contact_details = new Plugins.ContactDetails(); diff --git a/main/src/ui/conversation_titlebar/menu_entry.vala b/main/src/ui/conversation_titlebar/menu_entry.vala index ca8c23b3..798c2a63 100644 --- a/main/src/ui/conversation_titlebar/menu_entry.vala +++ b/main/src/ui/conversation_titlebar/menu_entry.vala @@ -42,8 +42,8 @@ class MenuEntry : Plugins.ConversationTitlebarEntry, Object { } private void open_conversation_details() { - var conversation_details = ConversationDetails.setup_dialog(conversation, stream_interactor, (Window)button.get_root()); - conversation_details.present(); + var conversation_details = ConversationDetails.setup_dialog(conversation, stream_interactor); + conversation_details.present((Window)button.get_root()); } public Object? get_widget(Plugins.WidgetType type) { diff --git a/main/src/ui/main_window_controller.vala b/main/src/ui/main_window_controller.vala index 118eb73b..93b9fd69 100644 --- a/main/src/ui/main_window_controller.vala +++ b/main/src/ui/main_window_controller.vala @@ -66,8 +66,7 @@ public class MainWindowController : Object { window.welcome_placeholder.primary_button.clicked.connect(() => { ManageAccounts.AddAccountDialog dialog = new ManageAccounts.AddAccountDialog(stream_interactor, db); - dialog.set_transient_for(app.get_active_window()); - dialog.present(); + dialog.present(app.get_active_window()); }); window.accounts_placeholder.primary_button.clicked.connect(() => { app.activate_action("preferences", null); }); window.conversation_selector.conversation_selected.connect((conversation) => select_conversation(conversation)); -- cgit v1.3