private void SetUpRibbonTabsVisibilityOnSelectOrNavigate(int selectedItemsCount, IListItemEx selectedItem) {
#region Search Contextual Tab
ctgSearch.Visibility = BooleanToVisibiliy(_ShellListView.CurrentFolder.IsSearchFolder);
if (ctgSearch.Visibility == Visibility.Visible && !_ShellListView.CurrentFolder.IsSearchFolder) {
ctgSearch.Visibility = Visibility.Collapsed;
TheRibbon.SelectedTabItem = HomeTab;
}
#endregion
#region Folder Tools Context Tab
ctgFolderTools.Visibility = BooleanToVisibiliy((selectedItemsCount == 1 && selectedItem.IsFolder && selectedItem.IsFileSystem && !selectedItem.IsDrive && !selectedItem.IsNetworkPath));
if (_AsFolder && ctgFolderTools.Visibility == Visibility.Visible) {
TheRibbon.SelectedTabItem = ctgFolderTools.Items[0];
}
#endregion
#region Drive Contextual Tab
ctgDrive.Visibility = BooleanToVisibiliy(_ShellListView.CurrentFolder.IsDrive || (selectedItemsCount == 1 && (selectedItem.IsDrive || (selectedItem.Parent != null && selectedItem.Parent.IsDrive))));
if (asDrive && ctgDrive.Visibility == Visibility.Visible && selectedItemsCount == 1 && selectedItem.IsDrive) {
TheRibbon.SelectedTabItem = ctgDrive.Items[0];
}
#endregion
#region Library Context Tab
ctgLibraries.Visibility = BooleanToVisibiliy((selectedItemsCount == 1 && _ShellListView.CurrentFolder.ParsingName.Equals(KnownFolders.Libraries.ParsingName)) || (selectedItemsCount == 1 && selectedItem.Parent != null && selectedItem.Parent.ParsingName.Equals(KnownFolders.Libraries.ParsingName)));
if (ctgLibraries.Visibility == Visibility.Visible && asLibrary) {
TheRibbon.SelectedTabItem = ctgLibraries.Items[0];
}
/*
if (ctgLibraries.Visibility == Visibility.Visible && _ShellListView.CurrentFolder.ParsingName.Equals(KnownFolders.Libraries.ParsingName)) {
if (selectedItem != null && selectedItemsCount == 1)
SetupLibrariesTab(ShellLibrary.Load(Path.GetFileNameWithoutExtension(selectedItem.ParsingName), false));
} else if (ctgLibraries.Visibility == Visibility.Visible && _ShellListView.CurrentFolder.Parent.ParsingName.Equals(KnownFolders.Libraries.ParsingName)) {
if (selectedItemsCount == 1)
SetupLibrariesTab(ShellLibrary.Load(Path.GetFileNameWithoutExtension(_ShellListView.CurrentFolder.ParsingName), false));
}
if (selectedItemsCount == 0) {
ctgLibraries.Visibility = Visibility.Collapsed;
}
*/
if (selectedItemsCount == 0)
ctgLibraries.Visibility = Visibility.Collapsed;
else if (selectedItemsCount > 1) { } else if (ctgLibraries.Visibility == Visibility.Visible && _ShellListView.CurrentFolder.ParsingName.Equals(KnownFolders.Libraries.ParsingName))
SetupLibrariesTab(ShellLibrary.Load(Path.GetFileNameWithoutExtension(selectedItem.ParsingName), false));
else if (ctgLibraries.Visibility == Visibility.Visible && _ShellListView.CurrentFolder.Parent.ParsingName.Equals(KnownFolders.Libraries.ParsingName))
SetupLibrariesTab(ShellLibrary.Load(Path.GetFileNameWithoutExtension(_ShellListView.CurrentFolder.ParsingName), false));
#endregion
#region Archive Contextual Tab
ctgArchive.Visibility = WIN.Visibility.Collapsed; //TODO: Restore this: BooleanToVisibiliy(selectedItemsCount == 1 && Archives.Contains(Path.GetExtension(selectedItem.ParsingName).ToLowerInvariant()));
if (asArchive && ctgArchive.Visibility == Visibility.Visible)
TheRibbon.SelectedTabItem = ctgArchive.Items[0];
#endregion
#region Application Context Tab
ctgExe.Visibility = BooleanToVisibiliy(selectedItemsCount == 1 && !selectedItem.IsFolder && (Path.GetExtension(selectedItem.ParsingName).ToLowerInvariant() == ".exe" || Path.GetExtension(selectedItem.ParsingName).ToLowerInvariant() == ".msi"));
if (asApplication && ctgExe.Visibility == Visibility.Visible) {
TheRibbon.SelectedTabItem = ctgExe.Items[0];
}
#endregion
#region Image Context Tab
ctgImage.Visibility = BooleanToVisibiliy(selectedItemsCount == 1 && !selectedItem.IsFolder && Images.Contains(Path.GetExtension(selectedItem.ParsingName).ToLowerInvariant()));
if (ctgImage.Visibility == Visibility.Visible) {
try {
if (new FileInfo(selectedItem.ParsingName).Length != 0) {
using (var cvt = new Bitmap(selectedItem.ParsingName)) {
imgSizeDisplay.WidthData = cvt.Width.ToString();
imgSizeDisplay.HeightData = cvt.Height.ToString();
if (asImage) TheRibbon.SelectedTabItem = ctgImage.Items[0];
}
}
} catch (Exception) {
MessageBox.Show("Image was invalid");
}
}
#endregion
#region Virtual Disk Context Tab
ctgVirtualDisk.Visibility = BooleanToVisibiliy(selectedItemsCount == 1 && !selectedItem.IsFolder && Path.GetExtension(selectedItem.ParsingName).ToLowerInvariant() == ".iso");
if (asVirtualDrive && ctgVirtualDisk.Visibility == Visibility.Visible) {
TheRibbon.SelectedTabItem = ctgVirtualDisk.Items[0];
}
#endregion
}