diff options
author | Lluis Sanchez <lluis@novell.com> | 2009-04-28 16:48:00 +0400 |
---|---|---|
committer | Lluis Sanchez <lluis@novell.com> | 2009-04-28 16:48:00 +0400 |
commit | 71a45e74516e3afb3b82849ab8913983ac9cc097 (patch) | |
tree | 74b630518d0a8ebcf1ee2f21811fe1d2aeb38607 /main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad | |
parent | 511caefc132b9fc27a6aa551c56f91cd3d5d0a66 (diff) |
* src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SystemFile.cs:
* src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolder.cs:
* src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolderNodeBuilder.cs:
* src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/VersionControlNodeExtension.cs:
* src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/VersionControlCommandHandler.cs:
Added ParentWorkspaceObject to SystemFile and ProjectFolder, which
replaces the old Project property. It is required because now it is
possible to show hiddem folders and files as children of a solution.
svn path=/trunk/monodevelop/; revision=132839
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad')
3 files changed, 30 insertions, 26 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolder.cs index 3ee167306f..a7900889a0 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolder.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolder.cs @@ -39,18 +39,18 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad public class ProjectFolder: IDisposable, IFolderItem { string absolutePath; - Project project; + IWorkspaceObject parentWorkspaceObject; object parent; bool trackChanges; - public ProjectFolder (string absolutePath, Project project): this (absolutePath, project, null) + public ProjectFolder (string absolutePath, IWorkspaceObject parentWorkspaceObject): this (absolutePath, parentWorkspaceObject, null) { } - public ProjectFolder (string absolutePath, Project project, object parent) + public ProjectFolder (string absolutePath, IWorkspaceObject parentWorkspaceObject, object parent) { this.parent = parent; - this.project = project; + this.parentWorkspaceObject = parentWorkspaceObject; this.absolutePath = absolutePath; } @@ -79,35 +79,39 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad get { return System.IO.Path.GetFileName (absolutePath); } } + public IWorkspaceObject ParentWorkspaceObject { + get { return parentWorkspaceObject; } + } + public Project Project { - get { return project; } + get { return parentWorkspaceObject as Project; } } public object Parent { get { if (parent != null) return parent; - if (project == null) + if (parentWorkspaceObject == null) return null; string dir = System.IO.Path.GetDirectoryName (absolutePath); - if (dir == project.BaseDirectory) - return project; + if (dir == parentWorkspaceObject.BaseDirectory) + return parentWorkspaceObject; else - return new ProjectFolder (dir, project, null); + return new ProjectFolder (dir, parentWorkspaceObject, null); } } public override bool Equals (object other) { ProjectFolder f = other as ProjectFolder; - return f != null && absolutePath == f.absolutePath && project == f.project; + return f != null && absolutePath == f.absolutePath && parentWorkspaceObject == f.parentWorkspaceObject; } public override int GetHashCode () { - if (project != null) - return (absolutePath + project.Name).GetHashCode (); + if (parentWorkspaceObject != null) + return (absolutePath + parentWorkspaceObject.Name).GetHashCode (); else return absolutePath.GetHashCode (); } diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolderNodeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolderNodeBuilder.cs index e461c74821..e8cef9c3e5 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolderNodeBuilder.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolderNodeBuilder.cs @@ -175,9 +175,9 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad foreach (ITreeNavigator node in CurrentNodes) { ProjectFolder folder = (ProjectFolder) node.DataItem as ProjectFolder; Project project = folder.Project; - ProjectFile[] files = folder.Project.Files.GetFilesInPath (folder.Path); + ProjectFile[] files = project != null ? project.Files.GetFilesInPath (folder.Path) : null; - if (files.Length == 0) { + if (files != null && files.Length == 0) { bool yes = MessageService.Confirm (GettextCatalog.GetString ("Are you sure you want to permanently delete the folder {0}?", folder.Path), AlertButton.Delete); if (!yes) return; @@ -203,9 +203,9 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad } foreach (ProjectFile file in files) - folder.Project.Files.Remove (file); + project.Files.Remove (file); - projects.Add (folder.Project); + projects.Add (project); } } IdeApp.ProjectOperations.Save (projects); @@ -244,7 +244,7 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad foreach (ITreeNavigator nav in CurrentNodes) { Project project = nav.GetParentDataItem (typeof (Project), true) as Project; string thisPath = GetFolderPath (nav.DataItem); - if (PathExistsInProject (project, thisPath)) { + if (project == null || PathExistsInProject (project, thisPath)) { item.Visible = false; return; } diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SystemFile.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SystemFile.cs index a6c3c2c91e..f260a43d0b 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SystemFile.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SystemFile.cs @@ -36,16 +36,16 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad public class SystemFile: IFileItem { string absolutePath; - Project project; + IWorkspaceObject parent; bool showTransparent; - public SystemFile (string absolutePath, Project project): this (absolutePath, project, true) + public SystemFile (string absolutePath, IWorkspaceObject parent): this (absolutePath, parent, true) { } - public SystemFile (string absolutePath, Project project, bool showTransparent) + public SystemFile (string absolutePath, IWorkspaceObject parent, bool showTransparent) { - this.project = project; + this.parent = parent; this.absolutePath = absolutePath; this.showTransparent = showTransparent; } @@ -62,8 +62,8 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad get { return System.IO.Path.GetFileName (absolutePath); } } - public Project Project { - get { return project; } + public IWorkspaceObject ParentWorkspaceObject { + get { return parent; } } public bool ShowTransparent { @@ -74,13 +74,13 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad public override bool Equals (object other) { SystemFile f = other as SystemFile; - return f != null && absolutePath == f.absolutePath && project == f.project; + return f != null && absolutePath == f.absolutePath && parent == f.parent; } public override int GetHashCode () { - if (project != null) - return (absolutePath + project.Name).GetHashCode (); + if (parent != null) + return (absolutePath + parent.Name).GetHashCode (); else return absolutePath.GetHashCode (); } |