[gthumb] terminal: enable only for local folders



commit 0379238896478f272991347f44321adb8ed8e828
Author: Paolo Bacchilega <paobac src gnome org>
Date:   Sun May 30 11:08:18 2021 +0200

    terminal: enable only for local folders

 extensions/terminal/callbacks.c | 21 +++++++++++++++++++++
 extensions/terminal/callbacks.h |  1 +
 extensions/terminal/main.c      |  1 +
 3 files changed, 23 insertions(+)
---
diff --git a/extensions/terminal/callbacks.c b/extensions/terminal/callbacks.c
index da383bd0..fdae153e 100644
--- a/extensions/terminal/callbacks.c
+++ b/extensions/terminal/callbacks.c
@@ -97,6 +97,7 @@ terminal__gth_browser_folder_tree_popup_before_cb (GthBrowser    *browser,
                                        gth_menu_manager_append_entries (gth_browser_get_menu_manager 
(browser, GTH_BROWSER_MENU_MANAGER_FOLDER_OPEN_ACTIONS),
                                                                         folder_context_open_entries,
                                                                         G_N_ELEMENTS 
(folder_context_open_entries));
+               terminal__gth_browser_update_sensitivity_cb (browser);
        }
        else {
                if (data->folder_context_open_id != 0)
@@ -104,3 +105,23 @@ terminal__gth_browser_folder_tree_popup_before_cb (GthBrowser    *browser,
                data->folder_context_open_id = 0;
        }
 }
+
+
+void
+terminal__gth_browser_update_sensitivity_cb (GthBrowser *browser)
+{
+       BrowserData   *data;
+       GthFileData   *folder;
+
+       data = g_object_get_data (G_OBJECT (browser), BROWSER_DATA_KEY);
+       g_return_if_fail (data != NULL);
+
+       folder = gth_browser_get_folder_popup_file_data (browser);
+       gth_window_enable_action (GTH_WINDOW (browser),
+                                 "folder-context-open-in-terminal",
+                                 ((folder != NULL)
+                                  && _g_file_has_scheme (folder->file, "file")
+                                  && (g_file_info_get_file_type (folder->info) == G_FILE_TYPE_DIRECTORY)));
+
+       _g_object_unref (folder);
+}
diff --git a/extensions/terminal/callbacks.h b/extensions/terminal/callbacks.h
index c88c8089..8825ed25 100644
--- a/extensions/terminal/callbacks.h
+++ b/extensions/terminal/callbacks.h
@@ -28,5 +28,6 @@ void  terminal__gth_browser_construct_cb                      (GthBrowser     *browser);
 void   terminal__gth_browser_folder_tree_popup_before_cb       (GthBrowser     *browser,
                                                                 GthFileSource  *file_source,
                                                                 GthFileData    *folder);
+void   terminal__gth_browser_update_sensitivity_cb             (GthBrowser     *browser);
 
 #endif /* CALLBACKS_H */
diff --git a/extensions/terminal/main.c b/extensions/terminal/main.c
index 385e6d79..f2258128 100644
--- a/extensions/terminal/main.c
+++ b/extensions/terminal/main.c
@@ -32,6 +32,7 @@ gthumb_extension_activate (void)
 {
        gth_hook_add_callback ("gth-browser-construct", 10, G_CALLBACK (terminal__gth_browser_construct_cb), 
NULL);
        gth_hook_add_callback ("gth-browser-folder-tree-popup-before", 10, G_CALLBACK 
(terminal__gth_browser_folder_tree_popup_before_cb), NULL);
+       gth_hook_add_callback ("gth-browser-update-sensitivity", 10, G_CALLBACK 
(terminal__gth_browser_update_sensitivity_cb), NULL);
 }
 
 


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