Browse Source

Custom components side tab is now updated when a new reference is added to the project. It is also disposed before creating a new instance when the toolbox side tabs are reloaded.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/2.1@2299 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Matt Ward 19 years ago
parent
commit
3cbcab3bf6
  1. 22
      src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Gui/CustomComponentsSideTab.cs
  2. 9
      src/AddIns/DisplayBindings/FormsDesigner/Project/Src/ToolboxProvider.cs

22
src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Gui/CustomComponentsSideTab.cs

@ -21,8 +21,10 @@ using ICSharpCode.SharpDevelop.Widgets.SideBar; @@ -21,8 +21,10 @@ using ICSharpCode.SharpDevelop.Widgets.SideBar;
namespace ICSharpCode.FormsDesigner.Gui
{
public class CustomComponentsSideTab : SideTabDesigner
public class CustomComponentsSideTab : SideTabDesigner, IDisposable
{
bool disposed;
///<summary>Load an assembly's controls</summary>
public CustomComponentsSideTab(SideBarControl sideTab, string name, IToolboxService toolboxService)
: base(sideTab, name, toolboxService)
@ -31,6 +33,17 @@ namespace ICSharpCode.FormsDesigner.Gui @@ -31,6 +33,17 @@ namespace ICSharpCode.FormsDesigner.Gui
ScanProjectAssemblies();
ProjectService.EndBuild += RescanProjectAssemblies;
ProjectService.SolutionLoaded += RescanProjectAssemblies;
ProjectService.ProjectItemAdded += ProjectItemAdded;
}
public void Dispose()
{
if (!disposed) {
disposed = true;
ProjectService.EndBuild -= RescanProjectAssemblies;
ProjectService.SolutionLoaded -= RescanProjectAssemblies;
ProjectService.ProjectItemAdded -= ProjectItemAdded;
}
}
void RescanProjectAssemblies(object sender, EventArgs e)
@ -41,6 +54,13 @@ namespace ICSharpCode.FormsDesigner.Gui @@ -41,6 +54,13 @@ namespace ICSharpCode.FormsDesigner.Gui
SharpDevelopSideBar.SideBar.Refresh();
}
void ProjectItemAdded(object sender, ProjectItemEventArgs e)
{
if (e.ProjectItem is ReferenceProjectItem) {
RescanProjectAssemblies(sender, e);
}
}
void ScanProjectAssemblies()
{
// custom user controls don't need custom images

9
src/AddIns/DisplayBindings/FormsDesigner/Project/Src/ToolboxProvider.cs

@ -26,6 +26,8 @@ namespace ICSharpCode.FormsDesigner @@ -26,6 +26,8 @@ namespace ICSharpCode.FormsDesigner
static ICSharpCode.FormsDesigner.Services.ToolboxService toolboxService = null;
public static List<SideTab> SideTabs = new List<SideTab>();
static CustomComponentsSideTab customTab;
static ComponentLibraryLoader componentLibraryLoader = new ComponentLibraryLoader();
public static ComponentLibraryLoader ComponentLibraryLoader {
@ -90,7 +92,7 @@ namespace ICSharpCode.FormsDesigner @@ -90,7 +92,7 @@ namespace ICSharpCode.FormsDesigner
tab.ItemsExchanged -= SideTabItemsExchanged;
if (SharpDevelopSideBar.SideBar.Tabs.Contains(tab)) {
SharpDevelopSideBar.SideBar.Tabs.Remove(tab);
reInsertTabs = true;;
reInsertTabs = true;
}
}
reInsertTabs &= doInsert;
@ -108,7 +110,10 @@ namespace ICSharpCode.FormsDesigner @@ -108,7 +110,10 @@ namespace ICSharpCode.FormsDesigner
}
}
}
SideTabDesigner customTab = new CustomComponentsSideTab(SharpDevelopSideBar.SideBar, ResourceService.GetString("ICSharpCode.SharpDevelop.FormDesigner.ToolboxProvider.CustomComponents"), toolboxService);
if (customTab != null) {
customTab.Dispose();
}
customTab = new CustomComponentsSideTab(SharpDevelopSideBar.SideBar, ResourceService.GetString("ICSharpCode.SharpDevelop.FormDesigner.ToolboxProvider.CustomComponents"), toolboxService);
customTab.ItemRemoved += SideTabItemRemoved;
customTab.ItemsExchanged += SideTabItemsExchanged;
SideTabs.Add(customTab);

Loading…
Cancel
Save