private bool CreateCompareToMenu() { menuProjectCompareTo.DropDownItems.Clear(); if (SelectedNodes.Count() != 1) { return(false); } var selectedFile = SelectedNode.ProjectItem as CompositFile; if (selectedFile == null) { return(false); } CompositFile[] filesInOtherProjects = _solution.Projects.Select(x => x.GetProjectFile(selectedFile.RelativePath)).OfType <CompositFile>().Where (x => x != null && !ReferenceEquals(x, selectedFile)).ToArray(); menuProjectCompareTo.Visible = false; if (filesInOtherProjects.Length == 0) { return(false); } menuProjectCompareTo.Visible = true; foreach (CompositFile otherFile in filesInOtherProjects) { CreateMenuItem(otherFile); } return(true); }
private void CheckBox_Checked(object sender, RoutedEventArgs e) { var nodeCb = e.Source as CheckBox; var node = nodeCb?.DataContext as TreeNode; if (node == null) { return; } SelectedNode = node; SelectedNodes.Add(SelectedNode); if (node is FolderNode) { foreach (var item in SelectedNode.Descendents) { if (!item.IsSelected) { item.IsSelected = true; SelectedNodes.Add(item); } } } SelectedCount = SelectedNodes.Count(); }
private void MenuProjectPropertiesClick(object sender, EventArgs e) { if (SelectedNodes.Count() > 1 || (!SelectedNode.IsProject && !SelectedNode.IsSolution)) { return; } MainForm.OpenSelectedFiles(); }
public void DeleteSelected() { while (SelectedNodes.Count() > 0) { // Such an incredibly obtuse interface Node nd = SelectedNodes.First(); nd.Parent.Remove(nd.Tag); } }
public bool CanRevertSelectedTreeNodes() { int count = SelectedNodes.Count(); if (count == 0) { return(false); } int selectedFilesCount = SelectedItems.OfType <CompositFile>().Where(x => x.HasBackupFile).Count(); return(count == selectedFilesCount); }
public bool CanProcessSelectedTreeNodes() { int count = SelectedNodes.Count(); if (count == 0) { return(false); } int selectedFilesCount = SelectedItems.OfType <CompositFile>().Count(); return(count == selectedFilesCount); }
public bool CanSaveSelectedTreeNodes() { int count = SelectedNodes.Count(); if (count == 0) { return(false); } int selectedFilesCount = SelectedFiles.Where(x => x.IsOpen).Count(); return(count == selectedFilesCount); }
public bool CanShowPropertiesSelectedTreeNodes() { int count = SelectedNodes.Count(); if (count == 0) { return(false); } int selectedFilesCount = SelectedNodes.Where(x => x.IsSolution || x.IsProject).Count(); return(count == selectedFilesCount); }
public bool CanEncodeSelectedTreeNodes() { if (!_solution.Properties.CanDecodeAndEncode) { return(false); } int count = SelectedNodes.Count(); if (count == 0) { return(false); } int selectedFilesCount = SelectedItems.OfType <ApkFile>().Where(x => x.IsDeCoded).Count(); return(count == selectedFilesCount); }
public bool CanOptimizePngSelectedTreeNodes() { if (!_solution.Properties.CanOptimizePng) { return(false); } int count = SelectedNodes.Count(); if (count == 0) { return(false); } int selectedFilesCount = SelectedItems.OfType <ApkFile>().Count(); return(count == selectedFilesCount); }
public bool CanRecompileSelectedTreeNodes() { if (!_solution.Properties.CanRecompile) { return(false); } int count = SelectedNodes.Count(); if (count == 0) { return(false); } int selectedFilesCount = SelectedItems.OfType <CompositFile>().Where(x => x.IsDeCompiled).Count(); return(count == selectedFilesCount); }
public bool CanOpenSelectedTreeNodes() { int count = SelectedNodes.Count(); if (count == 0) { return(false); } if (SelectedNodes.Count(node => node.IsSolution || node.IsProject) > 0) { return(false); } int selectedFilesCount = SelectedFiles.Where(x => x.CanOpen).Count(); return(count == selectedFilesCount); }
public bool CanRemoveSelectedTreeNodes() { int count = SelectedNodes.Count(); if (count == 0) { return(false); } if (SelectedNodes.Count(node => node.IsSolution) > 0) { return(false); } int selectedFilesCount = SelectedNodes.Where(x => x.IsMissing || x.IsProject).Count(); return(count == selectedFilesCount); }
public bool CanIncludeSelectedTreeNodes() { CrcsProject project = null; if (SelectedNodes.Count() == 0) { return(false); } foreach (ProjectTreeNode node in SelectedNodes) { if (node.IsSolution || node.IsProject) { return(false); } if (node.IsIncluded) { return(false); } CrcsProject proj = GetProject(node); if (project == null) { project = proj; } else if (!ReferenceEquals(proj, project)) { return(false); } if (node.ProjectItem == null) { return(false); } if (node.ProjectItem.IsIncluded) { return(false); } } return(true); }
private void ContextMenuProjectOpening(object sender, CancelEventArgs e) { int selectedFilesCount = SelectedItems.Count(); if (selectedFilesCount == 0) { e.Cancel = true; return; } int missingFilesCount = SelectedNodes.Count(x => x.IsMissing); int selectedNodesCount = SelectedNodes.Count(); if (missingFilesCount == selectedNodesCount) { foreach (ToolStripItem item in contextMenuProject.Items) { item.Visible = false; } menuProjectRemove.Visible = true; menuProjectReloadProject.Visible = SelectedNodes.Count(x => x.IsProject) == missingFilesCount; return; } bool onlyOneSelected = SelectedNodes.Count() == 1; bool canReloadProject = (SelectedNodes.Count(node => node.IsProject) == SelectedNodes.Count() && onlyOneSelected); bool isSolution = (SelectedNodes.Count(node => node.IsSolution) > 0 && onlyOneSelected); bool isProjectOrSolution = (SelectedNodes.Count(node => node.IsSolution || node.IsProject) > 0); bool canShowPropertiesSelectedTreeNodes = CanShowPropertiesSelectedTreeNodes(); bool canRemoveSelectedTreeNodes = CanRemoveSelectedTreeNodes(); bool canOpenSelectedTreeNodes = CanOpenSelectedTreeNodes(); bool canProcessSelectedTreeNodes = CanProcessSelectedTreeNodes(); bool canIncludeSelectedTreeNodes = CanIncludeSelectedTreeNodes(); bool canExcludeSelectedTreeNodes = CanExcludeSelectedTreeNodes(); bool canRevertSelectedTreeNodes = CanRevertSelectedTreeNodes(); bool canDecodeSelectedTreeNodes = CanDecodeSelectedTreeNodes(); bool canEncodeSelectedTreeNodes = CanEncodeSelectedTreeNodes(); bool canRecompileSelectedTreeNodes = CanRecompileSelectedTreeNodes(); bool canDecompileSelectedTreeNodes = CanDecompileSelectedTreeNodes(); bool canOptiPngSelectedTreeNodes = CanOptimizePngSelectedTreeNodes(); menuProjectOpen.Visible = canOpenSelectedTreeNodes; bool barVisible = canOpenSelectedTreeNodes; menuProjectBar1.Visible = (canIncludeSelectedTreeNodes || canExcludeSelectedTreeNodes) && barVisible; menuProjectIncludeInProject.Visible = canIncludeSelectedTreeNodes; menuProjectExcludeFromProject.Visible = canExcludeSelectedTreeNodes; barVisible = canIncludeSelectedTreeNodes || canExcludeSelectedTreeNodes || barVisible; bool bar2Visible = canProcessSelectedTreeNodes || canDecodeSelectedTreeNodes || canEncodeSelectedTreeNodes || canRecompileSelectedTreeNodes || canDecompileSelectedTreeNodes || canOptiPngSelectedTreeNodes; menuProjectBar2.Visible = bar2Visible && barVisible; menuProjectProcess.Visible = canProcessSelectedTreeNodes; menuProjectDecompile.Visible = canDecompileSelectedTreeNodes; menuProjectRecompile.Visible = canRecompileSelectedTreeNodes; menuProjectOptimizePng.Visible = canOptiPngSelectedTreeNodes; menuProjectDecode.Visible = canDecodeSelectedTreeNodes; menuProjectEncode.Visible = canEncodeSelectedTreeNodes; barVisible = bar2Visible || barVisible; bool canCompare = CreateCompareToMenu(); bool bar3Visible = canRevertSelectedTreeNodes || canCompare; menuProjectBar3.Visible = bar3Visible && barVisible; menuProjectRevert.Visible = canRevertSelectedTreeNodes; barVisible = bar3Visible || barVisible; bool bar4Visible = !isProjectOrSolution && onlyOneSelected; menuProjectBar4.Visible = bar4Visible && barVisible; menuProjectCopyFullPath.Visible = bar4Visible; menuProjectOpenContainingFolder.Visible = bar4Visible; barVisible = bar4Visible || barVisible; bool bar5Visible = canRemoveSelectedTreeNodes || canReloadProject; menuProjectBar5.Visible = bar5Visible && barVisible; menuProjectRemove.Visible = canRemoveSelectedTreeNodes; menuProjectReloadProject.Visible = canReloadProject; barVisible = bar5Visible || barVisible; menuProjectBar6.Visible = canShowPropertiesSelectedTreeNodes && !isSolution && barVisible; menuProjectProperties.Visible = canShowPropertiesSelectedTreeNodes; }
private void UpdateCount() { SelectedCount = SelectedNodes.Count(); }