summaryrefslogtreecommitdiff
path: root/src/file-manager/fm-icon-view.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/file-manager/fm-icon-view.c')
-rw-r--r--src/file-manager/fm-icon-view.c47
1 files changed, 44 insertions, 3 deletions
diff --git a/src/file-manager/fm-icon-view.c b/src/file-manager/fm-icon-view.c
index cd9691f36..76b76630e 100644
--- a/src/file-manager/fm-icon-view.c
+++ b/src/file-manager/fm-icon-view.c
@@ -91,6 +91,8 @@
#define COMMAND_PREFIX "/commands/"
#define COMMAND_RENAME "/commands/Rename"
#define COMMAND_ANNOTATE "/commands/Annotate"
+#define COMMAND_SHOW_ANNOTATIONS "/commands/Show Annotations"
+#define COMMAND_HIDE_ANNOTATIONS "/commands/Hide Annotations"
#define COMMAND_STRETCH_ICON "/commands/Stretch"
#define COMMAND_UNSTRETCH_ICONS "/commands/Unstretch"
#define COMMAND_TIGHTER_LAYOUT "/commands/Tighter Layout"
@@ -423,6 +425,39 @@ annotate_callback (BonoboUIComponent *component, gpointer callback_data, const c
}
static void
+update_annotation_menu_items (FMIconView *icon_view)
+{
+ gboolean is_showing;
+
+ is_showing = nautilus_icon_container_is_showing_all_annotations (get_icon_container (icon_view));
+
+ nautilus_bonobo_set_hidden
+ (icon_view->details->ui, COMMAND_SHOW_ANNOTATIONS, is_showing);
+ nautilus_bonobo_set_hidden
+ (icon_view->details->ui, COMMAND_HIDE_ANNOTATIONS, !is_showing);
+}
+
+static void
+show_annotations_callback (BonoboUIComponent *component, gpointer callback_data, const char *verb)
+{
+ NautilusIconContainer *icon_container;
+
+ icon_container = get_icon_container (FM_ICON_VIEW (callback_data));
+ nautilus_icon_container_set_show_all_annotations (icon_container, TRUE);
+ update_annotation_menu_items ( FM_ICON_VIEW (callback_data));
+}
+
+static void
+hide_annotations_callback (BonoboUIComponent *component, gpointer callback_data, const char *verb)
+{
+ NautilusIconContainer *icon_container;
+
+ icon_container = get_icon_container (FM_ICON_VIEW (callback_data));
+ nautilus_icon_container_set_show_all_annotations (icon_container, FALSE);
+ update_annotation_menu_items ( FM_ICON_VIEW (callback_data));
+}
+
+static void
set_tighter_layout (FMIconView *icon_view, gboolean new_value)
{
fm_icon_view_set_directory_tighter_layout (icon_view,
@@ -1274,6 +1309,8 @@ fm_icon_view_merge_menus (FMDirectoryView *view)
BonoboUIVerb verbs [] = {
BONOBO_UI_VERB ("Rename", rename_icon_callback),
BONOBO_UI_VERB ("Annotate", annotate_callback),
+ BONOBO_UI_VERB ("Show Annotations", show_annotations_callback),
+ BONOBO_UI_VERB ("Hide Annotations", hide_annotations_callback),
BONOBO_UI_VERB ("Icon Text", customize_icon_text_callback),
BONOBO_UI_VERB ("Stretch", show_stretch_handles_callback),
BONOBO_UI_VERB ("Unstretch", unstretch_icons_callback),
@@ -1312,6 +1349,9 @@ fm_icon_view_merge_menus (FMDirectoryView *view)
nautilus_bonobo_set_hidden
(icon_view->details->ui, POPUP_PATH_LAY_OUT, TRUE);
}
+
+ /* show or hide the global annotation items based on the current state */
+ update_annotation_menu_items (icon_view);
update_layout_menus (icon_view);
@@ -1367,7 +1407,8 @@ fm_icon_view_update_menus (FMDirectoryView *view)
nautilus_bonobo_set_sensitive (icon_view->details->ui,
COMMAND_ANNOTATE,
selection_count == 1);
-
+
+
bonobo_ui_component_thaw (icon_view->details->ui, NULL);
nautilus_file_list_free (selection);
@@ -1490,8 +1531,8 @@ icon_container_activate_callback (NautilusIconContainer *container,
if (emblem_index > 0 && file_list != NULL && file_list->next == NULL) {
file = NAUTILUS_FILE (file_list->data);
keyword = get_keyword_by_index (file, emblem_index);
- if (eel_strcmp (keyword, "note") == 0) {
- fm_annotation_window_present (file, FM_DIRECTORY_VIEW (icon_view));
+ if (eel_strcmp (keyword, "note") == 0) {
+ fm_annotation_window_present (file, FM_DIRECTORY_VIEW (icon_view));
g_free (keyword);
return;
}