summaryrefslogtreecommitdiff
path: root/embed
diff options
context:
space:
mode:
authorAlexander Mikhaylenko <alexm@gnome.org>2022-12-07 13:20:59 +0400
committerAlexander Mikhaylenko <alexm@gnome.org>2022-12-08 15:27:09 +0400
commit20f82f95a55570fc33ecde7d0cf7ba8fcb9aeaf7 (patch)
tree5c8445cab93ec221f7cf5a0133c35da7dbf28db4 /embed
parent8538e517bd24a0e3ec539729b3267fa8ba3a5b0e (diff)
downloadepiphany-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.c68
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