[gtk/matthiasc/for-master: 1/3] filechooserdialog: Stop using ::response-requested



commit 0145809a94667c75ed4a446b977bcc83c79b5d33
Author: Matthias Clasen <mclasen redhat com>
Date:   Sun Jul 12 12:14:32 2020 -0400

    filechooserdialog: Stop using ::response-requested
    
    Replace the ::response-requested signal by an action.

 gtk/gtkfilechooserdialog.c     | 14 +++++++++-----
 gtk/gtkfilechooserwidget.c     |  1 +
 gtk/ui/gtkfilechooserdialog.ui |  1 -
 3 files changed, 10 insertions(+), 6 deletions(-)
---
diff --git a/gtk/gtkfilechooserdialog.c b/gtk/gtkfilechooserdialog.c
index 094a25f15b..f7a16057cc 100644
--- a/gtk/gtkfilechooserdialog.c
+++ b/gtk/gtkfilechooserdialog.c
@@ -263,8 +263,9 @@ static void     gtk_file_chooser_dialog_size_allocate (GtkWidget            *wid
                                                        int                   width,
                                                        int                   height,
                                                        int                    baseline);
-static void     file_chooser_widget_response_requested (GtkWidget            *widget,
-                                                        GtkFileChooserDialog *dialog);
+static void     gtk_file_chooser_dialog_activate_response (GtkWidget        *widget,
+                                                           const char       *action_name,
+                                                           GVariant         *parameters);
 
 static void response_cb (GtkDialog *dialog,
                          gint       response_id);
@@ -304,7 +305,8 @@ gtk_file_chooser_dialog_class_init (GtkFileChooserDialogClass *class)
   gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserDialog, widget);
   gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserDialog, buttons);
   gtk_widget_class_bind_template_callback (widget_class, response_cb);
-  gtk_widget_class_bind_template_callback (widget_class, file_chooser_widget_response_requested);
+
+  gtk_widget_class_install_action (widget_class, "response.activate", NULL, 
gtk_file_chooser_dialog_activate_response);
 }
 
 static void
@@ -360,9 +362,11 @@ is_accept_response_id (gint response_id)
 }
 
 static void
-file_chooser_widget_response_requested (GtkWidget            *widget,
-                                        GtkFileChooserDialog *dialog)
+gtk_file_chooser_dialog_activate_response (GtkWidget  *widget,
+                                           const char *action_name,
+                                           GVariant   *parameters)
 {
+  GtkFileChooserDialog *dialog = GTK_FILE_CHOOSER_DIALOG (widget);
   GtkFileChooserDialogPrivate *priv = gtk_file_chooser_dialog_get_instance_private (dialog);
   GtkWidget *button;
 
diff --git a/gtk/gtkfilechooserwidget.c b/gtk/gtkfilechooserwidget.c
index 5eebc04bd3..3f0bddf223 100644
--- a/gtk/gtkfilechooserwidget.c
+++ b/gtk/gtkfilechooserwidget.c
@@ -5700,6 +5700,7 @@ add_custom_button_to_dialog (GtkDialog   *dialog,
 static void
 request_response_and_add_to_recent_list (GtkFileChooserWidget *impl)
 {
+  gtk_widget_activate_action (GTK_WIDGET (impl), "response.activate", NULL);
   g_signal_emit_by_name (impl, "response-requested");
   add_selection_to_recent_list (impl);
 }
diff --git a/gtk/ui/gtkfilechooserdialog.ui b/gtk/ui/gtkfilechooserdialog.ui
index 99b3700c69..c48e07f2b5 100644
--- a/gtk/ui/gtkfilechooserdialog.ui
+++ b/gtk/ui/gtkfilechooserdialog.ui
@@ -20,7 +20,6 @@
           <object class="GtkFileChooserWidget" id="widget">
             <property name="hexpand">1</property>
             <property name="vexpand">1</property>
-            <signal name="response-requested" handler="file_chooser_widget_response_requested" swapped="no"/>
           </object>
         </child>
       </object>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]