[Xfce4-commits] r23256 - in libfrap/trunk/libfrap/menu: . tests
Jannis Pohlmann
jannis at xfce.org
Sun Oct 1 19:54:26 UTC 2006
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 <jannis at xfce.org>
+
+ * 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 <jannis at xfce.org>
* 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));
More information about the Xfce4-commits
mailing list