[tepl] WindowActionsFile: move tepl-save GAction



commit d89fd550af979476821b27e45c259ea408db3611
Author: Sébastien Wilmet <swilmet gnome org>
Date:   Sun May 3 21:56:26 2020 +0200

    WindowActionsFile: move tepl-save GAction

 tepl/tepl-application-window.c  | 31 -------------------------------
 tepl/tepl-window-actions-file.c | 35 +++++++++++++++++++++++++++++++++++
 2 files changed, 35 insertions(+), 31 deletions(-)
---
diff --git a/tepl/tepl-application-window.c b/tepl/tepl-application-window.c
index 1c2353d..b654f1c 100644
--- a/tepl/tepl-application-window.c
+++ b/tepl/tepl-application-window.c
@@ -128,36 +128,6 @@ G_DEFINE_TYPE_WITH_CODE (TeplApplicationWindow,
                         G_IMPLEMENT_INTERFACE (TEPL_TYPE_TAB_GROUP,
                                                tepl_tab_group_interface_init))
 
-static void
-save_cb (GSimpleAction *save_action,
-        GVariant      *parameter,
-        gpointer       user_data)
-{
-       TeplApplicationWindow *tepl_window = TEPL_APPLICATION_WINDOW (user_data);
-       TeplTab *tab;
-       TeplBuffer *buffer;
-       TeplFile *file;
-       GFile *location;
-
-       tab = tepl_tab_group_get_active_tab (TEPL_TAB_GROUP (tepl_window));
-       g_return_if_fail (tab != NULL);
-
-       buffer = tepl_tab_get_buffer (tab);
-       file = tepl_buffer_get_file (buffer);
-       location = tepl_file_get_location (file);
-
-       if (location != NULL)
-       {
-               tepl_tab_save_async_simple (tab);
-       }
-       else
-       {
-               g_action_group_activate_action (G_ACTION_GROUP (tepl_window->priv->gtk_window),
-                                               "tepl-save-as",
-                                               NULL);
-       }
-}
-
 static void
 save_as_cb (GSimpleAction *save_as_action,
            GVariant      *parameter,
@@ -652,7 +622,6 @@ add_actions (TeplApplicationWindow *tepl_window)
         */
        const GActionEntry entries[] = {
                /* File menu */
-               { "tepl-save", save_cb },
                { "tepl-save-as", save_as_cb },
 
                /* Edit menu */
diff --git a/tepl/tepl-window-actions-file.c b/tepl/tepl-window-actions-file.c
index a41716d..b0d1efb 100644
--- a/tepl/tepl-window-actions-file.c
+++ b/tepl/tepl-window-actions-file.c
@@ -22,6 +22,9 @@
 #include <amtk/amtk.h>
 #include <glib/gi18n-lib.h>
 #include "tepl-abstract-factory.h"
+#include "tepl-buffer.h"
+#include "tepl-file.h"
+#include "tepl-tab.h"
 #include "tepl-tab-group.h"
 
 /* TeplApplicationWindow GActions for the File menu. */
@@ -114,6 +117,37 @@ open_activate_cb (GSimpleAction *open_action,
        gtk_widget_show (file_chooser_dialog);
 }
 
+static void
+save_activate_cb (GSimpleAction *save_action,
+                 GVariant      *parameter,
+                 gpointer       user_data)
+{
+       TeplApplicationWindow *tepl_window = TEPL_APPLICATION_WINDOW (user_data);
+       TeplTab *tab;
+       TeplBuffer *buffer;
+       TeplFile *file;
+       GFile *location;
+
+       tab = tepl_tab_group_get_active_tab (TEPL_TAB_GROUP (tepl_window));
+       g_return_if_fail (tab != NULL);
+
+       buffer = tepl_tab_get_buffer (tab);
+       file = tepl_buffer_get_file (buffer);
+       location = tepl_file_get_location (file);
+
+       if (location != NULL)
+       {
+               tepl_tab_save_async_simple (tab);
+       }
+       else
+       {
+               GtkApplicationWindow *gtk_window;
+
+               gtk_window = tepl_application_window_get_application_window (tepl_window);
+               g_action_group_activate_action (G_ACTION_GROUP (gtk_window), "tepl-save-as", NULL);
+       }
+}
+
 void
 _tepl_window_actions_file_add_actions (TeplApplicationWindow *tepl_window)
 {
@@ -122,6 +156,7 @@ _tepl_window_actions_file_add_actions (TeplApplicationWindow *tepl_window)
        const GActionEntry entries[] = {
                { "tepl-new-file", new_file_activate_cb },
                { "tepl-open", open_activate_cb },
+               { "tepl-save", save_activate_cb },
        };
 
        g_return_if_fail (TEPL_IS_APPLICATION_WINDOW (tepl_window));


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