Browse Source

Fixed forum-6609: renaming a form with refactoring does not rename .Designer.cs and .resx

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@2975 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 18 years ago
parent
commit
72faf95e10
  1. 7
      src/AddIns/Misc/SubversionAddIn/Project/Src/SubversionStateCondition.cs
  2. 1
      src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/FileNode.cs
  3. 53
      src/Main/Base/Project/Src/TextEditor/Commands/ClassBookmarkMenuBuilder.cs

7
src/AddIns/Misc/SubversionAddIn/Project/Src/SubversionStateCondition.cs

@ -80,7 +80,12 @@ namespace ICSharpCode.Svn @@ -80,7 +80,12 @@ namespace ICSharpCode.Svn
if (allowedStatus.Length == 0 || (allowedStatus.Length == 1 && allowedStatus[0].Length == 0)) {
return true;
}
string status = OverlayIconManager.GetStatus(fileName).ToString();
string status;
if (RegisterEventsCommand.CanBeVersionControlledFile(fileName)) {
status = OverlayIconManager.GetStatus(fileName).ToString();
} else {
status = "Unversioned";
}
/*if (status == "Unversioned") {
PropertyDictionary pd = SvnClient.Instance.Client.PropGet("svn:ignore", Path.GetDirectoryName(fileName), Revision.Working, Recurse.None);
if (pd != null) {

1
src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/FileNode.cs

@ -167,6 +167,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -167,6 +167,7 @@ namespace ICSharpCode.SharpDevelop.Project
}
}
}
public override object AcceptVisitor(ProjectBrowserTreeNodeVisitor visitor, object data)
{
return visitor.Visit(this, data);

53
src/Main/Base/Project/Src/TextEditor/Commands/ClassBookmarkMenuBuilder.cs

@ -119,20 +119,25 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands @@ -119,20 +119,25 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands
{
if (c.CompilationUnit.Classes.Count == 1) {
// Rename file to ##
cmd = new MenuCommand(StringParser.Parse("${res:SharpDevelop.Refactoring.RenameFileTo}", new string[,] {{ "FileName", Path.GetFileName(correctFileName) }}),
delegate {
FileService.RenameFile(c.CompilationUnit.FileName, correctFileName, false);
if (c.ProjectContent.Project != null) {
((IProject)c.ProjectContent.Project).Save();
}
});
cmd = new MenuCommand(
StringParser.Parse("${res:SharpDevelop.Refactoring.RenameFileTo}",
new string[,] {{ "FileName", Path.GetFileName(correctFileName) }}),
delegate {
IProject p = (IProject)c.ProjectContent.Project;
RenameFile(p, c.CompilationUnit.FileName, correctFileName);
if (p != null) {
p.Save();
}
});
list.Add(cmd);
} else if (language.RefactoringProvider.SupportsCreateNewFileLikeExisting && language.RefactoringProvider.SupportsGetFullCodeRangeForType) {
// Move class to file ##
cmd = new MenuCommand(StringParser.Parse("${res:SharpDevelop.Refactoring.MoveClassToFile}", new string[,] {{ "FileName", Path.GetFileName(correctFileName) }}),
delegate {
MoveClassToFile(c, correctFileName);
});
cmd = new MenuCommand(
StringParser.Parse("${res:SharpDevelop.Refactoring.MoveClassToFile}",
new string[,] {{ "FileName", Path.GetFileName(correctFileName) }}),
delegate {
MoveClassToFile(c, correctFileName);
});
list.Add(cmd);
}
}
@ -164,6 +169,32 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands @@ -164,6 +169,32 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands
return list.ToArray();
}
static void RenameFile(IProject p, string oldFileName, string newFileName)
{
FileService.RenameFile(oldFileName, newFileName, false);
if (p != null) {
string oldPrefix = Path.GetFileNameWithoutExtension(oldFileName) + ".";
string newPrefix = Path.GetFileNameWithoutExtension(newFileName) + ".";
foreach (ProjectItem item in p.Items) {
FileProjectItem fileItem = item as FileProjectItem;
if (fileItem == null)
continue;
string dependentUpon = fileItem.DependentUpon;
if (string.IsNullOrEmpty(dependentUpon))
continue;
string directory = Path.GetDirectoryName(fileItem.FileName);
dependentUpon = Path.Combine(directory, dependentUpon);
if (FileUtility.IsEqualFileName(dependentUpon, oldFileName)) {
fileItem.DependentUpon = FileUtility.GetRelativePath(directory, newFileName);
string fileName = Path.GetFileName(fileItem.FileName);
if (fileName.StartsWith(oldPrefix)) {
RenameFile(p, fileItem.FileName, Path.Combine(directory, newPrefix + fileName.Substring(oldPrefix.Length)));
}
}
}
}
}
static void MoveClassToFile(IClass c, string newFileName)
{
LanguageProperties language = c.ProjectContent.Language;

Loading…
Cancel
Save