diff options
author | Alexander Mikhaylenko <alexm@gnome.org> | 2022-12-07 13:20:59 +0400 |
---|---|---|
committer | Alexander Mikhaylenko <alexm@gnome.org> | 2022-12-08 15:27:09 +0400 |
commit | 20f82f95a55570fc33ecde7d0cf7ba8fcb9aeaf7 (patch) | |
tree | 5c8445cab93ec221f7cf5a0133c35da7dbf28db4 /embed | |
parent | 8538e517bd24a0e3ec539729b3267fa8ba3a5b0e (diff) | |
download | epiphany-20f82f95a55570fc33ecde7d0cf7ba8fcb9aeaf7.tar.gz |
download: Port to GtkFileDialog
Part-of: <https://gitlab.gnome.org/GNOME/epiphany/-/merge_requests/1236>
Diffstat (limited to 'embed')
-rw-r--r-- | embed/ephy-download.c | 68 |
1 files changed, 34 insertions, 34 deletions
diff --git a/embed/ephy-download.c b/embed/ephy-download.c index b3befebd5..8acea4543 100644 --- a/embed/ephy-download.c +++ b/embed/ephy-download.c @@ -651,54 +651,54 @@ filename_suggested_dialog_cb (AdwMessageDialog *dialog, } static void -filename_suggested_file_chooser_cb (GtkNativeDialog *chooser, - GtkResponseType response, - SuggestedFilenameData *data) +filename_suggested_file_dialog_cb (GtkFileDialog *dialog, + GAsyncResult *result, + SuggestedFilenameData *data) { - if (response == GTK_RESPONSE_ACCEPT) { - g_autofree char *display_name = NULL; + g_autoptr (GFile) file = NULL; + g_autofree char *display_name = NULL; - g_set_object (&data->directory, gtk_file_chooser_get_file (GTK_FILE_CHOOSER (chooser))); + if (!data->choose_filename) + file = gtk_file_dialog_select_folder_finish (dialog, result, NULL); + else + file = gtk_file_dialog_save_finish (dialog, result, NULL); - display_name = ephy_file_get_display_name (data->directory); - gtk_label_set_label (data->directory_label, display_name); - } + if (!file) + return; + + g_set_object (&data->directory, file); - gtk_native_dialog_destroy (chooser); + display_name = ephy_file_get_display_name (data->directory); + gtk_label_set_label (data->directory_label, display_name); } static void filename_suggested_button_cb (GtkButton *button, SuggestedFilenameData *data) { - GtkFileChooserNative *chooser; + GtkFileDialog *dialog = gtk_file_dialog_new (); if (!data->choose_filename) { - chooser = gtk_file_chooser_native_new (_("Select a Directory"), - data->dialog, - GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, - _("_Select"), - _("_Cancel")); + gtk_file_dialog_set_title (dialog, _("Select a Directory")); + + gtk_file_dialog_select_folder (dialog, + data->dialog, + data->directory, + NULL, + (GAsyncReadyCallback)filename_suggested_file_dialog_cb, + data); } else { - chooser = gtk_file_chooser_native_new (_("Select the Destination"), - data->dialog, - GTK_FILE_CHOOSER_ACTION_SAVE, - _("_Select"), - _("_Cancel")); - gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (chooser), data->suggested_filename); + gtk_file_dialog_set_title (dialog, _("Select the Destination")); + gtk_file_dialog_set_current_folder (dialog, data->directory); + + gtk_file_dialog_save (dialog, + data->dialog, + NULL, + data->suggested_filename, + NULL, + (GAsyncReadyCallback)filename_suggested_file_dialog_cb, + data); } - - gtk_native_dialog_set_modal (GTK_NATIVE_DIALOG (chooser), TRUE); - - gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (chooser), - data->directory, - NULL); - - g_signal_connect (chooser, "response", - G_CALLBACK (filename_suggested_file_chooser_cb), - data); - - gtk_native_dialog_show (GTK_NATIVE_DIALOG (chooser)); } static gboolean |