From 9ff5e05f9c7c30a326d90ab2675c239bf5e62b2b Mon Sep 17 00:00:00 2001 From: Georges Basile Stavracas Neto Date: Tue, 16 Feb 2016 18:12:18 -0200 Subject: [PATCH] app: automatically load resources from base path We don't have to load most of the menus we're currently loading by using the very handy automatic resource loading. This patch fixup so the app loads resources automagically. --- data/calendar.gresource.xml | 5 ++++- data/ui/menus.ui | 4 ++-- src/gcal-application.c | 32 +++++++------------------------- src/gcal-source-dialog.c | 2 +- src/gcal-window.c | 16 ++++++++-------- 5 files changed, 22 insertions(+), 37 deletions(-) diff --git a/data/calendar.gresource.xml b/data/calendar.gresource.xml index 70a5116b..c456eb2a 100644 --- a/data/calendar.gresource.xml +++ b/data/calendar.gresource.xml @@ -4,7 +4,6 @@ ui/calendar-row.ui ui/date-selector.ui ui/edit-dialog.ui - ui/menus.ui ui/online-account-row.ui ui/quick-add-popover.ui ui/search-view.ui @@ -14,4 +13,8 @@ ui/year-view.ui theme/gtk-styles.css + + + ui/menus.ui + diff --git a/data/ui/menus.ui b/data/ui/menus.ui index 3ba78c60..b25f70d7 100644 --- a/data/ui/menus.ui +++ b/data/ui/menus.ui @@ -1,6 +1,6 @@ - +
Add Eve_nt… @@ -25,7 +25,7 @@
- +
Add Eve_nt… diff --git a/src/gcal-application.c b/src/gcal-application.c index 784503f8..1a6304ca 100644 --- a/src/gcal-application.c +++ b/src/gcal-application.c @@ -60,8 +60,6 @@ static void gcal_application_startup (GApplication * static gint gcal_application_command_line (GApplication *app, GApplicationCommandLine *command_line); -static void gcal_application_set_app_menu (GApplication *app); - static void gcal_application_create_new_event (GSimpleAction *new_event, GVariant *parameter, gpointer app); @@ -260,8 +258,6 @@ gcal_application_activate (GApplication *application) GTK_STYLE_PROVIDER_PRIORITY_APPLICATION + 2); } - gcal_application_set_app_menu (application); - if (self->window != NULL) { gtk_window_present (GTK_WINDOW (self->window)); @@ -299,6 +295,12 @@ gcal_application_activate (GApplication *application) static void gcal_application_startup (GApplication *app) { + /* add actions */ + g_action_map_add_action_entries (G_ACTION_MAP (app), + gcal_app_entries, + G_N_ELEMENTS (gcal_app_entries), + app); + G_APPLICATION_CLASS (gcal_application_parent_class)->startup (app); /* We're assuming the application is called as a service only by the shell search system */ @@ -411,27 +413,6 @@ gcal_application_dbus_unregister (GApplication *application, g_free (search_provider_path); } -static void -gcal_application_set_app_menu (GApplication *app) -{ - GtkBuilder *builder; - GMenuModel *appmenu; - - builder = gtk_builder_new (); - gtk_builder_add_from_resource (builder, "/org/gnome/calendar/menus.ui", NULL); - - appmenu = (GMenuModel *)gtk_builder_get_object (builder, "appmenu"); - - g_action_map_add_action_entries (G_ACTION_MAP (app), - gcal_app_entries, - G_N_ELEMENTS (gcal_app_entries), - app); - - gtk_application_set_app_menu (GTK_APPLICATION (app), appmenu); - - g_object_unref (builder); -} - static void gcal_application_create_new_event (GSimpleAction *new_event, GVariant *parameter, @@ -528,6 +509,7 @@ gcal_application_new (void) g_set_application_name ("Calendar"); return g_object_new (gcal_application_get_type (), + "resource-base-path", "/org/gnome/calendar", "application-id", "org.gnome.Calendar", "flags", G_APPLICATION_HANDLES_COMMAND_LINE, NULL); diff --git a/src/gcal-source-dialog.c b/src/gcal-source-dialog.c index cc6a6d7b..ea61d795 100644 --- a/src/gcal-source-dialog.c +++ b/src/gcal-source-dialog.c @@ -1812,7 +1812,7 @@ gcal_source_dialog_constructed (GObject *object) g_action_map_add_action_entries (G_ACTION_MAP (self->action_group), actions, G_N_ELEMENTS (actions), object); // Load the "Add" button menu - builder = gtk_builder_new_from_resource ("/org/gnome/calendar/menus.ui"); + builder = gtk_builder_new_from_resource ("/org/gnome/calendar/gtk/menus.ui"); menu = G_MENU_MODEL (gtk_builder_get_object (builder, "add-source-menu")); gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (self->add_calendar_menu_button), menu); diff --git a/src/gcal-window.c b/src/gcal-window.c index 9bcdf496..8cd8b98a 100644 --- a/src/gcal-window.c +++ b/src/gcal-window.c @@ -1305,6 +1305,12 @@ gcal_window_class_init(GcalWindowClass *klass) static void gcal_window_init (GcalWindow *self) { + /* Setup actions */ + g_action_map_add_action_entries (G_ACTION_MAP (self), + actions, + G_N_ELEMENTS (actions), + self); + gtk_widget_init_template (GTK_WIDGET (self)); /* source dialog */ @@ -1336,19 +1342,13 @@ gcal_window_constructed (GObject *object) g_free (clock_format); g_object_unref (helper_settings); - // Setup actions - g_action_map_add_action_entries (G_ACTION_MAP (object), - actions, - G_N_ELEMENTS (actions), - object); - /* header_bar: menu */ builder = gtk_builder_new (); gtk_builder_add_from_resource (builder, - "/org/gnome/calendar/menus.ui", + "/org/gnome/calendar/gtk/menus.ui", NULL); - winmenu = (GMenuModel *)gtk_builder_get_object (builder, "winmenu"); + winmenu = (GMenuModel *)gtk_builder_get_object (builder, "win-menu"); gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (window->menu_button), winmenu);