[Goodies-commits] r1771 - in xfce-menu/trunk: . libxfce4menu tests

Jannis Pohlmann jannis at xfce.org
Mon Jul 17 13:44:18 CEST 2006


Author: jannis
Date: 2006-07-17 11:44:15 +0000 (Mon, 17 Jul 2006)
New Revision: 1771

Added:
   xfce-menu/trunk/ChangeLog
Modified:
   xfce-menu/trunk/libxfce4menu/xfce-menu.c
   xfce-menu/trunk/libxfce4menu/xfce-menu.h
   xfce-menu/trunk/tests/load-root-menu-test.c
Log:
	* libxfce4menu/xfce-menu.{c,h}: Implemented the following elements:
	  elements: <DirectoryDir>, <DefaultDirectoryDirs>, 
	  <OnlyUnallocated>, <NotOnlyUnallocated>, <Deleted>, <NotDeleted>.
	  
	  Handle <Directory> differently, as we need to parse the whole menu
	  before we can lookup the directory file - therefor XfceMenuParseInfo
	  has been added, which will be used to store temporary information
	  in order to resolve things after parsing the menu.
	  
	  Abort setting properties if new values are equal to the old ones.
	* tests/load-root-menu-test.c: Display only_unallocated, delete and
	  directory_dirs information.

Added: xfce-menu/trunk/ChangeLog
===================================================================
--- xfce-menu/trunk/ChangeLog	                        (rev 0)
+++ xfce-menu/trunk/ChangeLog	2006-07-17 11:44:15 UTC (rev 1771)
@@ -0,0 +1,14 @@
+2006-07-17	Jannis Pohlmann <jannis at xfce.org>
+
+	* libxfce4menu/xfce-menu.{c,h}: Implemented the following elements:
+	  elements: <DirectoryDir>, <DefaultDirectoryDirs>, 
+	  <OnlyUnallocated>, <NotOnlyUnallocated>, <Deleted>, <NotDeleted>.
+	  
+	  Handle <Directory> differently, as we need to parse the whole menu
+	  before we can lookup the directory file - therefor XfceMenuParseInfo
+	  has been added, which will be used to store temporary information
+	  in order to resolve things after parsing the menu.
+	  
+	  Abort setting properties if new values are equal to the old ones.
+	* tests/load-root-menu-test.c: Display only_unallocated, delete and
+	  directory_dirs information.

Modified: xfce-menu/trunk/libxfce4menu/xfce-menu.c
===================================================================
--- xfce-menu/trunk/libxfce4menu/xfce-menu.c	2006-07-16 22:01:01 UTC (rev 1770)
+++ xfce-menu/trunk/libxfce4menu/xfce-menu.c	2006-07-17 11:44:15 UTC (rev 1771)
@@ -90,6 +90,7 @@
   XFCE_MENU_PARSE_NODE_TYPE_DIRECTORY,
   XFCE_MENU_PARSE_NODE_TYPE_APP_DIR,
   XFCE_MENU_PARSE_NODE_TYPE_LEGACY_DIR,
+  XFCE_MENU_PARSE_NODE_TYPE_DIRECTORY_DIR,
 
 } XfceMenuParseNodeType;
 
@@ -119,45 +120,61 @@
   PROP_FILENAME,
   PROP_NAME,
   PROP_DIRECTORY,
+  PROP_DIRECTORY_DIRS, /* TODO */
+  PROP_LEGACY_DIRS, /* TODO */
   PROP_APP_DIRS, /* TODO Implement methods for this! */
+  PROP_ONLY_UNALLOCATED,
+  PROP_DELETED,
 };
 
 
 
-static void xfce_menu_class_init              (XfceMenuClass       *klass);
-static void xfce_menu_instance_init           (XfceMenu            *menu);
-static void xfce_menu_finalize                (GObject             *object);
-static void xfce_menu_get_property            (GObject             *object,
-                                               guint                prop_id,
-                                               GValue              *value,
-                                               GParamSpec          *pspec);
-static void xfce_menu_set_property            (GObject             *object,
-                                               guint                prop_id,
-                                               const GValue        *value,
-                                               GParamSpec          *pspec);
+static void xfce_menu_class_init                    (XfceMenuClass       *klass);
+static void xfce_menu_instance_init                 (XfceMenu            *menu);
+static void xfce_menu_finalize                      (GObject             *object);
+static void xfce_menu_get_property                  (GObject             *object,
+                                                     guint                prop_id,
+                                                     GValue              *value,
+                                                     GParamSpec          *pspec);
+static void xfce_menu_set_property                  (GObject             *object,
+                                                     guint                prop_id,
+                                                     const GValue        *value,
+                                                     GParamSpec          *pspec);
 
-static void xfce_menu_load                    (XfceMenu            *menu);
-static void xfce_menu_start_element           (GMarkupParseContext *context,
-                                               const gchar         *element_name,
-                                               const gchar        **attribute_names,
-                                               const gchar        **attribute_values,
-                                               gpointer             user_data,
-                                               GError             **error);
-static void xfce_menu_characters              (GMarkupParseContext *context,
-                                               const gchar         *text,
-                                               gsize                text_len,
-                                               gpointer             user_data,
-                                               GError             **error);
+static void xfce_menu_load                          (XfceMenu            *menu);
+static void xfce_menu_start_element                 (GMarkupParseContext *context,
+                                                     const gchar         *element_name,
+                                                     const gchar        **attribute_names,
+                                                     const gchar        **attribute_values,
+                                                     gpointer             user_data,
+                                                     GError             **error);
+static void xfce_menu_characters                    (GMarkupParseContext *context,
+                                                     const gchar         *text,
+                                                     gsize                text_len,
+                                                     gpointer             user_data,
+                                                     GError             **error);
+static void xfce_menu_set_parse_info_directory_name (XfceMenu            *menu,
+                                                     const gchar         *name);
 
-static void xfce_menu_append_app_dir          (XfceMenu            *menu,
-                                               const gchar         *dir);
-static void xfce_menu_append_legacy_dir       (XfceMenu            *menu,
-                                               const gchar         *dir);
-static void xfce_menu_append_kde_legacy_dirs  (XfceMenu            *menu);
-static void xfce_menu_append_default_app_dirs (XfceMenu            *menu);
+static void xfce_menu_add_directory_dir             (XfceMenu            *menu,
+                                                     const gchar         *dir);
+static void xfce_menu_add_default_directory_dirs    (XfceMenu            *menu);
+static void xfce_menu_add_app_dir                   (XfceMenu            *menu,
+                                                     const gchar         *dir);
+static void xfce_menu_add_legacy_dir                (XfceMenu            *menu,
+                                                     const gchar         *dir);
+static void xfce_menu_add_kde_legacy_dirs           (XfceMenu            *menu);
+static void xfce_menu_add_default_app_dirs          (XfceMenu            *menu);
 
 
 
+typedef struct _XfceMenuParseInfo
+{
+  /* Directory name */
+  gchar *directory_name;
+
+} XfceMenuParseInfo;
+
 struct _XfceMenuPrivate
 {
   /* Menu filename */
@@ -175,11 +192,23 @@
   /* Parent menu */
   XfceMenu          *parent;
 
+  /* Directory dirs */
+  GSList            *directory_dirs;
+
   /* Legacy dirs */
   GSList            *legacy_dirs;
 
   /* App dirs */
   GSList            *app_dirs;
+
+  /* Only include desktop entries not used in other menus */
+  gboolean           only_unallocated;
+
+  /* Whether this menu should be ignored or not */
+  gboolean           deleted;
+
+  /* Parse information (used for resolving) */
+  XfceMenuParseInfo *parse_info;
 };
 
 struct _XfceMenuClass
@@ -265,7 +294,7 @@
    * The name of the menu.
    **/
   g_object_class_install_property (gobject_class,
-                                   PROP_FILENAME,
+                                   PROP_NAME,
                                    g_param_spec_string ("name",
                                                         _("Name"),
                                                         _("Menu name"),
@@ -278,12 +307,39 @@
    * The directory entry associated with this menu. 
    **/
   g_object_class_install_property (gobject_class,
-                                   PROP_FILENAME,
+                                   PROP_DIRECTORY,
                                    g_param_spec_object ("directory",
                                                         _("Directory"),
                                                         _("Directory entry associated with this menu"),
                                                         XFCE_TYPE_MENU_DIRECTORY,
                                                         EXO_PARAM_READWRITE));
+
+  /**
+   * XfceMenu:only-unallocated:
+   *
+   * Whether this menu should only contain desktop entries not used by other
+   * menus.
+   **/
+  g_object_class_install_property (gobject_class,
+                                   PROP_ONLY_UNALLOCATED,
+                                   g_param_spec_boolean ("only-unallocated",
+                                                        _("Only unallocated"),
+                                                        _("Whether this menu only contains unallocated entries"),
+                                                        FALSE,
+                                                        EXO_PARAM_READWRITE));
+
+  /**
+   * XfceMenu:deleted:
+   *
+   * Whether this menu should be ignored.
+   **/
+  g_object_class_install_property (gobject_class,
+                                   PROP_ONLY_UNALLOCATED,
+                                   g_param_spec_boolean ("deleted",
+                                                        _("Deleted"),
+                                                        _("Whether this menu should be ignored"),
+                                                        FALSE,
+                                                        EXO_PARAM_READWRITE));
 }
 
 
@@ -297,8 +353,11 @@
   menu->priv->directory = NULL;
   menu->priv->submenus = NULL;
   menu->priv->parent = NULL;
+  menu->priv->directory_dirs = NULL;
   menu->priv->legacy_dirs = NULL;
   menu->priv->app_dirs = NULL;
+  menu->priv->only_unallocated = FALSE;
+  menu->priv->parse_info = g_new (XfceMenuParseInfo, 1);
 }
 
 
@@ -315,6 +374,7 @@
   g_free (menu->priv->name);
 
   /* TODO Free other variables */
+  g_slist_free (menu->priv->directory_dirs);
 
   /* Free legacy dirs (check if this is the best way to free the list) */
   g_slist_free (menu->priv->legacy_dirs);
@@ -322,6 +382,10 @@
   /* Free app dirs */
   g_slist_free (menu->priv->app_dirs);
 
+  /* Free parse information */
+  g_free (menu->priv->parse_info->directory_name);
+  g_free (menu->priv->parse_info);
+
   (*G_OBJECT_CLASS (xfce_menu_parent_class)->finalize) (object);
 }
 
@@ -348,6 +412,14 @@
     case PROP_DIRECTORY:
       g_value_set_object (value, xfce_menu_get_directory (menu));
       break;
+
+    case PROP_ONLY_UNALLOCATED:
+      g_value_set_boolean (value, xfce_menu_get_only_unallocated (menu));
+      break;
+
+    case PROP_DELETED:
+      g_value_set_boolean (value, xfce_menu_get_deleted (menu));
+      break;
     
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -379,6 +451,14 @@
       xfce_menu_set_directory (menu, g_value_get_object (value));
       break;
 
+    case PROP_ONLY_UNALLOCATED:
+      xfce_menu_set_only_unallocated (menu, g_value_get_boolean (value));
+      break;
+
+    case PROP_DELETED:
+      xfce_menu_set_deleted (menu, g_value_get_boolean (value));
+      break;
+
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -440,6 +520,11 @@
   g_return_if_fail (XFCE_IS_MENU (menu));
   g_return_if_fail (filename != NULL);
 
+  /* Abort if filenames are equal */
+  if (G_UNLIKELY (menu->priv->filename != NULL))
+    if (G_UNLIKELY (g_utf8_collate (filename, menu->priv->filename) == 0))
+      return;
+
   /* Free old filename */
   g_free (menu->priv->filename);
 
@@ -465,11 +550,17 @@
 
 
 void
-xfce_menu_set_name (XfceMenu *menu, const gchar *name)
+xfce_menu_set_name (XfceMenu    *menu, 
+                    const gchar *name)
 {
   g_return_if_fail (XFCE_IS_MENU (menu));
   g_return_if_fail (name != NULL);
 
+  /* Abort if names are equal */
+  if (G_UNLIKELY (menu->priv->name != NULL))
+    if (G_UNLIKELY (g_utf8_collate (name, menu->priv->name) == 0))
+      return;
+
   /* Free old name */
   g_free (menu->priv->name);
 
@@ -497,6 +588,10 @@
 {
   g_return_if_fail (XFCE_IS_MENU (menu));
   g_return_if_fail (XFCE_IS_MENU_DIRECTORY (directory));
+
+  /* Abort if directories (TODO: and their locations) are equal */
+  if (G_UNLIKELY (directory == menu->priv->directory))
+    return;
   
   if (G_UNLIKELY (menu->priv->directory != NULL))
     g_object_unref (menu->priv->directory);
@@ -504,6 +599,7 @@
   /* Remove the floating reference and acquire a normal one */
   g_object_ref_sink (G_OBJECT (directory));
 
+  /* Set the new directory */
   menu->priv->directory = directory;
 
   /* Notify listeners */
@@ -512,22 +608,72 @@
 
 
 
+gboolean
+xfce_menu_get_only_unallocated (XfceMenu *menu)
+{
+  g_return_val_if_fail (XFCE_IS_MENU (menu), FALSE);
+  return menu->priv->only_unallocated;
+}
+
+
+
 void
-xfce_menu_set_directory_by_name (XfceMenu    *menu,
-                                 const gchar *name)
+xfce_menu_set_only_unallocated (XfceMenu *menu,
+                                gboolean  only_unallocated)
 {
-  XfceMenuDirectory *directory;
+  g_return_if_fail (XFCE_IS_MENU (menu));
 
+  /* Abort if values are equal */
+  if (menu->priv->only_unallocated == only_unallocated)
+    return;
+
+  /* Set new value */
+  menu->priv->only_unallocated = only_unallocated;
+
+  /* Notify listeners */
+  g_object_notify (G_OBJECT (menu), "only-unallocated");
+}
+
+
+
+gboolean
+xfce_menu_get_deleted (XfceMenu *menu)
+{
+  g_return_val_if_fail (XFCE_IS_MENU (menu), FALSE);
+  return menu->priv->deleted;
+}
+
+
+
+void
+xfce_menu_set_deleted (XfceMenu *menu,
+                       gboolean  deleted)
+{
   g_return_if_fail (XFCE_IS_MENU (menu));
-  g_return_if_fail (name != NULL);
 
-  if (G_LIKELY ((directory = xfce_menu_directory_lookup (name)) != NULL))
-    xfce_menu_set_directory (menu, directory);
+  /* Abort if values are equal */
+  if (menu->priv->deleted == deleted)
+    return;
+
+  /* Set new value */
+  menu->priv->deleted = deleted;
+
+  /* Notify listeners */
+  g_object_notify (G_OBJECT (menu), "deleted");
 }
 
 
 
 GSList*
+xfce_menu_get_directory_dirs (XfceMenu *menu)
+{
+  g_return_val_if_fail (XFCE_IS_MENU (menu), NULL);
+  return menu->priv->directory_dirs;
+}
+
+
+
+GSList*
 xfce_menu_get_legacy_dirs (XfceMenu *menu)
 {
   g_return_val_if_fail (XFCE_IS_MENU (menu), NULL);
@@ -616,6 +762,8 @@
 
   /* Free parse context */
   g_markup_parse_context_free (context);
+
+  /* TODO: Resolve internals, like priv->parse_info->directory_name => priv->directory */
 }
 
 
@@ -642,16 +790,34 @@
     case XFCE_MENU_PARSE_STATE_ROOT:
       if (g_utf8_collate (element_name, "Name") == 0)
         menu_context->node_type = XFCE_MENU_PARSE_NODE_TYPE_NAME;
+
       else if (g_utf8_collate (element_name, "Directory") == 0)
         menu_context->node_type = XFCE_MENU_PARSE_NODE_TYPE_DIRECTORY;
+      else if (g_utf8_collate (element_name, "DirectoryDir") == 0)
+        menu_context->node_type = XFCE_MENU_PARSE_NODE_TYPE_DIRECTORY_DIR;
+      else if (g_utf8_collate (element_name, "DefaultDirectoryDirs") == 0)
+        xfce_menu_add_default_directory_dirs (menu_context->menu);
+
       else if (g_utf8_collate (element_name, "DefaultAppDirs") == 0)
-        xfce_menu_append_default_app_dirs (menu_context->menu);
+        xfce_menu_add_default_app_dirs (menu_context->menu);
       else if (g_utf8_collate (element_name, "AppDir") == 0)
         menu_context->node_type = XFCE_MENU_PARSE_NODE_TYPE_APP_DIR;
+
       else if (g_utf8_collate (element_name, "KDELegacyDirs") == 0)
-        xfce_menu_append_kde_legacy_dirs (menu_context->menu);
+        xfce_menu_add_kde_legacy_dirs (menu_context->menu);
       else if (g_utf8_collate (element_name, "LegacyDir") == 0)
         menu_context->node_type = XFCE_MENU_PARSE_NODE_TYPE_LEGACY_DIR;
+
+      else if (g_utf8_collate (element_name, "OnlyUnallocated") == 0)
+        xfce_menu_set_only_unallocated (menu_context->menu, TRUE);
+      else if (g_utf8_collate (element_name, "NotOnlyUnallocated") == 0)
+        xfce_menu_set_only_unallocated (menu_context->menu, FALSE);
+
+      else if (g_utf8_collate (element_name, "Deleted") == 0)
+        xfce_menu_set_deleted (menu_context->menu, TRUE);
+      else if (g_utf8_collate (element_name, "NotDeleted") == 0)
+        xfce_menu_set_deleted (menu_context->menu, FALSE);
+
       else if (g_utf8_collate (element_name, "Menu") == 0)
         {
           menu_context->state = XFCE_MENU_PARSE_STATE_MENU;
@@ -682,15 +848,15 @@
       break;
 
     case XFCE_MENU_PARSE_NODE_TYPE_DIRECTORY:
-      xfce_menu_set_directory_by_name (menu_context->menu, content);
+      xfce_menu_set_parse_info_directory_name (menu_context->menu, content);
       break;
 
     case XFCE_MENU_PARSE_NODE_TYPE_APP_DIR:
-      xfce_menu_append_app_dir (menu_context->menu, content);
+      xfce_menu_add_app_dir (menu_context->menu, content);
       break;
 
     case XFCE_MENU_PARSE_NODE_TYPE_LEGACY_DIR:
-      xfce_menu_append_legacy_dir (menu_context->menu, content);
+      xfce_menu_add_legacy_dir (menu_context->menu, content);
       break;
     }
 
@@ -705,13 +871,113 @@
 
 
 static void
-xfce_menu_append_legacy_dir (XfceMenu    *menu,
+xfce_menu_set_parse_info_directory_name (XfceMenu    *menu,
+                                         const gchar *name)
+{
+  g_return_if_fail (XFCE_IS_MENU (menu));
+  g_return_if_fail (name != NULL);
+
+  /* Abort if names are equal */
+  if (G_UNLIKELY (g_utf8_collate (name, menu->priv->parse_info->directory_name) == 0))
+    return;
+
+  /* Set new directory name */
+  menu->priv->parse_info->directory_name = g_strdup (name);
+}
+
+
+
+static void
+xfce_menu_add_directory_dir (XfceMenu    *menu,
                              const gchar *dir)
 {
   /* Absolute path of the directory (free'd by the menu instance later) */
   gchar *path;
 
   g_return_if_fail (XFCE_IS_MENU (menu));
+  g_return_if_fail (dir != NULL);
+
+  if (!g_path_is_absolute (dir))
+    {
+      /* Determine the absolute path (directory) of the menu file */
+      gchar *dirname = g_path_get_dirname (menu->priv->filename);
+
+      /* Construct absolute path */
+      path = g_build_path (G_DIR_SEPARATOR_S, dirname, dir, NULL);
+
+      /* Free absolute menu file directory path */
+      g_free (dirname);
+    }
+  else
+    path = g_strdup (dir);
+
+  /* Check if there already are directory dirs */
+  if (G_LIKELY (menu->priv->directory_dirs != NULL))
+    {
+      /* Remove all previous occurences of the directory from the list */
+      /* TODO: This probably is rather dirty and should be replaced with a more
+       * clean algorithm. */
+      GSList *iter = menu->priv->directory_dirs;
+      while (iter != NULL) 
+        {
+          gchar *data = (gchar *)iter->data;
+          if (g_utf8_collate (data, dir) == 0)
+            {
+              GSList *tmp = g_slist_next (iter);
+              menu->priv->directory_dirs = g_slist_remove_link (menu->priv->directory_dirs, iter);
+              iter = tmp;
+            }
+          else
+            iter = iter->next;
+        }
+      
+      /* Append directory */
+      menu->priv->directory_dirs = g_slist_append (menu->priv->directory_dirs, path);
+    }
+  else
+    {
+      /* Create new GSList and append the absolute path of the directory */
+      menu->priv->directory_dirs = g_slist_append (menu->priv->directory_dirs, path);
+    }
+}
+
+
+
+static void
+xfce_menu_add_default_directory_dirs (XfceMenu *menu)
+{
+  int    i;
+  gchar *path;
+
+  const gchar * const *dirs;
+
+  g_return_if_fail (XFCE_IS_MENU (menu));
+
+  /* Append system-wide data dirs */
+  dirs = g_get_system_data_dirs ();
+  for (i = 0; dirs[i] != NULL; i++)
+    {
+      path = g_build_path (G_DIR_SEPARATOR_S, dirs[i], "desktop-directories", NULL);
+      xfce_menu_add_directory_dir (menu, path);
+      g_free (path);
+    }
+
+  /* Append user data dir */
+  path = g_build_path (G_DIR_SEPARATOR_S, g_get_user_data_dir (), "desktop-directories", NULL);
+  xfce_menu_add_directory_dir (menu, path);
+  g_free (path);
+}
+
+
+
+static void
+xfce_menu_add_legacy_dir (XfceMenu    *menu,
+                          const gchar *dir)
+{
+  /* Absolute path of the directory (free'd by the menu instance later) */
+  gchar *path;
+
+  g_return_if_fail (XFCE_IS_MENU (menu));
   g_return_if_fail (menu->priv->filename != NULL);
   g_return_if_fail (dir != NULL);
 
@@ -762,7 +1028,7 @@
 
 
 static void
-xfce_menu_append_kde_legacy_dirs (XfceMenu *menu)
+xfce_menu_add_kde_legacy_dirs (XfceMenu *menu)
 {
   static gchar **kde_legacy_dirs = NULL;
 
@@ -821,15 +1087,15 @@
 
       /* Add all KDE legacy dirs to the list */
       for (i = 0; i < g_strv_length (kde_legacy_dirs); i++) 
-        xfce_menu_append_legacy_dir (menu, kde_legacy_dirs[i]);
+        xfce_menu_add_legacy_dir (menu, kde_legacy_dirs[i]);
     }
 }
 
 
 
 static void
-xfce_menu_append_app_dir (XfceMenu    *menu,
-                          const gchar *dir)
+xfce_menu_add_app_dir (XfceMenu    *menu,
+                       const gchar *dir)
 {
   /* Absolute path of the directory (free'd by the menu instance later) */
   gchar *path;
@@ -885,7 +1151,7 @@
 
 
 static void 
-xfce_menu_append_default_app_dirs (XfceMenu *menu)
+xfce_menu_add_default_app_dirs (XfceMenu *menu)
 {
   int    i;
   gchar *path;
@@ -899,12 +1165,12 @@
   for (i = 0; dirs[i] != NULL; i++)
     {
       path = g_build_path (G_DIR_SEPARATOR_S, dirs[i], "applications", NULL);
-      xfce_menu_append_app_dir (menu, path);
+      xfce_menu_add_app_dir (menu, path);
       g_free (path);
     }
 
   /* Append user data dir */
   path = g_build_path (G_DIR_SEPARATOR_S, g_get_user_data_dir (), "applications", NULL);
-  xfce_menu_append_app_dir (menu, path);
+  xfce_menu_add_app_dir (menu, path);
   g_free (path);
 }

Modified: xfce-menu/trunk/libxfce4menu/xfce-menu.h
===================================================================
--- xfce-menu/trunk/libxfce4menu/xfce-menu.h	2006-07-16 22:01:01 UTC (rev 1770)
+++ xfce-menu/trunk/libxfce4menu/xfce-menu.h	2006-07-17 11:44:15 UTC (rev 1771)
@@ -57,10 +57,15 @@
 XfceMenuDirectory *xfce_menu_get_directory         (XfceMenu          *menu);
 void               xfce_menu_set_directory         (XfceMenu          *menu,
                                                     XfceMenuDirectory *directory);
-void               xfce_menu_set_directory_by_name (XfceMenu          *menu,
-                                                    const gchar       *name);
+GSList            *xfce_menu_get_directory_dirs    (XfceMenu          *menu);
 GSList            *xfce_menu_get_legacy_dirs       (XfceMenu          *menu);
 GSList            *xfce_menu_get_app_dirs          (XfceMenu          *menu);
+gboolean           xfce_menu_get_only_unallocated  (XfceMenu          *menu);
+void               xfce_menu_set_only_unallocated  (XfceMenu          *menu,
+                                                    gboolean           only_unallocated);
+gboolean           xfce_menu_get_deleted           (XfceMenu          *menu);
+void               xfce_menu_set_deleted           (XfceMenu          *menu,
+                                                    gboolean           deleted);
 
 G_END_DECLS;
 

Modified: xfce-menu/trunk/tests/load-root-menu-test.c
===================================================================
--- xfce-menu/trunk/tests/load-root-menu-test.c	2006-07-16 22:01:01 UTC (rev 1770)
+++ xfce-menu/trunk/tests/load-root-menu-test.c	2006-07-17 11:44:15 UTC (rev 1771)
@@ -40,9 +40,17 @@
 
   g_debug ("Root menu name: %s", xfce_menu_get_name (menu));
   g_debug ("Root menu filename: %s", xfce_menu_get_filename (menu));
+  g_debug ("Root menu only unallocated: %i", xfce_menu_get_only_unallocated (menu));
+  g_debug ("Root menu deleted: %i", xfce_menu_get_deleted (menu));
+  
+  g_debug ("Root menu directory dirs:");
+
+  GSList *dir;
+  for (dir = xfce_menu_get_directory_dirs (menu); dir != NULL; dir = g_slist_next (dir))
+    g_debug ("\t%s", dir->data);
+
   g_debug ("Root menu legacy dirs:");
 
-  GSList *dir;
   for (dir = xfce_menu_get_legacy_dirs (menu); dir != NULL; dir = g_slist_next (dir))
     g_debug ("\t%s", dir->data);
 




More information about the Goodies-commits mailing list