From ad2552ee43e1a8f9f6b3b29d03da8e457ea50fe7 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 28 Oct 2022 20:16:21 -0400 Subject: [PATCH] widget-factory: Port to async dialog API --- demos/widget-factory/widget-factory.c | 29 +++++++++++++++------------ 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/demos/widget-factory/widget-factory.c b/demos/widget-factory/widget-factory.c index e1881cc5b2..705606fcfe 100644 --- a/demos/widget-factory/widget-factory.c +++ b/demos/widget-factory/widget-factory.c @@ -214,10 +214,19 @@ activate_background (GSimpleAction *action, } static void -file_chooser_response (GtkNativeDialog *self, - int response) +file_chooser_response (GObject *source, + GAsyncResult *result, + void *user_data) { - gtk_native_dialog_destroy (self); + GtkFileDialog *dialog = GTK_FILE_DIALOG (source); + GFile *file; + + file = gtk_file_dialog_open_finish (dialog, result, NULL); + if (file) + { + g_print ("File selected: %s", g_file_peek_path (file)); + g_object_unref (file); + } } static void @@ -225,17 +234,11 @@ activate_open_file (GSimpleAction *action, GVariant *parameter, gpointer user_data) { - GtkFileChooserNative *chooser; - - chooser = gtk_file_chooser_native_new ("Open file", - NULL, - GTK_FILE_CHOOSER_ACTION_OPEN, - "Open", - "Cancel"); - - g_signal_connect (chooser, "response", G_CALLBACK (file_chooser_response), NULL); + GtkFileDialog *dialog; - gtk_native_dialog_show (GTK_NATIVE_DIALOG (chooser)); + dialog = gtk_file_dialog_new (); + gtk_file_dialog_open (dialog, NULL, NULL, NULL, file_chooser_response, NULL); + g_object_unref (dialog); } static void -- 2.30.2