Author: lluis
Date: 2007-05-25 13:14:54 -0400 (Fri, 25 May 2007)
New Revision: 77956
Modified:
trunk/monodevelop/Core/src/MonoDevelop.Ide/ChangeLog
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui/DefaultWorkbench.cs
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui/DisplayBindingService.cs
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui/IWorkbenchLayout.cs
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui/SdiWorkspaceLayout.cs
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Templates/FileDescriptionTemplate.cs
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Templates/FileTemplate.cs
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Templates/ProjectTemplate.cs
Log:
* MonoDevelop.Ide.Templates/FileTemplate.cs,
MonoDevelop.Ide.Templates/FileDescriptionTemplate.cs,
MonoDevelop.Ide.Templates/ProjectTemplate.cs,
MonoDevelop.Ide.Gui/DisplayBindingService.cs: Properly handle
add-in unload events.
* MonoDevelop.Ide.Gui/DefaultWorkbench.cs,
MonoDevelop.Ide.Gui/IWorkbenchLayout.cs,
MonoDevelop.Ide.Gui/SdiWorkspaceLayout.cs: Added support for
removing pads (needed for add-in unloading).
Modified: trunk/monodevelop/Core/src/MonoDevelop.Ide/ChangeLog
===================================================================
--- trunk/monodevelop/Core/src/MonoDevelop.Ide/ChangeLog 2007-05-25
17:12:12 UTC (rev 77955)
+++ trunk/monodevelop/Core/src/MonoDevelop.Ide/ChangeLog 2007-05-25
17:14:54 UTC (rev 77956)
@@ -1,3 +1,15 @@
+2007-05-25 Lluis Sanchez Gual <[EMAIL PROTECTED]>
+
+ * MonoDevelop.Ide.Templates/FileTemplate.cs,
+ MonoDevelop.Ide.Templates/FileDescriptionTemplate.cs,
+ MonoDevelop.Ide.Templates/ProjectTemplate.cs,
+ MonoDevelop.Ide.Gui/DisplayBindingService.cs: Properly handle
+ add-in unload events.
+ * MonoDevelop.Ide.Gui/DefaultWorkbench.cs,
+ MonoDevelop.Ide.Gui/IWorkbenchLayout.cs,
+ MonoDevelop.Ide.Gui/SdiWorkspaceLayout.cs: Added support for
+ removing pads (needed for add-in unloading).
+
2007-05-23 Jeffrey Stedfast <[EMAIL PROTECTED]>
* MonoDevelop.Ide.Gui.Content/TextEditorProperties.cs: Moved here
Modified:
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui/DefaultWorkbench.cs
===================================================================
---
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui/DefaultWorkbench.cs
2007-05-25 17:12:12 UTC (rev 77955)
+++
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui/DefaultWorkbench.cs
2007-05-25 17:14:54 UTC (rev 77956)
@@ -274,6 +274,14 @@
layout.ShowPad (content);
}
+ public void RemovePad (PadCodon codon)
+ {
+ PadContentCollection.Remove (codon);
+
+ if (layout != null)
+ layout.RemovePad (codon);
+ }
+
public virtual void BringToFront (PadCodon content)
{
if (!layout.IsVisible (content))
@@ -630,6 +638,10 @@
RedrawAllComponents ();
}
+ else {
+ PadCodon codon = (PadCodon) args.ExtensionNode;
+ RemovePad (codon);
+ }
}
// Handle keyboard shortcuts
Modified:
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui/DisplayBindingService.cs
===================================================================
---
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui/DisplayBindingService.cs
2007-05-25 17:12:12 UTC (rev 77955)
+++
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui/DisplayBindingService.cs
2007-05-25 17:14:54 UTC (rev 77956)
@@ -106,6 +106,8 @@
{
if (args.Change == ExtensionChange.Add)
bindings.Add
((DisplayBindingCodon)args.ExtensionNode);
+ else
+ bindings.Remove
((DisplayBindingCodon)args.ExtensionNode);
}
}
}
Modified:
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui/IWorkbenchLayout.cs
===================================================================
---
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui/IWorkbenchLayout.cs
2007-05-25 17:12:12 UTC (rev 77955)
+++
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui/IWorkbenchLayout.cs
2007-05-25 17:14:54 UTC (rev 77956)
@@ -77,6 +77,8 @@
/// </summary>
void HidePad(PadCodon content);
+ void RemovePad (PadCodon content);
+
/// <summary>
/// returns true, if padContent is visible;
/// </summary>
Modified:
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui/SdiWorkspaceLayout.cs
===================================================================
---
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui/SdiWorkspaceLayout.cs
2007-05-25 17:12:12 UTC (rev 77955)
+++
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui/SdiWorkspaceLayout.cs
2007-05-25 17:14:54 UTC (rev 77956)
@@ -353,6 +353,11 @@
collection.Add (pad);
}
}
+ else {
+ WorkbenchContextCodon codon =
(WorkbenchContextCodon) args.ExtensionNode;
+ WorkbenchContext ctx =
WorkbenchContext.GetContext (codon.Id);
+ padCollections.Remove (ctx);
+ }
}
public void Detach()
@@ -534,6 +539,25 @@
AddPad (content, content.DefaultPlacement);
}
+ public void RemovePad (PadCodon content)
+ {
+ DockItem item = GetDockItem (content);
+ if (item != null) {
+ if (item.IsAttached) {
+ Gtk.Container c = (Gtk.Container)
item.Parent;
+ c.Remove (item);
+ }
+ item.Destroy ();
+ }
+ PadWindow win = (PadWindow) padWindows [content];
+ padWindows.Remove (content);
+ padCodons.Remove (win);
+
+ foreach (List<PadCodon> pads in padCollections.Values) {
+ pads.Remove (content);
+ }
+ }
+
public bool IsVisible (PadCodon padContent)
{
DockItem item = GetDockItem (padContent);
Modified:
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Templates/FileDescriptionTemplate.cs
===================================================================
---
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Templates/FileDescriptionTemplate.cs
2007-05-25 17:12:12 UTC (rev 77955)
+++
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Templates/FileDescriptionTemplate.cs
2007-05-25 17:14:54 UTC (rev 77956)
@@ -42,6 +42,8 @@
{
if (args.Change == ExtensionChange.Add)
templates.Add ((FileTemplateTypeCodon)
args.ExtensionNode);
+ else
+ templates.Remove ((FileTemplateTypeCodon)
args.ExtensionNode);
}
public abstract string Name { get; }
Modified:
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Templates/FileTemplate.cs
===================================================================
---
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Templates/FileTemplate.cs
2007-05-25 17:12:12 UTC (rev 77955)
+++
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Templates/FileTemplate.cs
2007-05-25 17:14:54 UTC (rev 77956)
@@ -218,6 +218,15 @@
Services.MessageService.ShowError (e,
GettextCatalog.GetString ("Error loading template from resource {0}",
codon.Resource));
}
}
+ else {
+ FileTemplateCodon codon = (FileTemplateCodon)
args.ExtensionNode;
+ foreach (FileTemplate t in fileTemplates) {
+ if (t.Id == codon.Id) {
+ fileTemplates.Remove (t);
+ break;
+ }
+ }
+ }
}
internal static ArrayList GetFileTemplates (Project project)
Modified:
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Templates/ProjectTemplate.cs
===================================================================
---
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Templates/ProjectTemplate.cs
2007-05-25 17:12:12 UTC (rev 77955)
+++
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Templates/ProjectTemplate.cs
2007-05-25 17:14:54 UTC (rev 77956)
@@ -290,6 +290,15 @@
Services.MessageService.ShowError (e,
GettextCatalog.GetString ("Error loading template from resource {0}",
codon.Resource));
}
}
+ else {
+ foreach (ProjectTemplate pt in
ProjectTemplates) {
+ ProjectTemplateCodon codon =
(ProjectTemplateCodon) args.ExtensionNode;
+ if (pt.Id == codon.Id) {
+ ProjectTemplates.Remove (pt);
+ break;
+ }
+ }
+ }
}
}
}
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches