private void DiffContextMenu_Opening(object sender, System.ComponentModel.CancelEventArgs e)
{
bool artificialRevSelected;
IList<GitRevision> selectedRevisions = RevisionGrid.GetSelectedRevisions();
if (selectedRevisions.Count == 0)
artificialRevSelected = false;
else
artificialRevSelected = selectedRevisions[0].IsArtificial();
if (selectedRevisions.Count > 1)
artificialRevSelected = artificialRevSelected || selectedRevisions[selectedRevisions.Count - 1].IsArtificial();
// disable items that need exactly one selected item
bool isExcactlyOneItemSelected = DiffFiles.SelectedItems.Count() == 1;
openWithDifftoolToolStripMenuItem.Enabled = isExcactlyOneItemSelected;
saveAsToolStripMenuItem1.Enabled = isExcactlyOneItemSelected;
cherryPickSelectedDiffFileToolStripMenuItem.Enabled = isExcactlyOneItemSelected;
diffShowInFileTreeToolStripMenuItem.Enabled = isExcactlyOneItemSelected;
fileHistoryDiffToolstripMenuItem.Enabled = isExcactlyOneItemSelected;
blameToolStripMenuItem.Enabled = isExcactlyOneItemSelected;
// openContainingFolderToolStripMenuItem.Enabled or not
{
openContainingFolderToolStripMenuItem.Enabled = false;
foreach (var item in DiffFiles.SelectedItems)
{
string filePath = FormBrowseUtil.GetFullPathFromGitItemStatus(Module, item);
if (FormBrowseUtil.FileOrParentDirectoryExists(filePath))
{
openContainingFolderToolStripMenuItem.Enabled = true;
break;
}
}
}
}