[gnome-menus] libmenu: Add a way to grab NoDisplay on an item and all of its parents
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-menus] libmenu: Add a way to grab NoDisplay on an item and all of its parents
- Date: Wed, 20 Jun 2012 18:35:57 +0000 (UTC)
commit ade49e7f07ef6cb0168002f6c12a4be6c1bdbee8
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Mon Jun 18 18:08:26 2012 -0400
libmenu: Add a way to grab NoDisplay on an item and all of its parents
Some applications may want a way to show or hide a tree entry based on
its visibility in the actual tree.
https://bugzilla.gnome.org/show_bug.cgi?id=678419
libmenu/gmenu-tree.c | 31 +++++++++++++++++++++++++------
libmenu/gmenu-tree.h | 1 +
2 files changed, 26 insertions(+), 6 deletions(-)
---
diff --git a/libmenu/gmenu-tree.c b/libmenu/gmenu-tree.c
index 688e8af..53f5e1e 100644
--- a/libmenu/gmenu-tree.c
+++ b/libmenu/gmenu-tree.c
@@ -128,7 +128,6 @@ struct GMenuTreeEntry
char *desktop_file_id;
guint is_excluded : 1;
- guint is_nodisplay : 1;
guint is_unallocated : 1;
};
@@ -1221,6 +1220,31 @@ gmenu_tree_entry_get_desktop_file_id (GMenuTreeEntry *entry)
}
gboolean
+gmenu_tree_entry_get_is_nodisplay_recurse (GMenuTreeEntry *entry)
+{
+ GMenuTreeDirectory *directory;
+ GDesktopAppInfo *app_info;
+
+ g_return_val_if_fail (entry != NULL, FALSE);
+
+ app_info = gmenu_tree_entry_get_app_info (entry);
+
+ if (g_desktop_app_info_get_nodisplay (app_info))
+ return TRUE;
+
+ directory = entry->item.parent;
+ while (directory != NULL)
+ {
+ if (directory->is_nodisplay)
+ return TRUE;
+
+ directory = directory->item.parent;
+ }
+
+ return FALSE;
+}
+
+gboolean
gmenu_tree_entry_get_is_excluded (GMenuTreeEntry *entry)
{
g_return_val_if_fail (entry != NULL, FALSE);
@@ -1542,7 +1566,6 @@ gmenu_tree_entry_new (GMenuTreeDirectory *parent,
DesktopEntry *desktop_entry,
const char *desktop_file_id,
gboolean is_excluded,
- gboolean is_nodisplay,
gboolean is_unallocated)
{
GMenuTreeEntry *retval;
@@ -1557,7 +1580,6 @@ gmenu_tree_entry_new (GMenuTreeDirectory *parent,
retval->desktop_entry = desktop_entry_ref (desktop_entry);
retval->desktop_file_id = g_strdup (desktop_file_id);
retval->is_excluded = is_excluded != FALSE;
- retval->is_nodisplay = is_nodisplay != FALSE;
retval->is_unallocated = is_unallocated != FALSE;
return retval;
@@ -3260,7 +3282,6 @@ entries_listify_foreach (const char *desktop_file_id,
desktop_entry,
desktop_file_id,
FALSE,
- desktop_entry_get_no_display (desktop_entry),
FALSE));
}
@@ -3275,7 +3296,6 @@ excluded_entries_listify_foreach (const char *desktop_file_id,
desktop_entry,
desktop_file_id,
TRUE,
- desktop_entry_get_no_display (desktop_entry),
FALSE));
}
@@ -3290,7 +3310,6 @@ unallocated_entries_listify_foreach (const char *desktop_file_id,
desktop_entry,
desktop_file_id,
FALSE,
- desktop_entry_get_no_display (desktop_entry),
TRUE));
}
diff --git a/libmenu/gmenu-tree.h b/libmenu/gmenu-tree.h
index 06e653e..db25572 100644
--- a/libmenu/gmenu-tree.h
+++ b/libmenu/gmenu-tree.h
@@ -139,6 +139,7 @@ GMenuTree *gmenu_tree_entry_get_tree (GMenuTreeEntry *entry);
const char *gmenu_tree_entry_get_desktop_file_path (GMenuTreeEntry *entry);
const char *gmenu_tree_entry_get_desktop_file_id (GMenuTreeEntry *entry);
+gboolean gmenu_tree_entry_get_is_nodisplay_recurse (GMenuTreeEntry *entry);
gboolean gmenu_tree_entry_get_is_excluded (GMenuTreeEntry *entry);
gboolean gmenu_tree_entry_get_is_unallocated (GMenuTreeEntry *entry);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]