← Back to team overview

ayatana-commits team mailing list archive

[Merge] lp:~ted/dbusmenu/remove-revision-from-xml into lp:dbusmenu

 

Ted Gould has proposed merging lp:~ted/dbusmenu/remove-revision-from-xml into lp:dbusmenu with lp:~ted/dbusmenu/bug510887 as a prerequisite.

    Requested reviews:
    DBus Menu Team (dbusmenu-team)


This removes the revision property from the XML file representing the layout.
-- 
https://code.launchpad.net/~ted/dbusmenu/remove-revision-from-xml/+merge/17858
Your team ayatana-commits is subscribed to branch lp:dbusmenu.
=== modified file 'libdbusmenu-glib/client.c'
--- libdbusmenu-glib/client.c	2010-01-07 05:27:49 +0000
+++ libdbusmenu-glib/client.c	2010-01-21 23:29:11 +0000
@@ -514,34 +514,6 @@
 	return;
 }
 
-/* Get the "revision" attribute of the node, parse it and
-   return it.  Also we're checking to ensure the node
-   is a 'menu' here. */
-static gint
-parse_node_get_revision (xmlNodePtr node)
-{
-	if (g_strcmp0((gchar *)node->name, "menu") != 0) {
-		/* This kills some nodes early */
-		g_warning("XML Node is not 'menu' it is '%s'", node->name);
-		return 0;
-	}
-
-	xmlAttrPtr attrib;
-	for (attrib = node->properties; attrib != NULL; attrib = attrib->next) {
-		if (g_strcmp0((gchar *)attrib->name, "revision") == 0) {
-			if (attrib->children != NULL) {
-				guint revision = (guint)g_ascii_strtoull((gchar *)attrib->children->content, NULL, 10);
-				/* g_debug ("Found ID: %d", id); */
-				return revision;
-			}
-			break;
-		}
-	}
-
-	g_warning("Unable to find a revision on the node");
-	return 0;
-}
-
 /* Get the ID attribute of the node, parse it and
    return it.  Also we're checking to ensure the node
    is a 'menu' here. */
@@ -764,7 +736,6 @@
 	xmldoc = xmlReadMemory(layout, g_utf8_strlen(layout, 16*1024), "dbusmenu.xml", NULL, 0);
 
 	xmlNodePtr root = xmlDocGetRootElement(xmldoc);
-	gint revision = parse_node_get_revision(root);
 
 	DbusmenuMenuitem * oldroot = priv->root;
 	priv->root = parse_layout_xml(client, root, priv->root, NULL, priv->menuproxy);
@@ -781,7 +752,7 @@
 		g_signal_emit(G_OBJECT(client), signals[ROOT_CHANGED], 0, priv->root, TRUE);
 	}
 
-	return revision;
+	return 1;
 }
 
 /* When the layout property returns, here's where we take care of that. */

=== modified file 'libdbusmenu-glib/dbus-menu.xml'
--- libdbusmenu-glib/dbus-menu.xml	2009-12-24 10:31:16 +0000
+++ libdbusmenu-glib/dbus-menu.xml	2010-01-21 23:29:11 +0000
@@ -50,13 +50,13 @@
 
 XML syntax:
 
-<menu id="1" revision="2"> # Root container
-  <menu id="2" revision="2"> # First level menu, for example "File"
-    <menu id="3" revision="2"/> ~ Second level menu, for example "Open"
-    <menu id="4" revision="3"/>
+<menu id="1"> # Root container
+  <menu id="2"> # First level menu, for example "File"
+    <menu id="3"/> ~ Second level menu, for example "Open"
+    <menu id="4"/>
     ...
   </menu>
-  <menu id="5" revision="2"> # Another first level menu, say "Edit"
+  <menu id="5"> # Another first level menu, say "Edit"
     ...
   </menu>
   ...

=== modified file 'libdbusmenu-glib/menuitem-private.h'
--- libdbusmenu-glib/menuitem-private.h	2009-11-13 18:02:08 +0000
+++ libdbusmenu-glib/menuitem-private.h	2010-01-21 23:29:11 +0000
@@ -33,7 +33,7 @@
 
 G_BEGIN_DECLS
 
-void dbusmenu_menuitem_buildxml (DbusmenuMenuitem * mi, GPtrArray * array, gint revision);
+void dbusmenu_menuitem_buildxml (DbusmenuMenuitem * mi, GPtrArray * array);
 
 G_END_DECLS
 

=== modified file 'libdbusmenu-glib/menuitem.c'
--- libdbusmenu-glib/menuitem.c	2010-01-21 23:29:11 +0000
+++ libdbusmenu-glib/menuitem.c	2010-01-21 23:29:11 +0000
@@ -1047,7 +1047,6 @@
 	dbusmenu_menuitem_buildxml:
 	@mi: #DbusmenuMenuitem to represent in XML
 	@array: A list of string that will be turned into an XML file
-	@revision: The revision of the layout to embed in the XML
 
 	This function will add strings to the array @array.  It will put
 	at least one entry if this menu item has no children.  If it has
@@ -1056,7 +1055,7 @@
 	children to place their own tags in the array in between those two.
 */
 void
-dbusmenu_menuitem_buildxml (DbusmenuMenuitem * mi, GPtrArray * array, gint revision)
+dbusmenu_menuitem_buildxml (DbusmenuMenuitem * mi, GPtrArray * array)
 {
 	g_return_if_fail(DBUSMENU_IS_MENUITEM(mi));
 
@@ -1066,13 +1065,12 @@
 	}
 
 	GList * children = dbusmenu_menuitem_get_children(mi);
-	/* TODO: Only put revision info in the root node.  Save some bandwidth. */
 	if (children == NULL) {
-		g_ptr_array_add(array, g_strdup_printf("<menu id=\"%d\" revision=\"%d\" />", id, revision));
+		g_ptr_array_add(array, g_strdup_printf("<menu id=\"%d\"/>", id));
 	} else {
-		g_ptr_array_add(array, g_strdup_printf("<menu id=\"%d\" revision=\"%d\">", id, revision));
+		g_ptr_array_add(array, g_strdup_printf("<menu id=\"%d\">", id));
 		for ( ; children != NULL; children = children->next) {
-			dbusmenu_menuitem_buildxml(DBUSMENU_MENUITEM(children->data), array, revision);
+			dbusmenu_menuitem_buildxml(DBUSMENU_MENUITEM(children->data), array);
 		}
 		g_ptr_array_add(array, g_strdup("</menu>"));
 	}

=== modified file 'libdbusmenu-glib/server.c'
--- libdbusmenu-glib/server.c	2009-12-24 10:31:16 +0000
+++ libdbusmenu-glib/server.c	2010-01-21 23:29:11 +0000
@@ -376,13 +376,13 @@
 	if (parent == 0) {
 		if (priv->root == NULL) {
 			/* g_debug("Getting layout without root node!"); */
-			g_ptr_array_add(xmlarray, g_strdup_printf("<menu revision=\"%d\" />", priv->layout_revision));
+			g_ptr_array_add(xmlarray, g_strdup("<menu/>"));
 		} else {
-			dbusmenu_menuitem_buildxml(priv->root, xmlarray, priv->layout_revision);
+			dbusmenu_menuitem_buildxml(priv->root, xmlarray);
 		}
 	} else {
 		DbusmenuMenuitem * item = dbusmenu_menuitem_find_id(priv->root, parent);
-		dbusmenu_menuitem_buildxml(item, xmlarray, priv->layout_revision);
+		dbusmenu_menuitem_buildxml(item, xmlarray);
 	}
 	g_ptr_array_add(xmlarray, NULL);
 


Follow ups