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