Author: lluis
Date: 2007-05-25 13:19:02 -0400 (Fri, 25 May 2007)
New Revision: 77958
Modified:
trunk/monodevelop/Core/src/MonoDevelop.Projects/ChangeLog
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects.Serialization/ClassDataType.cs
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects.Serialization/DataContext.cs
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects/DotNetProject.cs
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects/FileFormatManager.cs
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects/LanguageBindingService.cs
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects/ProjectService.cs
Log:
* MonoDevelop.Projects/ProjectService.cs,
MonoDevelop.Projects/LanguageBindingService.cs,
MonoDevelop.Projects/FileFormatManager.cs,
MonoDevelop.Projects.Serialization/DataContext.cs,
MonoDevelop.Projects.Serialization/ClassDataType.cs: Properly
handle add-in unload events.
* MonoDevelop.Projects/DotNetProject.cs: Added null check.
Modified: trunk/monodevelop/Core/src/MonoDevelop.Projects/ChangeLog
===================================================================
--- trunk/monodevelop/Core/src/MonoDevelop.Projects/ChangeLog 2007-05-25
17:16:18 UTC (rev 77957)
+++ trunk/monodevelop/Core/src/MonoDevelop.Projects/ChangeLog 2007-05-25
17:19:02 UTC (rev 77958)
@@ -1,3 +1,13 @@
+2007-05-25 Lluis Sanchez Gual <[EMAIL PROTECTED]>
+
+ * MonoDevelop.Projects/ProjectService.cs,
+ MonoDevelop.Projects/LanguageBindingService.cs,
+ MonoDevelop.Projects/FileFormatManager.cs,
+ MonoDevelop.Projects.Serialization/DataContext.cs,
+ MonoDevelop.Projects.Serialization/ClassDataType.cs: Properly
+ handle add-in unload events.
+ * MonoDevelop.Projects/DotNetProject.cs: Added null check.
+
2007-05-23 Jeffrey Stedfast <[EMAIL PROTECTED]>
* MonoDevelop.Projects.CodeGeneration/BaseRefactorer.cs (GetOptions):
Modified:
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects/DotNetProject.cs
===================================================================
---
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects/DotNetProject.cs
2007-05-25 17:16:18 UTC (rev 77957)
+++
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects/DotNetProject.cs
2007-05-25 17:19:02 UTC (rev 77958)
@@ -156,7 +156,7 @@
DefaultCompilerResult refres = null;
if (pr.ReferenceType == ReferenceType.Project) {
// Ignore non-dotnet projects
- Project p = RootCombine.FindProject
(pr.Reference);
+ Project p = RootCombine != null ?
RootCombine.FindProject (pr.Reference) : null;
if (p != null && !(p is DotNetProject))
continue;
Modified:
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects/FileFormatManager.cs
===================================================================
---
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects/FileFormatManager.cs
2007-05-25 17:16:18 UTC (rev 77957)
+++
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects/FileFormatManager.cs
2007-05-25 17:19:02 UTC (rev 77958)
@@ -42,6 +42,11 @@
fileFormats.Add (format);
}
+ public void UnregisterFileFormat (IFileFormat format)
+ {
+ fileFormats.Remove (format);
+ }
+
public IFileFormat[] GetFileFormats (string fileName)
{
ArrayList list = new ArrayList ();
Modified:
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects/LanguageBindingService.cs
===================================================================
---
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects/LanguageBindingService.cs
2007-05-25 17:16:18 UTC (rev 77957)
+++
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects/LanguageBindingService.cs
2007-05-25 17:19:02 UTC (rev 77958)
@@ -130,6 +130,8 @@
// Make sure the langs list is re-created
langs = null;
}
+ else
+ bindings.Remove ((LanguageBindingCodon)
args.ExtensionNode);
}
}
}
Modified:
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects/ProjectService.cs
===================================================================
---
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects/ProjectService.cs
2007-05-25 17:16:18 UTC (rev 77957)
+++
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects/ProjectService.cs
2007-05-25 17:19:02 UTC (rev 77958)
@@ -310,6 +310,8 @@
{
if (args.Change == ExtensionChange.Add)
formatManager.RegisterFileFormat ((IFileFormat)
args.ExtensionObject);
+ else
+ formatManager.UnregisterFileFormat
((IFileFormat) args.ExtensionObject);
}
void OnSerializableExtensionChanged (object s,
ExtensionNodeEventArgs args)
@@ -321,6 +323,7 @@
}
DataContext.IncludeType (t);
}
+ // Types can't be excluded from a DataContext, but
that's not a big problem anyway
}
void OnPropertiesExtensionChanged (object s,
ExtensionNodeEventArgs args)
@@ -330,6 +333,11 @@
if (cls.Class != null && cls.PropertyType !=
null)
DataContext.RegisterProperty
(cls.Class, cls.PropertyName, cls.PropertyType);
}
+ else {
+ ItemPropertyCodon cls = (ItemPropertyCodon)
args.ExtensionNode;
+ if (cls.Class != null && cls.PropertyType !=
null)
+ DataContext.UnregisterProperty
(cls.Class, cls.PropertyName);
+ }
}
void OnProjectsExtensionChanged (object s,
ExtensionNodeEventArgs args)
Modified:
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects.Serialization/ClassDataType.cs
===================================================================
---
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects.Serialization/ClassDataType.cs
2007-05-25 17:16:18 UTC (rev 77957)
+++
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects.Serialization/ClassDataType.cs
2007-05-25 17:19:02 UTC (rev 77958)
@@ -183,6 +183,20 @@
}
}
+ public void RemoveProperty (string name)
+ {
+ ItemProperty prop = (ItemProperty) properties [name];
+ if (prop == null)
+ return;
+ properties.Remove (name);
+ sortedPoperties.Remove (prop);
+
+ if (subtypes != null && subtypes.Count > 0) {
+ foreach (ClassDataType subtype in subtypes)
+ subtype.RemoveProperty (name);
+ }
+ }
+
Exception CreateNestedConflictException (ItemProperty p1,
ItemProperty p2)
{
return new InvalidOperationException ("There is a
conflict between the properties '" + p1.Name + "' and '" + p2.Name + "'. Nested
element properties can't be mixed with normal element properties.");
Modified:
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects.Serialization/DataContext.cs
===================================================================
---
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects.Serialization/DataContext.cs
2007-05-25 17:16:18 UTC (rev 77957)
+++
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects.Serialization/DataContext.cs
2007-05-25 17:19:02 UTC (rev 77958)
@@ -76,6 +76,12 @@
ctype.AddProperty (prop);
}
+ public void UnregisterProperty (Type targetType, string name)
+ {
+ ClassDataType ctype = (ClassDataType)
GetConfigurationDataType (targetType);
+ ctype.RemoveProperty (name);
+ }
+
public void IncludeType (Type type)
{
GetConfigurationDataType (type);
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches