[gedit] commands-file: port to GeditFileChooserOpen



commit 4c10eeb828fd480f6762da9282e0247209d16d4e
Author: Sébastien Wilmet <swilmet gnome org>
Date:   Sat Jun 6 21:02:07 2020 +0200

    commands-file: port to GeditFileChooserOpen

 gedit/gedit-commands-file.c | 68 +++++++++++++++++++++++----------------------
 1 file changed, 35 insertions(+), 33 deletions(-)
---
diff --git a/gedit/gedit-commands-file.c b/gedit/gedit-commands-file.c
index 3d9ab22db..75228fad7 100644
--- a/gedit/gedit-commands-file.c
+++ b/gedit/gedit-commands-file.c
@@ -43,13 +43,14 @@
 #include "gedit-statusbar.h"
 #include "gedit-utils.h"
 #include "gedit-file-chooser-dialog.h"
+#include "gedit-file-chooser-open.h"
 #include "gedit-close-confirmation-dialog.h"
 
 /* useful macro */
 #define GBOOLEAN_TO_POINTER(i) (GINT_TO_POINTER ((i) ? 2 : 1))
 #define GPOINTER_TO_BOOLEAN(i) ((gboolean) ((GPOINTER_TO_INT(i) == 2) ? TRUE : FALSE))
 
-#define GEDIT_OPEN_DIALOG_KEY "gedit-open-dialog-key"
+#define GEDIT_FILE_CHOOSER_OPEN_KEY "gedit-file-chooser-open-key"
 #define GEDIT_IS_CLOSING_ALL "gedit-is-closing-all"
 #define GEDIT_NOTEBOOK_TO_CLOSE "gedit-notebook-to-close"
 #define GEDIT_IS_QUITTING "gedit-is-quitting"
@@ -363,9 +364,9 @@ _gedit_cmd_load_files_from_prompt (GeditWindow             *window,
 }
 
 static void
-open_dialog_response_cb (GeditFileChooserDialog *dialog,
-                         gint                    response_id,
-                         GeditWindow            *window)
+file_chooser_open_done_cb (GeditFileChooserOpen *file_chooser,
+                          gboolean              accept,
+                          GeditWindow          *window)
 {
        GSList *files;
        const GtkSourceEncoding *encoding;
@@ -373,24 +374,23 @@ open_dialog_response_cb (GeditFileChooserDialog *dialog,
 
        gedit_debug (DEBUG_COMMANDS);
 
-       if (response_id != GTK_RESPONSE_ACCEPT)
+       if (!accept)
        {
-               gedit_file_chooser_dialog_destroy (dialog);
+               g_object_unref (file_chooser);
                if (window != NULL)
                {
-                       g_object_set_data (G_OBJECT (window), GEDIT_OPEN_DIALOG_KEY, NULL);
+                       g_object_set_data (G_OBJECT (window), GEDIT_FILE_CHOOSER_OPEN_KEY, NULL);
                }
-
                return;
        }
 
-       files = gedit_file_chooser_dialog_get_files (dialog);
-       encoding = gedit_file_chooser_dialog_get_encoding (dialog);
+       files = _gedit_file_chooser_open_get_files (file_chooser);
+       encoding = _gedit_file_chooser_open_get_encoding (file_chooser);
 
-       gedit_file_chooser_dialog_destroy (dialog);
+       g_object_unref (file_chooser);
        if (window != NULL)
        {
-               g_object_set_data (G_OBJECT (window), GEDIT_OPEN_DIALOG_KEY, NULL);
+               g_object_set_data (G_OBJECT (window), GEDIT_FILE_CHOOSER_OPEN_KEY, NULL);
        }
 
        if (window == NULL)
@@ -419,7 +419,7 @@ _gedit_cmd_file_open (GSimpleAction *action,
                       gpointer       user_data)
 {
        GeditWindow *window = NULL;
-       GeditFileChooserDialog *open_dialog;
+       GeditFileChooserOpen *file_chooser;
 
        gedit_debug (DEBUG_COMMANDS);
 
@@ -430,34 +430,31 @@ _gedit_cmd_file_open (GSimpleAction *action,
 
        if (window != NULL)
        {
-               open_dialog = GEDIT_FILE_CHOOSER_DIALOG (g_object_get_data (G_OBJECT (window),
-                                                                           GEDIT_OPEN_DIALOG_KEY));
-               if (open_dialog != NULL)
+               file_chooser = GEDIT_FILE_CHOOSER_OPEN (g_object_get_data (G_OBJECT (window),
+                                                                          GEDIT_FILE_CHOOSER_OPEN_KEY));
+               if (file_chooser != NULL)
                {
-                       gedit_file_chooser_dialog_show (open_dialog);
+                       _gedit_file_chooser_open_show (file_chooser);
                        return;
                }
        }
 
-       /* Translators: "Open Files" is the title of the file chooser window. */
-       open_dialog = gedit_file_chooser_dialog_create (C_("window title", "Open Files"),
-                                                       window != NULL ? GTK_WINDOW (window) : NULL,
-                                                       GEDIT_FILE_CHOOSER_OPEN,
-                                                       _("_Open"),
-                                                       _("_Cancel"));
+       file_chooser = _gedit_file_chooser_open_new ();
 
        if (window != NULL)
        {
                GeditDocument *doc;
                GFile *default_folder = NULL;
 
-               /* The file chooser dialog for opening files is not modal, so
-                * ensure that at most one file chooser is opened per main
-                * window.
+               _gedit_file_chooser_open_set_transient_for (file_chooser, GTK_WINDOW (window));
+
+               /* The file chooser dialog for opening files is not necessarily
+                * modal, so ensure that at most one file chooser is opened per
+                * main window.
                 */
                g_object_set_data_full (G_OBJECT (window),
-                                       GEDIT_OPEN_DIALOG_KEY,
-                                       g_object_ref (open_dialog),
+                                       GEDIT_FILE_CHOOSER_OPEN_KEY,
+                                       g_object_ref (file_chooser),
                                        g_object_unref);
 
                /* Set the current folder */
@@ -481,17 +478,22 @@ _gedit_cmd_file_open (GSimpleAction *action,
 
                if (default_folder != NULL)
                {
-                       gedit_file_chooser_dialog_set_current_folder (open_dialog, default_folder);
+                       gchar *default_folder_uri;
+
+                       default_folder_uri = g_file_get_uri (default_folder);
+                       _gedit_file_chooser_open_set_current_folder_uri (file_chooser, default_folder_uri);
+
                        g_object_unref (default_folder);
+                       g_free (default_folder_uri);
                }
        }
 
-       g_signal_connect (open_dialog,
-                         "response",
-                         G_CALLBACK (open_dialog_response_cb),
+       g_signal_connect (file_chooser,
+                         "done",
+                         G_CALLBACK (file_chooser_open_done_cb),
                          window);
 
-       gedit_file_chooser_dialog_show (open_dialog);
+       _gedit_file_chooser_open_show (file_chooser);
 }
 
 void


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