void UpdateMenus ()
{
int tags_selected = tag_selection_widget.Selection.CountSelectedRows ();
bool tag_sensitive = tags_selected > 0;
bool active_selection = Selection.Count > 0;
bool single_active = CurrentPhoto != null;
MenuItem version_menu_item = uimanager.GetWidget ("/ui/menubar1/file1/version_menu_item") as MenuItem;
if (!single_active) {
version_menu_item.Sensitive = false;
version_menu_item.Submenu = new Menu ();
create_version_menu_item.Sensitive = false;
delete_version_menu_item.Sensitive = false;
detach_version_menu_item.Sensitive = false;
rename_version_menu_item.Sensitive = false;
sharpen.Sensitive = false;
loupe_menu_item.Sensitive = false;
} else {
version_menu_item.Sensitive = true;
create_version_menu_item.Sensitive = true;
if (CurrentPhoto.DefaultVersionId == Photo.OriginalVersionId) {
delete_version_menu_item.Sensitive = false;
detach_version_menu_item.Sensitive = false;
rename_version_menu_item.Sensitive = false;
} else {
delete_version_menu_item.Sensitive = true;
detach_version_menu_item.Sensitive = true;
rename_version_menu_item.Sensitive = true;
}
versions_submenu = new PhotoVersionMenu (CurrentPhoto);
versions_submenu.VersionChanged += menu => UpdateForVersionChange (menu.Version);
version_menu_item.Submenu = versions_submenu;
sharpen.Sensitive = (ViewMode != ModeType.IconView);
loupe_menu_item.Sensitive = (ViewMode != ModeType.IconView);
}
set_as_background.Sensitive = single_active;
adjust_time.Sensitive = active_selection;
attach_tag.Sensitive = active_selection;
remove_tag.Sensitive = active_selection;
rotate_left.Sensitive = active_selection;
rotate_right.Sensitive = active_selection;
update_thumbnail.Sensitive = active_selection;
delete_from_drive.Sensitive = active_selection;
send_mail.Sensitive = active_selection;
print.Sensitive = active_selection;
select_none.Sensitive = active_selection;
copy.Sensitive = active_selection;
remove_from_catalog.Sensitive = active_selection;
clear_rating_filter.Sensitive = (query.RatingRange != null);
clear_roll_filter.Sensitive = (query.RollSet != null);
delete_selected_tag.Sensitive = tag_sensitive;
edit_selected_tag.Sensitive = tag_sensitive;
attach_tag_to_selection.Sensitive = tag_sensitive && active_selection;
remove_tag_from_selection.Sensitive = tag_sensitive && active_selection;
export.Sensitive = active_selection;
MenuItem toolsmenu = uimanager.GetWidget ("/ui/menubar1/tools") as MenuItem;
try {
tools.Visible = (toolsmenu.Submenu as Menu).Children.Length > 0;
} catch {
tools.Visible = false;
}
if (rl_button != null) {
if (Selection.Count == 0) {
rl_button.Sensitive = false;
rl_button.TooltipText = String.Empty;
} else {
rl_button.Sensitive = true;
string msg = Catalog.GetPluralString ("Rotate selected photo left",
"Rotate selected photos left", Selection.Count);
rl_button.TooltipText = String.Format (msg, Selection.Count);
}
}
if (rr_button != null) {
if (Selection.Count == 0) {
rr_button.Sensitive = false;
rr_button.TooltipText = String.Empty;
} else {
rr_button.Sensitive = true;
string msg = Catalog.GetPluralString ("Rotate selected photo right",
"Rotate selected photos right", Selection.Count);
rr_button.TooltipText = String.Format (msg, Selection.Count);
}
}
//if (last_tags_selected_count != tags_selected) {
MenuItem find_add_tag = uimanager.GetWidget ("/ui/menubar1/find/find_add_tag") as MenuItem;
MenuItem find_add_tag_with = uimanager.GetWidget ("/ui/menubar1/find/find_add_tag_with") as MenuItem;
((Gtk.Label)find_add_tag.Child).TextWithMnemonic = String.Format (
Catalog.GetPluralString ("Find _Selected Tag", "Find _Selected Tags", tags_selected), tags_selected
);
((Gtk.Label)find_add_tag_with.Child).TextWithMnemonic = String.Format (
Catalog.GetPluralString ("Find Selected Tag _With", "Find Selected Tags _With", tags_selected), tags_selected
);
find_add_tag.Sensitive = tag_sensitive;
find_add_tag_with.Sensitive = tag_sensitive && find_add_tag_with.Submenu != null;
//last_tags_selected_count = tags_selected;
//}
}