From f79bbcce9e492069ee07421af7a79e137bbcf34c Mon Sep 17 00:00:00 2001 From: Automeris naranja <104251-automerisnaranja@users.noreply.gitlab.gnome.org> Date: Fri, 18 Oct 2024 19:28:03 -0300 Subject: [PATCH] nautilus-column-chooser: Port to AdwDialog --- src/nautilus-column-chooser.c | 20 +++++++++----------- src/nautilus-column-chooser.h | 2 +- src/nautilus-list-view.c | 4 +--- src/resources/ui/nautilus-column-chooser.ui | 13 +++++-------- 4 files changed, 16 insertions(+), 23 deletions(-) diff --git a/src/nautilus-column-chooser.c b/src/nautilus-column-chooser.c index bf76d4c2e0..7354f633da 100644 --- a/src/nautilus-column-chooser.c +++ b/src/nautilus-column-chooser.c @@ -36,7 +36,7 @@ struct _NautilusColumnChooser { - AdwWindow parent; + AdwDialog parent; GListModel *model; GtkWidget *list_box; @@ -68,7 +68,7 @@ enum }; static guint signals[LAST_SIGNAL]; -G_DEFINE_TYPE (NautilusColumnChooser, nautilus_column_chooser, ADW_TYPE_WINDOW); +G_DEFINE_TYPE (NautilusColumnChooser, nautilus_column_chooser, ADW_TYPE_DIALOG); static GStrv get_column_names (NautilusColumnChooser *chooser, @@ -414,10 +414,9 @@ column_sort_func (gconstpointer a, return a_pos == b_pos ? 0 : a_pos < b_pos ? -1 : 1; } -static gboolean -nautilus_column_chooser_close_request (GtkWindow *window) +static void +nautilus_column_chooser_close_attempt (NautilusColumnChooser *chooser) { - NautilusColumnChooser *chooser = NAUTILUS_COLUMN_CHOOSER (window); g_auto (GStrv) column_order = get_column_names (chooser, FALSE); g_auto (GStrv) visible_columns = get_column_names (chooser, TRUE); gboolean has_custom; @@ -439,7 +438,7 @@ nautilus_column_chooser_close_request (GtkWindow *window) nautilus_column_save_metadata (chooser->file, NULL, NULL); } - return FALSE; + adw_dialog_force_close (ADW_DIALOG (chooser)); } static void @@ -580,7 +579,6 @@ static void nautilus_column_chooser_class_init (NautilusColumnChooserClass *chooser_class) { GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (chooser_class); - GtkWindowClass *win_class = GTK_WINDOW_CLASS (chooser_class); GObjectClass *oclass = G_OBJECT_CLASS (chooser_class); oclass->set_property = nautilus_column_chooser_set_property; @@ -588,8 +586,6 @@ nautilus_column_chooser_class_init (NautilusColumnChooserClass *chooser_class) oclass->dispose = nautilus_column_chooser_dispose; oclass->finalize = nautilus_column_chooser_finalize; - win_class->close_request = nautilus_column_chooser_close_request; - gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/nautilus/ui/nautilus-column-chooser.ui"); gtk_widget_class_bind_template_child (widget_class, NautilusColumnChooser, list_box); gtk_widget_class_bind_template_child (widget_class, NautilusColumnChooser, window_title); @@ -599,8 +595,6 @@ nautilus_column_chooser_class_init (NautilusColumnChooserClass *chooser_class) gtk_widget_class_bind_template_callback (widget_class, use_default_clicked_callback); gtk_widget_class_bind_template_child (widget_class, NautilusColumnChooser, row_button_menu); - gtk_widget_class_add_binding_action (widget_class, GDK_KEY_Escape, 0, "window.close", NULL); - signals[CHANGED] = g_signal_new ("changed", G_TYPE_FROM_CLASS (chooser_class), @@ -640,6 +634,10 @@ nautilus_column_chooser_init (NautilusColumnChooser *chooser) gtk_widget_insert_action_group (GTK_WIDGET (chooser), "column-chooser", G_ACTION_GROUP (chooser->action_group)); + + g_signal_connect_object (chooser, "close-attempt", + G_CALLBACK (nautilus_column_chooser_close_attempt), + chooser, G_CONNECT_SWAPPED); } GtkWidget * diff --git a/src/nautilus-column-chooser.h b/src/nautilus-column-chooser.h index e971aeb015..bb3a384f21 100644 --- a/src/nautilus-column-chooser.h +++ b/src/nautilus-column-chooser.h @@ -29,6 +29,6 @@ #define NAUTILUS_TYPE_COLUMN_CHOOSER nautilus_column_chooser_get_type() -G_DECLARE_FINAL_TYPE (NautilusColumnChooser, nautilus_column_chooser, NAUTILUS, COLUMN_CHOOSER, AdwWindow); +G_DECLARE_FINAL_TYPE (NautilusColumnChooser, nautilus_column_chooser, NAUTILUS, COLUMN_CHOOSER, AdwDialog); GtkWidget *nautilus_column_chooser_new (NautilusFile *file); diff --git a/src/nautilus-list-view.c b/src/nautilus-list-view.c index afac05308d..015fd5b082 100644 --- a/src/nautilus-list-view.c +++ b/src/nautilus-list-view.c @@ -422,8 +422,6 @@ create_column_editor (NautilusListView *view) file = nautilus_list_base_get_directory_as_file (NAUTILUS_LIST_BASE (view)); column_chooser = nautilus_column_chooser_new (file); - gtk_window_set_transient_for (GTK_WINDOW (column_chooser), - GTK_WINDOW (gtk_widget_get_root (GTK_WIDGET (view)))); g_signal_connect_swapped (column_chooser, "changed", G_CALLBACK (apply_columns_settings), @@ -442,7 +440,7 @@ nautilus_list_view_present_column_editor (NautilusListView *self) (gpointer *) &self->column_editor); } - gtk_window_present (GTK_WINDOW (self->column_editor)); + adw_dialog_present (ADW_DIALOG (self->column_editor), GTK_WIDGET (self)); } static void diff --git a/src/resources/ui/nautilus-column-chooser.ui b/src/resources/ui/nautilus-column-chooser.ui index c10a92e837..7f742e9de9 100644 --- a/src/resources/ui/nautilus-column-chooser.ui +++ b/src/resources/ui/nautilus-column-chooser.ui @@ -1,14 +1,11 @@ -