From c6eed73269be5dfacc52c0b209637b1ed51877b2 Mon Sep 17 00:00:00 2001 From: Michael Becker Date: Wed, 2 Jun 2021 01:48:52 -0400 Subject: [PATCH 1/6] DataFormat subclasses MUST create a new instance of DataFormatReference, otherwise it breaks superclasses --- .../DataFormats/JSON/JSONDataFormat.cs | 2 +- .../Multimedia3D/Model/Wavefront/OBJDataFormat.cs | 2 +- .../DataFormats/SourceCode/CodeDataFormat.cs | 10 +++++++--- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/Libraries/UniversalEditor.Essential/DataFormats/JSON/JSONDataFormat.cs b/Libraries/UniversalEditor.Essential/DataFormats/JSON/JSONDataFormat.cs index 2e24c78a..0232ccf3 100644 --- a/Libraries/UniversalEditor.Essential/DataFormats/JSON/JSONDataFormat.cs +++ b/Libraries/UniversalEditor.Essential/DataFormats/JSON/JSONDataFormat.cs @@ -41,7 +41,7 @@ namespace UniversalEditor.DataFormats.JSON { if (_dfr == null) { - _dfr = base.MakeReferenceInternal(); + _dfr = new DataFormatReference(GetType()); _dfr.Capabilities.Add(typeof(JSONObjectModel), DataFormatCapabilities.All); } return _dfr; diff --git a/Plugins/UniversalEditor.Plugins.Multimedia3D/DataFormats/Multimedia3D/Model/Wavefront/OBJDataFormat.cs b/Plugins/UniversalEditor.Plugins.Multimedia3D/DataFormats/Multimedia3D/Model/Wavefront/OBJDataFormat.cs index 2879e0de..a9075566 100644 --- a/Plugins/UniversalEditor.Plugins.Multimedia3D/DataFormats/Multimedia3D/Model/Wavefront/OBJDataFormat.cs +++ b/Plugins/UniversalEditor.Plugins.Multimedia3D/DataFormats/Multimedia3D/Model/Wavefront/OBJDataFormat.cs @@ -38,7 +38,7 @@ namespace UniversalEditor.DataFormats.Multimedia3D.Model.Wavefront { if (_dfr == null) { - _dfr = base.MakeReferenceInternal(); + _dfr = new DataFormatReference(GetType()); _dfr.Capabilities.Add(typeof(ModelObjectModel), DataFormatCapabilities.All); } return _dfr; diff --git a/Plugins/UniversalEditor.Plugins.SoftwareDevelopment/DataFormats/SourceCode/CodeDataFormat.cs b/Plugins/UniversalEditor.Plugins.SoftwareDevelopment/DataFormats/SourceCode/CodeDataFormat.cs index ed67052d..c80a790c 100644 --- a/Plugins/UniversalEditor.Plugins.SoftwareDevelopment/DataFormats/SourceCode/CodeDataFormat.cs +++ b/Plugins/UniversalEditor.Plugins.SoftwareDevelopment/DataFormats/SourceCode/CodeDataFormat.cs @@ -39,11 +39,15 @@ namespace UniversalEditor.DataFormats.SourceCode /// public abstract class CodeDataFormat : PlainTextDataFormat { + private static DataFormatReference _dfr = null; protected override DataFormatReference MakeReferenceInternal() { - DataFormatReference dfr = base.MakeReferenceInternal(); - dfr.Capabilities.Add(typeof(CodeObjectModel), DataFormatCapabilities.All); - return dfr; + if (_dfr == null) + { + _dfr = new DataFormatReference(GetType()); + _dfr.Capabilities.Add(typeof(CodeObjectModel), DataFormatCapabilities.All); + } + return _dfr; } protected override void BeforeLoadInternal(Stack objectModels) From e2d59f42c81901637c6adf4db1ae71d2cabae76c Mon Sep 17 00:00:00 2001 From: Michael Becker Date: Wed, 2 Jun 2021 01:49:23 -0400 Subject: [PATCH 2/6] namespace needs to match the definition in association XML --- .../DataFormats/Multimedia/Palette/Adobe/ACO/ACODataFormat.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/UniversalEditor.Plugins.Multimedia/DataFormats/Multimedia/Palette/Adobe/ACO/ACODataFormat.cs b/Plugins/UniversalEditor.Plugins.Multimedia/DataFormats/Multimedia/Palette/Adobe/ACO/ACODataFormat.cs index 70a15308..d2ba7551 100644 --- a/Plugins/UniversalEditor.Plugins.Multimedia/DataFormats/Multimedia/Palette/Adobe/ACO/ACODataFormat.cs +++ b/Plugins/UniversalEditor.Plugins.Multimedia/DataFormats/Multimedia/Palette/Adobe/ACO/ACODataFormat.cs @@ -25,7 +25,7 @@ using MBS.Framework.Drawing; using MBS.Framework.Settings; using UniversalEditor.ObjectModels.Multimedia.Palette; -namespace UniversalEditor.DataFormats.Multimedia.Palette.Adobe +namespace UniversalEditor.DataFormats.Multimedia.Palette.Adobe.ACO { /// /// Provides a for manipulating color palettes in Adobe ACO format. From b9cec0ad25e105835efeff585a46c0d58ee64e36 Mon Sep 17 00:00:00 2001 From: Michael Becker Date: Wed, 2 Jun 2021 01:49:47 -0400 Subject: [PATCH 3/6] we should be able to implement this --- .../SettingsProviders/Default.xml | 2 -- 1 file changed, 2 deletions(-) diff --git a/Plugins.UserInterface/UniversalEditor.Plugins.Multimedia.UserInterface/SettingsProviders/Default.xml b/Plugins.UserInterface/UniversalEditor.Plugins.Multimedia.UserInterface/SettingsProviders/Default.xml index 97e672bb..35c34ae0 100644 --- a/Plugins.UserInterface/UniversalEditor.Plugins.Multimedia.UserInterface/SettingsProviders/Default.xml +++ b/Plugins.UserInterface/UniversalEditor.Plugins.Multimedia.UserInterface/SettingsProviders/Default.xml @@ -59,14 +59,12 @@ Singing Style Defaults - From 062a211706cfdb0206ee93f77177bd57deac45cb Mon Sep 17 00:00:00 2001 From: Michael Becker Date: Wed, 2 Jun 2021 01:50:50 -0400 Subject: [PATCH 4/6] we really should be notified when we have association errors --- .../DataFormats/UEPackage/UEPackageXMLDataFormat.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Libraries/UniversalEditor.Essential/DataFormats/UEPackage/UEPackageXMLDataFormat.cs b/Libraries/UniversalEditor.Essential/DataFormats/UEPackage/UEPackageXMLDataFormat.cs index 33730782..509ff0b5 100644 --- a/Libraries/UniversalEditor.Essential/DataFormats/UEPackage/UEPackageXMLDataFormat.cs +++ b/Libraries/UniversalEditor.Essential/DataFormats/UEPackage/UEPackageXMLDataFormat.cs @@ -925,11 +925,11 @@ namespace UniversalEditor.DataFormats.UEPackage { if (attTypeName != null) { - // Console.WriteLine("DataFormat could not be associated: " + attTypeName.Value); + Console.Error.WriteLine("DataFormat could not be associated: " + attTypeName.Value); } else if (attID != null) { - // Console.WriteLine("DataFormat could not be associated: " + attID.Value); + Console.Error.WriteLine("DataFormat could not be associated: " + attID.Value); } } } From fc9017712d2feb749730ef1bae5daab5c828f82b Mon Sep 17 00:00:00 2001 From: Michael Becker Date: Wed, 2 Jun 2021 01:51:23 -0400 Subject: [PATCH 5/6] don't automatically add newline to last line - should be a configurable option, like geany? --- .../DataFormats/Text/Plain/PlainTextDataFormat.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Libraries/UniversalEditor.Essential/DataFormats/Text/Plain/PlainTextDataFormat.cs b/Libraries/UniversalEditor.Essential/DataFormats/Text/Plain/PlainTextDataFormat.cs index dc643883..44bcb8b2 100644 --- a/Libraries/UniversalEditor.Essential/DataFormats/Text/Plain/PlainTextDataFormat.cs +++ b/Libraries/UniversalEditor.Essential/DataFormats/Text/Plain/PlainTextDataFormat.cs @@ -104,9 +104,11 @@ namespace UniversalEditor.DataFormats.Text.Plain throw new ObjectModelNotSupportedException(); Writer writer = Accessor.Writer; - foreach (string line in ptom.Lines) + for (int i = 0; i < ptom.Lines.Count; i++) { - writer.WriteLine(line); + writer.Write(ptom.Lines[i]); + if (i < ptom.Lines.Count) + writer.WriteLine(); } } } From e2ec2966ec5f386cce6e24823ca2f9c2c852f5a9 Mon Sep 17 00:00:00 2001 From: Michael Becker Date: Wed, 2 Jun 2021 01:52:23 -0400 Subject: [PATCH 6/6] Universal Application Platform application.xml definition - still work in progress --- .../UniversalEditor.Bootstrapper.csproj | 3 +++ Applications/UniversalEditor.Bootstrapper/application.xml | 6 ++++++ 2 files changed, 9 insertions(+) create mode 100644 Applications/UniversalEditor.Bootstrapper/application.xml diff --git a/Applications/UniversalEditor.Bootstrapper/UniversalEditor.Bootstrapper.csproj b/Applications/UniversalEditor.Bootstrapper/UniversalEditor.Bootstrapper.csproj index f8f5d2c8..f2bc04b6 100644 --- a/Applications/UniversalEditor.Bootstrapper/UniversalEditor.Bootstrapper.csproj +++ b/Applications/UniversalEditor.Bootstrapper/UniversalEditor.Bootstrapper.csproj @@ -69,6 +69,9 @@ MBS.Framework.UserInterface + + +