From 04256aea7dacea084af219c190e8c2925e513464 Mon Sep 17 00:00:00 2001 From: Jannis Pohlmann Date: Sun, 5 Sep 2010 19:08:12 +0200 Subject: Add garcon_menu_item_pool_lookup_file() to lookup items by GFiles. --- garcon/garcon-menu-item-pool.c | 28 ++++++++++++++++++++++++++++ garcon/garcon-menu-item-pool.h | 2 ++ 2 files changed, 30 insertions(+) diff --git a/garcon/garcon-menu-item-pool.c b/garcon/garcon-menu-item-pool.c index b91b6af..e56043e 100644 --- a/garcon/garcon-menu-item-pool.c +++ b/garcon/garcon-menu-item-pool.c @@ -134,6 +134,34 @@ garcon_menu_item_pool_lookup (GarconMenuItemPool *pool, +GarconMenuItem * +garcon_menu_item_pool_lookup_file (GarconMenuItemPool *pool, + GFile *file) +{ + GarconMenuItem *result = NULL; + GHashTableIter iter; + gpointer item; + GFile *item_file; + + g_return_val_if_fail (GARCON_IS_MENU_ITEM_POOL (pool), NULL); + g_return_val_if_fail (G_IS_FILE (file), NULL); + + g_hash_table_iter_init (&iter, pool->priv->items); + while (result == NULL && g_hash_table_iter_next (&iter, NULL, &item)) + { + item_file = garcon_menu_item_get_file (item); + + if (g_file_equal (item_file, file)) + result = item; + + g_object_unref (item_file); + } + + return result; +} + + + void garcon_menu_item_pool_foreach (GarconMenuItemPool *pool, GHFunc func, diff --git a/garcon/garcon-menu-item-pool.h b/garcon/garcon-menu-item-pool.h index 10fcfa4..36bd369 100644 --- a/garcon/garcon-menu-item-pool.h +++ b/garcon/garcon-menu-item-pool.h @@ -49,6 +49,8 @@ void garcon_menu_item_pool_insert (GarconMenuItemPool GarconMenuItem *item); GarconMenuItem *garcon_menu_item_pool_lookup (GarconMenuItemPool *pool, const gchar *desktop_id); +GarconMenuItem *garcon_menu_item_pool_lookup_file (GarconMenuItemPool *pool, + GFile *file); void garcon_menu_item_pool_foreach (GarconMenuItemPool *pool, GHFunc func, gpointer user_data); -- cgit v1.2.1