Beispiel #1
0
        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);
        }
Beispiel #2
0
        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();
        }
Beispiel #3
0
 private void MenuProjectPropertiesClick(object sender, EventArgs e)
 {
     if (SelectedNodes.Count() > 1 || (!SelectedNode.IsProject && !SelectedNode.IsSolution))
     {
         return;
     }
     MainForm.OpenSelectedFiles();
 }
Beispiel #4
0
 public void DeleteSelected()
 {
     while (SelectedNodes.Count() > 0)
     {
         // Such an incredibly obtuse interface
         Node nd = SelectedNodes.First();
         nd.Parent.Remove(nd.Tag);
     }
 }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        public bool CanProcessSelectedTreeNodes()
        {
            int count = SelectedNodes.Count();

            if (count == 0)
            {
                return(false);
            }
            int selectedFilesCount = SelectedItems.OfType <CompositFile>().Count();

            return(count == selectedFilesCount);
        }
Beispiel #7
0
        public bool CanSaveSelectedTreeNodes()
        {
            int count = SelectedNodes.Count();

            if (count == 0)
            {
                return(false);
            }
            int selectedFilesCount = SelectedFiles.Where(x => x.IsOpen).Count();

            return(count == selectedFilesCount);
        }
Beispiel #8
0
        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);
        }
Beispiel #9
0
        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);
        }
Beispiel #10
0
        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);
        }
Beispiel #11
0
        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);
        }
Beispiel #12
0
        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);
        }
Beispiel #13
0
        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);
        }
Beispiel #14
0
        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);
        }
Beispiel #15
0
        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;
        }
Beispiel #16
0
 private void UpdateCount()
 {
     SelectedCount = SelectedNodes.Count();
 }