[gedit] Use automatic gtk menus
- From: Paolo Borelli <pborelli src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gedit] Use automatic gtk menus
- Date: Mon, 28 Jul 2014 18:50:28 +0000 (UTC)
commit fff5bd6097acef9c49f9da27650dc185333ae4e0
Author: Paolo Borelli <pborelli gnome org>
Date: Mon Jul 28 20:38:12 2014 +0200
Use automatic gtk menus
gedit/gedit-app.c | 62 ++++++--------------
gedit/resources/gedit.gresource.xml | 2 +-
gedit/resources/{ui/gedit-menu.ui => gtk/menus.ui} | 2 +-
po/POTFILES.in | 2 +-
4 files changed, 22 insertions(+), 46 deletions(-)
---
diff --git a/gedit/gedit-app.c b/gedit/gedit-app.c
index ef43d5a..f29c76c 100644
--- a/gedit/gedit-app.c
+++ b/gedit/gedit-app.c
@@ -422,22 +422,6 @@ load_accels (void)
}
}
-static gpointer
-get_builder_object_ref (GtkBuilder *builder,
- const gchar *name)
-{
- gpointer ret;
-
- ret = gtk_builder_get_object (builder, name);
-
- if (ret != NULL)
- {
- g_object_ref_sink (ret);
- }
-
- return ret;
-}
-
static void
theme_changed (GtkSettings *settings,
GParamSpec *pspec,
@@ -490,6 +474,17 @@ setup_theme_extensions (void)
theme_changed (settings, NULL, NULL);
}
+static GMenuModel *
+get_menu_model (GeditApp *app,
+ const char *id)
+{
+ GMenu *menu;
+
+ menu = gtk_application_get_menu_by_id (GTK_APPLICATION (app), id);
+
+ return menu ? G_MENU_MODEL (g_object_ref_sink (menu)) : NULL;
+}
+
static void
gedit_app_startup (GApplication *application)
{
@@ -500,7 +495,6 @@ gedit_app_startup (GApplication *application)
GError *error = NULL;
GFile *css_file;
GtkCssProvider *provider;
- GtkBuilder *builder;
G_APPLICATION_CLASS (gedit_app_parent_class)->startup (application);
@@ -527,7 +521,7 @@ gedit_app_startup (GApplication *application)
gtk_icon_theme_append_search_path (gtk_icon_theme_get_default (), icon_dir);
g_free (icon_dir);
- setup_theme_extensions ();
+ setup_theme_extensions ();
#ifndef ENABLE_GVFS_METADATA
gedit_metadata_manager_init ();
@@ -546,37 +540,19 @@ gedit_app_startup (GApplication *application)
G_N_ELEMENTS (app_entries),
app);
- /* load menu model */
- builder = gtk_builder_new ();
- if (!gtk_builder_add_from_resource (builder,
- "/org/gnome/gedit/ui/gedit-menu.ui",
- &error))
+ /* menus */
+ if (gedit_app_has_app_menu (app))
{
- g_warning ("loading menu builder file: %s", error->message);
- g_error_free (error);
+ app->priv->window_menu = get_menu_model (app, "gear_menu_withappmenu");
}
else
{
- if (gedit_app_has_app_menu (app))
- {
- GMenuModel *appmenu;
-
- appmenu = G_MENU_MODEL (gtk_builder_get_object (builder, "appmenu"));
- gtk_application_set_app_menu (GTK_APPLICATION (application), appmenu);
-
- app->priv->window_menu = G_MENU_MODEL (get_builder_object_ref (builder,
"gear_menu_withappmenu"));
- }
- else
- {
- app->priv->window_menu = G_MENU_MODEL (get_builder_object_ref (builder,
"gear_menu_noappmenu"));
- }
-
- app->priv->notebook_menu = G_MENU_MODEL (get_builder_object_ref (builder, "notebook_menu"));
- app->priv->tab_width_menu = G_MENU_MODEL (get_builder_object_ref (builder, "tab_width_menu"));
- app->priv->line_col_menu = G_MENU_MODEL (get_builder_object_ref (builder, "line_col_menu"));
+ app->priv->window_menu = get_menu_model (app, "gear_menu_noappmenu");
}
- g_object_unref (builder);
+ app->priv->notebook_menu = get_menu_model (app, "notebook_menu");
+ app->priv->tab_width_menu = get_menu_model (app, "tab_width_menu");
+ app->priv->line_col_menu = get_menu_model (app, "line_col_menu");
/* Accelerators */
gtk_application_add_accelerator (GTK_APPLICATION (application),
diff --git a/gedit/resources/gedit.gresource.xml b/gedit/resources/gedit.gresource.xml
index 83c2806..74432d0 100644
--- a/gedit/resources/gedit.gresource.xml
+++ b/gedit/resources/gedit.gresource.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<gresources>
<gresource prefix="/org/gnome/gedit">
- <file preprocess="xml-stripblanks">ui/gedit-menu.ui</file>
+ <file preprocess="xml-stripblanks">gtk/menus.ui</file>
<file preprocess="xml-stripblanks">ui/gedit-encodings-dialog.ui</file>
<file preprocess="xml-stripblanks">ui/gedit-preferences-dialog.ui</file>
<file preprocess="xml-stripblanks">ui/gedit-replace-dialog.ui</file>
diff --git a/gedit/resources/ui/gedit-menu.ui b/gedit/resources/gtk/menus.ui
similarity index 99%
rename from gedit/resources/ui/gedit-menu.ui
rename to gedit/resources/gtk/menus.ui
index acfdca0..a9ac272 100644
--- a/gedit/resources/ui/gedit-menu.ui
+++ b/gedit/resources/gtk/menus.ui
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<interface>
<!-- interface-requires gtk+ 3.0 -->
- <menu id="appmenu">
+ <menu id="app-menu">
<section>
<attribute name="id">app-commands-section</attribute>
<item>
diff --git a/po/POTFILES.in b/po/POTFILES.in
index bd1b783..07d38d7 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -36,10 +36,10 @@ gedit/gedit-utils.c
gedit/gedit-view.c
gedit/gedit-view-frame.c
gedit/gedit-window.c
+[type: gettext/glade]gedit/resources/gtk/menus.ui
[type: gettext/glade]gedit/resources/ui/gedit-encodings-dialog.ui
[type: gettext/glade]gedit/resources/ui/gedit-highlight-mode-dialog.ui
[type: gettext/glade]gedit/resources/ui/gedit-highlight-mode-selector.ui
-[type: gettext/glade]gedit/resources/ui/gedit-menu.ui
[type: gettext/glade]gedit/resources/ui/gedit-open-document-selector.ui
[type: gettext/glade]gedit/resources/ui/gedit-preferences-dialog.ui
[type: gettext/glade]gedit/resources/ui/gedit-print-preferences.ui
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]