[glib/wip/menus: 4/18] Remove g_menu_item_unset_attribute



commit 91641a14533eb5aa5ddf1d3e9a33f7b3ac68e65b
Author: Ryan Lortie <desrt desrt ca>
Date:   Mon Jul 11 01:31:07 2011 +0200

    Remove g_menu_item_unset_attribute
    
    Use g_menu_item_set_attribute to NULL instead
    
    Also, modify g_menu_item_set_link to support NULL for unset

 gio/gmenu.c |   47 +++++++++++++++++++++++++++--------------------
 1 files changed, 27 insertions(+), 20 deletions(-)
---
diff --git a/gio/gmenu.c b/gio/gmenu.c
index a86d9d2..1e3e7f5 100644
--- a/gio/gmenu.c
+++ b/gio/gmenu.c
@@ -341,11 +341,13 @@ g_menu_item_set_attribute_value (GMenuItem *menu_item,
 {
   g_return_if_fail (G_IS_MENU_ITEM (menu_item));
   g_return_if_fail (attribute_quark != 0);
-  g_return_if_fail (value != NULL);
 
   g_menu_item_clear_cow (menu_item);
 
-  g_hash_table_insert (menu_item->attributes, GINT_TO_POINTER (attribute_quark), g_variant_ref_sink (value));
+  if (value != NULL)
+    g_hash_table_insert (menu_item->attributes, GINT_TO_POINTER (attribute), g_variant_ref_sink (value));
+  else
+    g_hash_table_remove (menu_item->attributes, GINT_TO_POINTER (attribute));
 }
 
 void
@@ -355,25 +357,21 @@ g_menu_item_set_attribute (GMenuItem   *menu_item,
                            ...)
 {
   GVariant *value;
-  va_list ap;
 
-  va_start (ap, format_string);
-  value = g_variant_new_va (format_string, NULL, &ap);
-  va_end (ap);
+  if (format_string != NULL)
+    {
+      va_list ap;
 
-  g_menu_item_set_attribute_value (menu_item, attribute_quark, value);
-}
+      va_start (ap, format_string);
+      value = g_variant_new_va (format_string, NULL, &ap);
+      va_end (ap);
+    }
+  else
+    value = NULL;
 
-void
-g_menu_item_unset_attribute (GMenuItem *menu_item,
-                             GQuark     attribute_quark)
-{
-  g_hash_table_remove (menu_item->attributes, GINT_TO_POINTER (attribute_quark));
+  g_menu_item_set_attribute_value (menu_item, attribute, value);
 }
 
-
-
-
 void
 g_menu_item_set_link (GMenuItem  *menu_item,
                       GQuark      link_quark,
@@ -381,18 +379,27 @@ g_menu_item_set_link (GMenuItem  *menu_item,
 {
   g_return_if_fail (G_IS_MENU_ITEM (menu_item));
   g_return_if_fail (link_quark != 0);
-  g_return_if_fail (link != NULL);
 
   g_menu_item_clear_cow (menu_item);
 
-  g_hash_table_insert (menu_item->links, GINT_TO_POINTER (link_quark), g_object_ref (link));
+  if (model != NULL)
+    g_hash_table_insert (menu_item->links, GINT_TO_POINTER (link), g_object_ref (model));
+  else
+    g_hash_table_remove (menu_item->links, GINT_TO_POINTER (link));
 }
 
 void
 g_menu_item_set_label (GMenuItem   *menu_item,
                        const gchar *label)
 {
-  g_menu_item_set_attribute (menu_item, G_MENU_ATTRIBUTE_LABEL, "s", label);
+  GVariant *value;
+
+  if (label != NULL)
+    value = g_variant_new_string (label);
+  else
+    value = NULL;
+
+  g_menu_item_set_attribute_value (menu_item, G_MENU_ATTRIBUTE_LABEL, value);
 }
 
 void
@@ -414,7 +421,7 @@ g_menu_item_set_action (GMenuItem   *menu_item,
                         const gchar *action)
 {
   g_menu_item_set_attribute (menu_item, G_MENU_ATTRIBUTE_ACTION, "s", action);
-  g_menu_item_unset_attribute (menu_item, G_MENU_ATTRIBUTE_TARGET);
+  g_menu_item_set_attribute (menu_item, G_MENU_ATTRIBUTE_TARGET, NULL);
 }
 
 void



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]