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

Reply via email to