Browse Source

Fixed SD2-603: Renaming a project in the project browser generates a not implement exception

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@902 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 20 years ago
parent
commit
aceb91aca1
  1. 2
      src/AddIns/BackendBindings/Boo/BooBinding/Project/BooBinding.csproj
  2. 2
      src/AddIns/BackendBindings/Boo/NRefactoryToBooConverter/Project/NRefactoryToBooConverter.csproj
  3. 46
      src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/ProjectNode.cs
  4. 2
      src/Main/Base/Project/Src/Project/IProject.cs

2
src/AddIns/BackendBindings/Boo/BooBinding/Project/BooBinding.csproj

@ -107,7 +107,7 @@ @@ -107,7 +107,7 @@
</ProjectReference>
<ProjectReference Include="..\..\..\..\..\Libraries\NRefactory\Project\NRefactory.csproj">
<Project>{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195}</Project>
<Name>ICSharpCode.Core</Name>
<Name>NRefactory</Name>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\..\..\..\Libraries\ICSharpCode.TextEditor\Project\ICSharpCode.TextEditor.csproj">

2
src/AddIns/BackendBindings/Boo/NRefactoryToBooConverter/Project/NRefactoryToBooConverter.csproj

@ -53,7 +53,7 @@ @@ -53,7 +53,7 @@
<ItemGroup>
<ProjectReference Include="..\..\..\..\..\Libraries\NRefactory\Project\NRefactory.csproj">
<Project>{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195}</Project>
<Name>ICSharpCode.Core</Name>
<Name>NRefactory</Name>
<Private>False</Private>
</ProjectReference>
</ItemGroup>

46
src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/ProjectNode.cs

@ -75,7 +75,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -75,7 +75,7 @@ namespace ICSharpCode.SharpDevelop.Project
MessageService.ShowError("No installed project options panels were found.");
}
}
#region Drag & Drop
public override DataObject DragDropDataObject {
get {
@ -124,12 +124,52 @@ namespace ICSharpCode.SharpDevelop.Project @@ -124,12 +124,52 @@ namespace ICSharpCode.SharpDevelop.Project
public override void AfterLabelEdit(string newName)
{
throw new System.NotImplementedException();
RenameProject(project, newName);
Text = project.Name;
}
public static void RenameProject(IProject project, string newName)
{
if (project.Name == newName)
return;
if (!FileService.CheckFileName(newName))
return;
// multiple projects with the same name shouldn't be a problem
// foreach (IProject p in ProjectService.OpenSolution.Projects) {
// if (string.Equals(p.Name, newName, StringComparison.OrdinalIgnoreCase)) {
// MessageService.ShowMessage("There is already a project with this name.");
// return;
// }
// }
string newFileName = Path.Combine(project.Directory, newName + Path.GetExtension(project.FileName));
if (File.Exists(newFileName)) {
MessageService.ShowError("The file " + newFileName + " already exists.");
return;
}
if (project.AssemblyName == project.Name)
project.AssemblyName = newName;
FileService.RenameFile(project.FileName, newFileName, false);
if (File.Exists(project.FileName + ".user"))
FileService.RenameFile(project.FileName + ".user", newFileName + ".user", false);
foreach (IProject p in ProjectService.OpenSolution.Projects) {
foreach (ProjectItem item in p.Items) {
if (item.ItemType == ItemType.ProjectReference) {
ProjectReferenceProjectItem refItem = (ProjectReferenceProjectItem)item;
if (refItem.ReferencedProject == project) {
refItem.ProjectName = newName;
refItem.Include = FileUtility.GetRelativePath(p.Directory, newFileName);
}
}
}
}
project.FileName = newFileName;
project.Name = newName;
ProjectService.SaveSolution();
}
public override object AcceptVisitor(ProjectBrowserTreeNodeVisitor visitor, object data)
{
return visitor.Visit(this, data);
}
}
}

2
src/Main/Base/Project/Src/Project/IProject.cs

@ -51,6 +51,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -51,6 +51,7 @@ namespace ICSharpCode.SharpDevelop.Project
string FileName {
get;
set;
}
string Directory {
get;
@ -67,6 +68,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -67,6 +68,7 @@ namespace ICSharpCode.SharpDevelop.Project
string AssemblyName {
get;
set;
}
string DocumentationFileName {

Loading…
Cancel
Save