Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLluis Sanchez <lluis@novell.com>2009-04-28 16:48:00 +0400
committerLluis Sanchez <lluis@novell.com>2009-04-28 16:48:00 +0400
commit71a45e74516e3afb3b82849ab8913983ac9cc097 (patch)
tree74b630518d0a8ebcf1ee2f21811fe1d2aeb38607 /main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad
parent511caefc132b9fc27a6aa551c56f91cd3d5d0a66 (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')
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolder.cs28
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolderNodeBuilder.cs10
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SystemFile.cs18
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 ();
}