FSpot.MainWindow.UpdateMenus C# (CSharp) Method

UpdateMenus() public method

public UpdateMenus ( ) : void
return void
		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;
			//}
		}
MainWindow