Author: jannis
Date: 2006-10-01 19:54:23 +0000 (Sun, 01 Oct 2006)
New Revision: 23256

Modified:
   libfrap/trunk/libfrap/menu/ChangeLog
   libfrap/trunk/libfrap/menu/STATUS
   libfrap/trunk/libfrap/menu/frap-menu-and-rules.c
   libfrap/trunk/libfrap/menu/frap-menu-item-pool.c
   libfrap/trunk/libfrap/menu/frap-menu-not-rules.c
   libfrap/trunk/libfrap/menu/frap-menu-or-rules.c
   libfrap/trunk/libfrap/menu/tests/test-and-rules.c
   libfrap/trunk/libfrap/menu/tests/test-display-root-menu.c
   libfrap/trunk/libfrap/menu/tests/test-not-rules.c
   libfrap/trunk/libfrap/menu/tests/test-or-rules.c
Log:
        * frap-menu-or-rules.c, frap-menu-and-rules.c, frap-menu-not-rules.c:
          Improve match functions and implement desktop file id matching.
        * Fix several compiler warnings in some of the files.

Modified: libfrap/trunk/libfrap/menu/ChangeLog
===================================================================
--- libfrap/trunk/libfrap/menu/ChangeLog        2006-10-01 13:49:56 UTC (rev 
23255)
+++ libfrap/trunk/libfrap/menu/ChangeLog        2006-10-01 19:54:23 UTC (rev 
23256)
@@ -1,3 +1,9 @@
+2006-10-01     Jannis Pohlmann <[EMAIL PROTECTED]>
+
+       * frap-menu-or-rules.c, frap-menu-and-rules.c, frap-menu-not-rules.c:
+         Improve match functions and implement desktop file id matching.
+       * Fix several compiler warnings in some of the files.
+
 2006-09-30     Jannis Pohlmann <[EMAIL PROTECTED]>
 
        * STATUS: Status updated.

Modified: libfrap/trunk/libfrap/menu/STATUS
===================================================================
--- libfrap/trunk/libfrap/menu/STATUS   2006-10-01 13:49:56 UTC (rev 23255)
+++ libfrap/trunk/libfrap/menu/STATUS   2006-10-01 19:54:23 UTC (rev 23256)
@@ -46,11 +46,8 @@
 
   [x] <Exclude>
 
-  [-] <Filename>
+  [x] <Filename>
 
-        TODO: Implement desktop-file id comparison in the match methods 
-        of all rules.
-
   [x] <Category>
 
   [ ] <All>

Modified: libfrap/trunk/libfrap/menu/frap-menu-and-rules.c
===================================================================
--- libfrap/trunk/libfrap/menu/frap-menu-and-rules.c    2006-10-01 13:49:56 UTC 
(rev 23255)
+++ libfrap/trunk/libfrap/menu/frap-menu-and-rules.c    2006-10-01 19:54:23 UTC 
(rev 23256)
@@ -130,23 +130,22 @@
 frap_menu_and_rules_match (FrapMenuStandardRules *rules,
                            FrapMenuItem          *item)
 {
-  GList                 *category;
   GList                 *iter;
 
   g_return_val_if_fail (FRAP_IS_MENU_STANDARD_RULES (rules), FALSE);
   g_return_val_if_fail (FRAP_IS_MENU_ITEM (item), FALSE);
 
-  /* Compare item filename against filename rules */
-  /* TODO This should be a match against the Desktop-File Id. It's not yet sure
-   * how this will be modelled in FrapMenu! */
+  /* Compare desktop id's */
+  for (iter = rules->filenames; iter != NULL; iter = g_list_next (iter))
+    {
+      if (g_utf8_collate (frap_menu_item_get_desktop_id (item), iter->data) != 
0)
+        return FALSE;
+    }
 
-  category = rules->categories;
-  while (category != NULL)
+  for (iter = rules->categories; iter != NULL; iter = g_list_next (iter))
     {
-      if (!g_list_find_custom (frap_menu_item_get_categories (item), 
category->data, g_utf8_collate))
+      if (!g_list_find_custom (frap_menu_item_get_categories (item), 
iter->data, (GCompareFunc) g_utf8_collate))
         return FALSE;
-      
-      category = g_list_next (category);
     }
 
   /* Match item against nested rules */
@@ -154,8 +153,6 @@
     {
       if (!frap_menu_rules_match (FRAP_MENU_RULES (iter->data), item))
         return FALSE;
-
-      category = g_list_next (category);
     }
 
   return TRUE;

Modified: libfrap/trunk/libfrap/menu/frap-menu-item-pool.c
===================================================================
--- libfrap/trunk/libfrap/menu/frap-menu-item-pool.c    2006-10-01 13:49:56 UTC 
(rev 23255)
+++ libfrap/trunk/libfrap/menu/frap-menu-item-pool.c    2006-10-01 19:54:23 UTC 
(rev 23256)
@@ -191,7 +191,7 @@
   g_return_if_fail (FRAP_IS_MENU_ITEM_POOL (pool));
 
   /* If rules are empty, remove all items */
-  if (G_UNLIKELY (g_list_length (rules) == 0))
+  if (G_UNLIKELY (g_slist_length (rules) == 0))
     g_hash_table_remove_all (pool->priv->items);
   else 
    {

Modified: libfrap/trunk/libfrap/menu/frap-menu-not-rules.c
===================================================================
--- libfrap/trunk/libfrap/menu/frap-menu-not-rules.c    2006-10-01 13:49:56 UTC 
(rev 23255)
+++ libfrap/trunk/libfrap/menu/frap-menu-not-rules.c    2006-10-01 19:54:23 UTC 
(rev 23256)
@@ -130,24 +130,23 @@
 frap_menu_not_rules_match (FrapMenuStandardRules *rules,
                            FrapMenuItem          *item)
 {
-  GList    *category;
   GList    *iter;
   gboolean  matches = TRUE;
 
   g_return_val_if_fail (FRAP_IS_MENU_STANDARD_RULES (rules), FALSE);
   g_return_val_if_fail (FRAP_IS_MENU_ITEM (item), FALSE);
 
-  /* Compare item filename against filename rules */
-  /* TODO This should be a match against the Desktop-File Id. It's not yet sure
-   * how this will be modelled in FrapMenu! */
+  /* Compare desktop id's */
+  for (iter = rules->filenames; iter != NULL; iter = g_list_next (iter))
+    {
+      if (g_utf8_collate (frap_menu_item_get_desktop_id (item), iter->data) == 
0)
+        return FALSE;
+    }
 
-  category = rules->categories;
-  while (category != NULL)
+  for (iter = rules->categories; iter != NULL; iter = g_list_next (iter))
     {
-      if (g_list_find_custom (frap_menu_item_get_categories (item), 
category->data, g_utf8_collate))
+      if (g_list_find_custom (frap_menu_item_get_categories (item), 
iter->data, (GCompareFunc) g_utf8_collate))
         return FALSE;
-      
-      category = g_list_next (category);
     }
 
   /* Match item against nested rules */
@@ -155,8 +154,6 @@
     {
       if (frap_menu_rules_match (FRAP_MENU_RULES (iter->data), item))
         return FALSE;
-
-      category = g_list_next (category);
     }
 
   return TRUE;

Modified: libfrap/trunk/libfrap/menu/frap-menu-or-rules.c
===================================================================
--- libfrap/trunk/libfrap/menu/frap-menu-or-rules.c     2006-10-01 13:49:56 UTC 
(rev 23255)
+++ libfrap/trunk/libfrap/menu/frap-menu-or-rules.c     2006-10-01 19:54:23 UTC 
(rev 23256)
@@ -130,24 +130,23 @@
 frap_menu_or_rules_match (FrapMenuStandardRules *rules,
                           FrapMenuItem          *item)
 {
-  GList           *category;
   GList           *iter;
 
   g_return_val_if_fail (FRAP_IS_MENU_STANDARD_RULES (rules), FALSE);
   g_return_val_if_fail (FRAP_IS_MENU_ITEM (item), FALSE);
 
-  /* Compare item filename against filename rules */
-  /* TODO This should be a match against the Desktop-File Id. It's not yet sure
-   * how this will be modelled in FrapMenu! */
+  /* Compare desktop id's */
+  for (iter = rules->filenames; iter != NULL; iter = g_list_next (iter))
+    {
+      if (g_utf8_collate (frap_menu_item_get_desktop_id (item), iter->data) == 
0)
+        return TRUE;
+    }
 
   /* Determine categories the item belongs to */
-  category = g_list_first (frap_menu_item_get_categories (item));
-  while (category != NULL)
+  for (iter = rules->categories; iter != NULL; iter = g_list_next (iter))
     {
-      if (g_list_find_custom (rules->categories, category->data, 
g_utf8_collate))
+      if (g_list_find_custom (frap_menu_item_get_categories (item), 
iter->data, (GCompareFunc) g_utf8_collate))
         return TRUE;
-      
-      category = g_list_next (category);
     }
 
   /* Match item against nested rules */
@@ -155,8 +154,6 @@
     {
       if (frap_menu_rules_match (FRAP_MENU_RULES (iter->data), item))
         return TRUE;
-
-      category = g_list_next (category);
     }
 
   return FALSE;

Modified: libfrap/trunk/libfrap/menu/tests/test-and-rules.c
===================================================================
--- libfrap/trunk/libfrap/menu/tests/test-and-rules.c   2006-10-01 13:49:56 UTC 
(rev 23255)
+++ libfrap/trunk/libfrap/menu/tests/test-and-rules.c   2006-10-01 19:54:23 UTC 
(rev 23256)
@@ -30,9 +30,9 @@
 int main (int    argc,
           char **argv)
 {
-  FrapMenuItem          *item;
-  FrapMenuStandardRules *rules;
-  gchar                 *desktop_file_path;
+  FrapMenuItem     *item;
+  FrapMenuAndRules *rules;
+  gchar            *desktop_file_path;
 
   /* Initialize FrapMenu */
   frap_menu_init ();
@@ -55,6 +55,9 @@
   frap_menu_rules_add_category (FRAP_MENU_RULES (rules), "TextEditor");
   g_assert (frap_menu_rules_match (FRAP_MENU_RULES (rules), item) == FALSE);
 
+  /* Free rules */
+  g_object_unref (G_OBJECT (rules));
+
   /* Free desktop file */
   g_object_unref (G_OBJECT (item));
 

Modified: libfrap/trunk/libfrap/menu/tests/test-display-root-menu.c
===================================================================
--- libfrap/trunk/libfrap/menu/tests/test-display-root-menu.c   2006-10-01 
13:49:56 UTC (rev 23255)
+++ libfrap/trunk/libfrap/menu/tests/test-display-root-menu.c   2006-10-01 
19:54:23 UTC (rev 23256)
@@ -121,7 +121,7 @@
   pool = frap_menu_get_item_pool (menu);
 
   /* Create menu items */
-  frap_menu_item_pool_foreach (pool, create_item_widgets_for_menu, widget);
+  frap_menu_item_pool_foreach (pool, (GHFunc) create_item_widgets_for_menu, 
widget);
 
   /* Free submenu list */
   g_slist_free (menus);

Modified: libfrap/trunk/libfrap/menu/tests/test-not-rules.c
===================================================================
--- libfrap/trunk/libfrap/menu/tests/test-not-rules.c   2006-10-01 13:49:56 UTC 
(rev 23255)
+++ libfrap/trunk/libfrap/menu/tests/test-not-rules.c   2006-10-01 19:54:23 UTC 
(rev 23256)
@@ -30,9 +30,9 @@
 int main (int    argc,
           char **argv)
 {
-  FrapMenuItem          *item;
-  FrapMenuStandardRules *rules;
-  gchar                 *desktop_file_path;
+  FrapMenuItem     *item;
+  FrapMenuNotRules *rules;
+  gchar            *desktop_file_path;
 
   /* Initialize FrapMenu */
   frap_menu_init ();
@@ -55,6 +55,9 @@
   frap_menu_rules_add_category (FRAP_MENU_RULES (rules), "VideoPlayer");
   g_assert (frap_menu_rules_match (FRAP_MENU_RULES (rules), item) == FALSE);
 
+  /* Free rules */
+  g_object_unref (G_OBJECT (rules));
+
   /* Free desktop file */
   g_object_unref (G_OBJECT (item));
 

Modified: libfrap/trunk/libfrap/menu/tests/test-or-rules.c
===================================================================
--- libfrap/trunk/libfrap/menu/tests/test-or-rules.c    2006-10-01 13:49:56 UTC 
(rev 23255)
+++ libfrap/trunk/libfrap/menu/tests/test-or-rules.c    2006-10-01 19:54:23 UTC 
(rev 23256)
@@ -30,9 +30,9 @@
 int main (int    argc,
           char **argv)
 {
-  FrapMenuItem          *item;
-  FrapMenuStandardRules *rules;
-  gchar                 *desktop_file_path;
+  FrapMenuItem    *item;
+  FrapMenuOrRules *rules;
+  gchar           *desktop_file_path;
 
   /* Initialize FrapMenu */
   frap_menu_init ();
@@ -55,6 +55,9 @@
   frap_menu_rules_add_category (FRAP_MENU_RULES (rules), "VideoPlayer");
   g_assert (frap_menu_rules_match (FRAP_MENU_RULES (rules), item) == TRUE);
 
+  /* Free rules */
+  g_object_unref (G_OBJECT (rules));
+
   /* Free desktop file */
   g_object_unref (G_OBJECT (item));
 

_______________________________________________
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits

Reply via email to