r20690 - gnucash/trunk/src/gnome-utils - Separate window menu to separate ui file, separate function load function called only when not using MAC_INTEGRATION.

John Ralls jralls at code.gnucash.org
Thu May 26 19:13:45 EDT 2011


Author: jralls
Date: 2011-05-26 19:13:45 -0400 (Thu, 26 May 2011)
New Revision: 20690
Trac: http://svn.gnucash.org/trac/changeset/20690

Modified:
   gnucash/trunk/src/gnome-utils/gnc-main-window.c
   gnucash/trunk/src/gnome-utils/ui/Makefile.am
   gnucash/trunk/src/gnome-utils/ui/gnc-main-window-ui.xml
Log:
Separate window menu to separate ui file, separate function load function called only when not using MAC_INTEGRATION.

Quartz takes care of this on its own, and having Gnucash do it too creates two lists. The old approach, of just ifdeffing away the actions, worked but caused the trace log to fill up with "action missing" errors.

Modified: gnucash/trunk/src/gnome-utils/gnc-main-window.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-main-window.c	2011-05-24 20:35:37 UTC (rev 20689)
+++ gnucash/trunk/src/gnome-utils/gnc-main-window.c	2011-05-26 23:13:45 UTC (rev 20690)
@@ -3221,6 +3221,32 @@
 /* CS: end copied code from gtk+/test/testmerge.c */
 
 static void
+gnc_main_window_window_menu (GncMainWindow *window)
+{
+    GncMainWindowPrivate *priv;
+    guint merge_id;
+#ifdef MAC_INTEGRATION
+    gchar *filename = gnc_gnome_locate_ui_file("gnc-window-menu-ui-quartz.xml");
+#else
+    gchar *filename = gnc_gnome_locate_ui_file("gnc-window-menu-ui.xml");
+#endif
+    GError *error = NULL;
+    g_assert(filename);
+    merge_id = gtk_ui_manager_add_ui_from_file(window->ui_merge, filename,
+					       &error);
+    g_free(filename);
+    g_assert(merge_id);
+#ifndef MAC_INTEGRATION
+    priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+    gtk_action_group_add_radio_actions (priv->action_group,
+                                        radio_entries, n_radio_entries,
+                                        0,
+                                        G_CALLBACK(gnc_main_window_cmd_window_raise),
+                                        window);
+#endif
+};
+
+static void
 gnc_main_window_setup_window (GncMainWindow *window)
 {
     GncMainWindowPrivate *priv;
@@ -3334,7 +3360,7 @@
         g_assert(merge_id != 0);
     }
     g_free(filename);
-
+    gnc_main_window_window_menu(window);
     gnc_gconf_add_notification(G_OBJECT(window), GCONF_GENERAL,
                                gnc_main_window_gconf_changed,
                                GNC_MAIN_WINDOW_NAME);

Modified: gnucash/trunk/src/gnome-utils/ui/Makefile.am
===================================================================
--- gnucash/trunk/src/gnome-utils/ui/Makefile.am	2011-05-24 20:35:37 UTC (rev 20689)
+++ gnucash/trunk/src/gnome-utils/ui/Makefile.am	2011-05-26 23:13:45 UTC (rev 20690)
@@ -1,6 +1,8 @@
 uidir = $(GNC_UI_DIR)
 ui_DATA = \
 	gnc-main-window-ui.xml \
+	gnc-windows-menu-ui.xml \
+	gnc-windows-menu-ui-quartz.xml \
 	osx_accel_map
 
 EXTRA_DIST = $(ui_DATA)

Modified: gnucash/trunk/src/gnome-utils/ui/gnc-main-window-ui.xml
===================================================================
--- gnucash/trunk/src/gnome-utils/ui/gnc-main-window-ui.xml	2011-05-24 20:35:37 UTC (rev 20689)
+++ gnucash/trunk/src/gnome-utils/ui/gnc-main-window-ui.xml	2011-05-26 23:13:45 UTC (rev 20690)
@@ -107,21 +107,8 @@
       <placeholder name="ExtensionsPlaceholder"/>
     </menu>
 
-    <menu name="Windows" action="WindowsAction">
-      <menuitem name="WindowNew"      action="WindowNewAction"/>
-      <menuitem name="WindowMovePage" action="WindowMovePageAction"/>
-      <separator name="ViewSep4"/>
-      <menuitem name="Window0"        action="Window0Action"/>
-      <menuitem name="Window1"        action="Window1Action"/>
-      <menuitem name="Window2"        action="Window2Action"/>
-      <menuitem name="Window3"        action="Window3Action"/>
-      <menuitem name="Window4"        action="Window4Action"/>
-      <menuitem name="Window5"        action="Window5Action"/>
-      <menuitem name="Window6"        action="Window6Action"/>
-      <menuitem name="Window7"        action="Window7Action"/>
-      <menuitem name="Window8"        action="Window8Action"/>
-      <menuitem name="Window9"        action="Window9Action"/>
-      <placeholder name="WindowsPlaceholder"/>
+    <menu name="Windows" action="WindowsAction" >
+      <placeholder name= "WindowPlaceholder"/>
     </menu>
 
     <menu name="Help" action="HelpAction">



More information about the gnucash-changes mailing list