Browse Source

Merge branch 'master' of github.com:icsharpcode/SharpDevelop

pull/725/merge
Peter Forstmeier 10 years ago
parent
commit
202b5f1761
  1. 1
      src/AddIns/DisplayBindings/ResourceEditor/Project/Src/Commands/EditCommentCommand.cs
  2. 1
      src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ViewModels/ResourceItem.cs
  3. 40
      src/Main/Base/Project/Designer/TypeResolutionService.cs
  4. 1
      src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/FolderNodeCommands.cs

1
src/AddIns/DisplayBindings/ResourceEditor/Project/Src/Commands/EditCommentCommand.cs

@ -34,6 +34,7 @@ namespace ResourceEditor.Commands @@ -34,6 +34,7 @@ namespace ResourceEditor.Commands
selectedItem.Comment);
if (newValue != null && newValue != selectedItem.Comment) {
selectedItem.Comment = newValue;
selectedItem.RichComment = newValue;
}
}
}

1
src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ViewModels/ResourceItem.cs

@ -65,6 +65,7 @@ namespace ResourceEditor.ViewModels @@ -65,6 +65,7 @@ namespace ResourceEditor.ViewModels
this.ResourceValue = resourceValue;
this.resourceType = GetResourceTypeFromValue(resourceValue);
this.Comment = comment;
this.RichComment = comment;
}
#region INotifyPropertyChanged implementation

40
src/Main/Base/Project/Designer/TypeResolutionService.cs

@ -411,9 +411,11 @@ namespace ICSharpCode.SharpDevelop.Designer @@ -411,9 +411,11 @@ namespace ICSharpCode.SharpDevelop.Designer
ITypeDefinition definition = ReflectionHelper.ParseReflectionName(name)
.Resolve(compilation).GetDefinition();
if (definition != null) {
Assembly assembly = LoadAssembly(definition.ParentAssembly);
if (assembly != null) {
type = assembly.GetType(name, false, ignoreCase);
using (var resolver = new ProjectAssemblyResolver(compilation, this)) {
Assembly assembly = LoadAssembly(definition.ParentAssembly);
if (assembly != null) {
type = assembly.GetType(name, false, ignoreCase);
}
}
}
}
@ -582,5 +584,37 @@ namespace ICSharpCode.SharpDevelop.Designer @@ -582,5 +584,37 @@ namespace ICSharpCode.SharpDevelop.Designer
}
return lastAssembly;
}
class ProjectAssemblyResolver : IDisposable
{
readonly ICompilation compilation;
readonly TypeResolutionService typeResolutionService;
public ProjectAssemblyResolver(ICompilation compilation, TypeResolutionService typeResolutionService)
{
this.compilation = compilation;
this.typeResolutionService = typeResolutionService;
AppDomain.CurrentDomain.AssemblyResolve += AssemblyResolve;
}
public void Dispose()
{
AppDomain.CurrentDomain.AssemblyResolve -= AssemblyResolve;
}
Assembly AssemblyResolve(object sender, ResolveEventArgs args)
{
try {
IAssembly assembly = compilation.Assemblies
.FirstOrDefault(asm => asm.FullAssemblyName == args.Name);
if (assembly != null) {
return typeResolutionService.LoadAssembly(assembly);
}
} catch (Exception ex) {
LoggingService.Error(ex);
}
return null;
}
}
}
}

1
src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/FolderNodeCommands.cs

@ -365,6 +365,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands @@ -365,6 +365,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands
FileTemplateResult result = SD.UIService.ShowNewFileDialog(node.Project, node.Directory);
if (result != null) {
node.RecreateSubNodes();
ProjectBrowserPad.Instance.ProjectBrowserControl.SelectFile(result.Options.FileName);
return result.NewFiles.Select(node.Project.FindFile).Where(f => f != null).ToArray();
} else {
return null;

Loading…
Cancel
Save