From 3e0d0040b11cccf5c2f860534497c0e3ed0da3a2 Mon Sep 17 00:00:00 2001 From: Cosimo Cecchi Date: Sat, 29 Nov 2014 10:47:21 -0800 Subject: application: move handling of show-file-transfers action Move this together with all the other application actions. --- src/nautilus-application-actions.c | 13 +++++++++++++ src/nautilus-application.c | 7 ++++++- src/nautilus-application.h | 3 +++ src/nautilus-progress-ui-handler.c | 27 ++++++++------------------- src/nautilus-progress-ui-handler.h | 1 + 5 files changed, 31 insertions(+), 20 deletions(-) diff --git a/src/nautilus-application-actions.c b/src/nautilus-application-actions.c index e346d61c9..9e6c3b172 100644 --- a/src/nautilus-application-actions.c +++ b/src/nautilus-application-actions.c @@ -233,6 +233,18 @@ action_search (GSimpleAction *action, g_object_unref (location); } +static void +action_show_file_transfers (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) +{ + NautilusApplication *application = user_data; + NautilusProgressUIHandler *progress_handler; + + progress_handler = nautilus_application_get_progress_ui_handler (application); + nautilus_progress_ui_handler_ensure_window (progress_handler); +} + static GActionEntry app_entries[] = { { "new-window", action_new_window, NULL, NULL, NULL }, { "connect-to-server", action_connect_to_server, NULL, NULL, NULL }, @@ -246,6 +258,7 @@ static GActionEntry app_entries[] = { { "kill", action_kill, NULL, NULL, NULL }, { "open-desktop", action_open_desktop, NULL, NULL, NULL }, { "close-desktop", action_close_desktop, NULL, NULL, NULL }, + { "show-file-transfers", action_show_file_transfers, NULL, NULL, NULL } }; void diff --git a/src/nautilus-application.c b/src/nautilus-application.c index ba7489fcd..346fa3d82 100644 --- a/src/nautilus-application.c +++ b/src/nautilus-application.c @@ -37,7 +37,6 @@ #include "nautilus-freedesktop-dbus.h" #include "nautilus-image-properties-page.h" #include "nautilus-previewer.h" -#include "nautilus-progress-ui-handler.h" #include "nautilus-self-check-functions.h" #include "nautilus-shell-search-provider.h" #include "nautilus-window.h" @@ -90,6 +89,12 @@ struct _NautilusApplicationPriv { NautilusShellSearchProvider *search_provider; }; +NautilusProgressUIHandler * +nautilus_application_get_progress_ui_handler (NautilusApplication *application) +{ + return application->priv->progress_handler; +} + NautilusBookmarkList * nautilus_application_get_bookmarks (NautilusApplication *application) { diff --git a/src/nautilus-application.h b/src/nautilus-application.h index 85a0020b0..991b14333 100644 --- a/src/nautilus-application.h +++ b/src/nautilus-application.h @@ -27,6 +27,7 @@ #include #include "nautilus-bookmark-list.h" +#include "nautilus-progress-ui-handler.h" #include "nautilus-window.h" #define NAUTILUS_DESKTOP_ICON_VIEW_IID "OAFIID:Nautilus_File_Manager_Desktop_Canvas_View" @@ -75,4 +76,6 @@ void nautilus_application_edit_bookmarks (NautilusApplication *application, GtkWidget * nautilus_application_connect_server (NautilusApplication *application, NautilusWindow *window); +NautilusProgressUIHandler * nautilus_application_get_progress_ui_handler (NautilusApplication *application); + #endif /* __NAUTILUS_APPLICATION_H__ */ diff --git a/src/nautilus-progress-ui-handler.c b/src/nautilus-progress-ui-handler.c index 645a0f0f5..52af62aa4 100644 --- a/src/nautilus-progress-ui-handler.c +++ b/src/nautilus-progress-ui-handler.c @@ -73,15 +73,6 @@ status_icon_activate_cb (GtkStatusIcon *icon, gtk_window_present (GTK_WINDOW (self->priv->progress_window)); } -static void -notification_show_details_cb (GSimpleAction *action, - GVariant *parameter, - gpointer user_data) -{ - NautilusProgressUIHandler *self = user_data; - gtk_window_present (GTK_WINDOW (self->priv->progress_window)); -} - static void progress_ui_handler_ensure_status_icon (NautilusProgressUIHandler *self) { @@ -112,7 +103,7 @@ progress_ui_handler_update_notification (NautilusProgressUIHandler *self) notification = g_notification_new (_("File Operations")); g_notification_add_button (notification, _("Show Details"), - "app.show-progress-window"); + "app.show-file-transfers"); body = g_strdup_printf (ngettext ("%'d file operation active", "%'d file operations active", @@ -431,18 +422,9 @@ server_has_persistence (void) static void nautilus_progress_ui_handler_init (NautilusProgressUIHandler *self) { - GSimpleAction *show_details_action; - self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, NAUTILUS_TYPE_PROGRESS_UI_HANDLER, NautilusProgressUIHandlerPriv); - show_details_action = g_simple_action_new ("show-progress-window", NULL); - g_action_map_add_action (G_ACTION_MAP (g_application_get_default ()), - G_ACTION (show_details_action)); - g_signal_connect (show_details_action, "activate", - G_CALLBACK (notification_show_details_cb), self); - g_object_unref (show_details_action); - self->priv->manager = nautilus_progress_info_manager_new (); g_signal_connect (self->priv->manager, "new-progress-info", G_CALLBACK (new_progress_info_cb), self); @@ -464,3 +446,10 @@ nautilus_progress_ui_handler_new (void) { return g_object_new (NAUTILUS_TYPE_PROGRESS_UI_HANDLER, NULL); } + +void +nautilus_progress_ui_handler_ensure_window (NautilusProgressUIHandler *self) +{ + if (self->priv->active_infos > 0) + gtk_window_present (GTK_WINDOW (self->priv->progress_window)); +} diff --git a/src/nautilus-progress-ui-handler.h b/src/nautilus-progress-ui-handler.h index 35f22e41f..4109b68b2 100644 --- a/src/nautilus-progress-ui-handler.h +++ b/src/nautilus-progress-ui-handler.h @@ -57,6 +57,7 @@ typedef struct { GType nautilus_progress_ui_handler_get_type (void); NautilusProgressUIHandler * nautilus_progress_ui_handler_new (void); +void nautilus_progress_ui_handler_ensure_window (NautilusProgressUIHandler *self); G_END_DECLS -- cgit v1.2.1