Browse Source

Show in the SharpDevelop ToolBox not only Controls from referenced DLL's, show also the Controls from Referenced Projects

pull/52/head
jkuehner 12 years ago
parent
commit
ff2bd53476
  1. 22
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/Src/WpfToolbox.cs

22
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/Src/WpfToolbox.cs

@ -65,13 +65,25 @@ namespace ICSharpCode.WpfDesign.AddIn
public void AddProjectDlls(OpenedFile file) public void AddProjectDlls(OpenedFile file)
{ {
var pc = MyTypeFinder.GetProjectContent(file); var pc = MyTypeFinder.GetProjectContent(file);
foreach (ReflectionProjectContent referencedProjectContent in pc.ThreadSafeGetReferencedContents().Where(x=> x is ReflectionProjectContent)) foreach (var referencedProjectContent in pc.ThreadSafeGetReferencedContents())
{ {
if (!addedAssemblys.Contains(referencedProjectContent.AssemblyLocation)) string f = null;
if (referencedProjectContent is ParseProjectContent)
{
var prj = ((ParseProjectContent)referencedProjectContent).Project as AbstractProject;
if (prj != null)
f = prj.OutputAssemblyFullPath;
}
else if (referencedProjectContent is ReflectionProjectContent)
{
f = ((ReflectionProjectContent) referencedProjectContent).AssemblyLocation;
}
if (f != null && !addedAssemblys.Contains(f))
{ {
try try
{ {
var assembly = Assembly.LoadFrom(referencedProjectContent.AssemblyLocation); var assembly = Assembly.LoadFrom(f);
SideTab sideTab = new SideTab(sideBar, assembly.FullName.Split(new[] {','})[0]); SideTab sideTab = new SideTab(sideBar, assembly.FullName.Split(new[] {','})[0]);
sideTab.DisplayName = StringParser.Parse(sideTab.Name); sideTab.DisplayName = StringParser.Parse(sideTab.Name);
@ -91,12 +103,12 @@ namespace ICSharpCode.WpfDesign.AddIn
if (sideTab.Items.Count > 1) if (sideTab.Items.Count > 1)
sideBar.Tabs.Add(sideTab); sideBar.Tabs.Add(sideTab);
addedAssemblys.Add(referencedProjectContent.AssemblyLocation); addedAssemblys.Add(f);
} }
catch (Exception ex) catch (Exception ex)
{ {
WpfViewContent.DllLoadErrors.Add( WpfViewContent.DllLoadErrors.Add(
new Task(new BuildError(referencedProjectContent.AssemblyLocation, ex.Message))); new Task(new BuildError(f, ex.Message)));
} }
} }
} }

Loading…
Cancel
Save