From 38b61618eb09e4475ceda102ca9ba8203eedd743 Mon Sep 17 00:00:00 2001 From: Michael Becker Date: Thu, 17 Mar 2022 14:36:44 -0400 Subject: [PATCH] Merge branch 'master' of github.com:alcexhim/UniversalEditor --- ...els.FileSystem.FileSystemObjectModel.uexml | 2 +- .../FileSystem/WindowsFileSystem.uexml | 1 + .../File Distribution/EmptyFileSystem.uexml | 2 +- .../File Distribution/EmptyTorrent.uexml | 2 +- .../Project/General/EmptyProject.uexml | 2 +- .../Project/SCE/PSM/BasicProject.uexml | 2 +- .../UniversalEditor.Checksum.csproj | 1 + .../UniversalEditor.Compression.csproj | 2 + .../ObjectModelReference.cs | 1 + .../UEPackage/UEPackageXMLDataFormat.cs | 194 +++++++----------- .../UniversalEditor.Essential/Template.cs | 24 +-- .../UniversalEditor.Essential.csproj | 2 + .../Dialogs/NewDialog.cs | 26 ++- .../EditorApplication.cs | 14 +- .../EditorWindow.cs | 2 +- .../Editors/FileSystem/FileSystemEditor.cs | 4 +- .../Editors/Icarus/IcarusScriptEditor.cs | 2 +- .../UniversalEditor.Plugins.Lighting.csproj | 2 + .../UniversalEditor.Plugins.Multimedia.csproj | 2 + UniversalEditor.sln | 14 +- firstrun.sh | 2 +- fxtool | 10 +- install.sh | 7 +- net.alcetech.UniversalEditor.desktop | 2 +- universal-editor | 14 +- 25 files changed, 160 insertions(+), 176 deletions(-) diff --git a/Content/UniversalEditor.Content.PlatformIndependent/ObjectModels/UniversalEditor.ObjectModels.FileSystem.FileSystemObjectModel.uexml b/Content/UniversalEditor.Content.PlatformIndependent/ObjectModels/UniversalEditor.ObjectModels.FileSystem.FileSystemObjectModel.uexml index c633896e..65ebf088 100644 --- a/Content/UniversalEditor.Content.PlatformIndependent/ObjectModels/UniversalEditor.ObjectModels.FileSystem.FileSystemObjectModel.uexml +++ b/Content/UniversalEditor.Content.PlatformIndependent/ObjectModels/UniversalEditor.ObjectModels.FileSystem.FileSystemObjectModel.uexml @@ -2,6 +2,6 @@ + Visible="true" EmptyTemplatePrefix="EmptyFileSystem" /> diff --git a/Content/UniversalEditor.Content.PlatformIndependent/Templates/Document/FileSystem/WindowsFileSystem.uexml b/Content/UniversalEditor.Content.PlatformIndependent/Templates/Document/FileSystem/WindowsFileSystem.uexml index aa692340..72e10e6e 100644 --- a/Content/UniversalEditor.Content.PlatformIndependent/Templates/Document/FileSystem/WindowsFileSystem.uexml +++ b/Content/UniversalEditor.Content.PlatformIndependent/Templates/Document/FileSystem/WindowsFileSystem.uexml @@ -6,6 +6,7 @@ Windows filesystem Creates a standard Windows NT file structure. + WindowsFileSystem General File system/archive diff --git a/Content/UniversalEditor.Content.PlatformIndependent/Templates/Project/File Distribution/EmptyFileSystem.uexml b/Content/UniversalEditor.Content.PlatformIndependent/Templates/Project/File Distribution/EmptyFileSystem.uexml index d1fa4813..f67368d0 100644 --- a/Content/UniversalEditor.Content.PlatformIndependent/Templates/Project/File Distribution/EmptyFileSystem.uexml +++ b/Content/UniversalEditor.Content.PlatformIndependent/Templates/Project/File Distribution/EmptyFileSystem.uexml @@ -4,7 +4,7 @@ Empty File System - FileSystem + FileSystem Creates an empty FileSystem project for packaging files in various archive formats. diff --git a/Content/UniversalEditor.Content.PlatformIndependent/Templates/Project/File Distribution/EmptyTorrent.uexml b/Content/UniversalEditor.Content.PlatformIndependent/Templates/Project/File Distribution/EmptyTorrent.uexml index c33bac18..2a323350 100644 --- a/Content/UniversalEditor.Content.PlatformIndependent/Templates/Project/File Distribution/EmptyTorrent.uexml +++ b/Content/UniversalEditor.Content.PlatformIndependent/Templates/Project/File Distribution/EmptyTorrent.uexml @@ -4,7 +4,7 @@ Empty Torrent - Torrent + Torrent Creates an empty Torrent project for distributing files over peer-to-peer networks. diff --git a/Content/UniversalEditor.Content.PlatformIndependent/Templates/Project/General/EmptyProject.uexml b/Content/UniversalEditor.Content.PlatformIndependent/Templates/Project/General/EmptyProject.uexml index ab9cab8d..18e4332c 100644 --- a/Content/UniversalEditor.Content.PlatformIndependent/Templates/Project/General/EmptyProject.uexml +++ b/Content/UniversalEditor.Content.PlatformIndependent/Templates/Project/General/EmptyProject.uexml @@ -4,7 +4,7 @@ Empty Project - Project + Project Creates an empty project. diff --git a/Content/UniversalEditor.Content.PlatformIndependent/Templates/Project/SCE/PSM/BasicProject.uexml b/Content/UniversalEditor.Content.PlatformIndependent/Templates/Project/SCE/PSM/BasicProject.uexml index 30ee89c8..1eeae90b 100644 --- a/Content/UniversalEditor.Content.PlatformIndependent/Templates/Project/SCE/PSM/BasicProject.uexml +++ b/Content/UniversalEditor.Content.PlatformIndependent/Templates/Project/SCE/PSM/BasicProject.uexml @@ -11,7 +11,7 @@ Basic PlayStation(R) Mobile Project - PsmApp + PsmApp Creates a basic PlayStation Mobile app for developing on PlayStation Vita and PlayStation 3. diff --git a/Libraries/UniversalEditor.Checksum/UniversalEditor.Checksum.csproj b/Libraries/UniversalEditor.Checksum/UniversalEditor.Checksum.csproj index a83cae0f..8e763964 100644 --- a/Libraries/UniversalEditor.Checksum/UniversalEditor.Checksum.csproj +++ b/Libraries/UniversalEditor.Checksum/UniversalEditor.Checksum.csproj @@ -13,6 +13,7 @@ ..\..\UniversalEditor.snk 4.0.2019.12 + false full diff --git a/Libraries/UniversalEditor.Compression/UniversalEditor.Compression.csproj b/Libraries/UniversalEditor.Compression/UniversalEditor.Compression.csproj index 07047534..bcab230a 100644 --- a/Libraries/UniversalEditor.Compression/UniversalEditor.Compression.csproj +++ b/Libraries/UniversalEditor.Compression/UniversalEditor.Compression.csproj @@ -16,6 +16,8 @@ ..\..\UniversalEditor.snk 8.0.30703 2.0 + 4.0.2019.12 + false true diff --git a/Libraries/UniversalEditor.Core/ObjectModelReference.cs b/Libraries/UniversalEditor.Core/ObjectModelReference.cs index a72ad77d..60e65298 100644 --- a/Libraries/UniversalEditor.Core/ObjectModelReference.cs +++ b/Libraries/UniversalEditor.Core/ObjectModelReference.cs @@ -238,6 +238,7 @@ namespace UniversalEditor private bool mvarVisible = true; public bool Visible { get { return mvarVisible; } set { mvarVisible = value; } } + public string EmptyTemplatePrefix { get; set; } = null; private static Dictionary _referencesByGUID = new Dictionary(); private static Dictionary _referencesByTypeName = new Dictionary(); diff --git a/Libraries/UniversalEditor.Essential/DataFormats/UEPackage/UEPackageXMLDataFormat.cs b/Libraries/UniversalEditor.Essential/DataFormats/UEPackage/UEPackageXMLDataFormat.cs index fb68b304..4bbd723f 100644 --- a/Libraries/UniversalEditor.Essential/DataFormats/UEPackage/UEPackageXMLDataFormat.cs +++ b/Libraries/UniversalEditor.Essential/DataFormats/UEPackage/UEPackageXMLDataFormat.cs @@ -547,66 +547,8 @@ namespace UniversalEditor.DataFormats.UEPackage template.ID = new Guid(attID.Value); } - MarkupTagElement tagInformation = (tagTemplate.Elements["Information"] as MarkupTagElement); + LoadTemplateCommonInformation(template, tagTemplate); - #region Information - { - if (tagInformation != null) - { - if (tagInformation.Elements["Title"] != null) - { - template.Title = tagInformation.Elements["Title"].Value; - } - if (tagInformation.Elements["Description"] != null) - { - template.Description = tagInformation.Elements["Description"].Value; - } - - if (tagInformation.Elements["Prefix"] != null) - { - template.Prefix = tagInformation.Elements["Prefix"].Value; - } - - MarkupTagElement tagPath = (tagInformation.Elements["Path"] as MarkupTagElement); - if (tagPath != null) - { - List pathParts = new List(); - foreach (MarkupElement elPart in tagPath.Elements) - { - MarkupTagElement tagPart = (elPart as MarkupTagElement); - if (tagPart == null) continue; - if (tagPart.FullName != "Part") continue; - pathParts.Add(tagPart.Value); - } - template.Path = pathParts.ToArray(); - } - - MarkupTagElement tagIconPath = (tagInformation.Elements["IconPath"] as MarkupTagElement); - if (tagIconPath != null) - { - MarkupAttribute attFileName = tagIconPath.Attributes["FileName"]; - if (attFileName != null) - { - string ImageFileName = attFileName.Value; - template.LargeIconImageFileName = ImageFileName; - template.SmallIconImageFileName = ImageFileName; - } - MarkupAttribute attLargeFileName = tagIconPath.Attributes["LargeFileName"]; - if (attLargeFileName != null) - { - string ImageFileName = attLargeFileName.Value; - template.LargeIconImageFileName = ImageFileName; - } - MarkupAttribute attSmallFileName = tagIconPath.Attributes["SmallFileName"]; - if (attSmallFileName != null) - { - string ImageFileName = attSmallFileName.Value; - template.SmallIconImageFileName = ImageFileName; - } - } - } - } - #endregion #region Variables { MarkupTagElement tagVariables = (tagTemplate.Elements["Variables"] as MarkupTagElement); @@ -748,72 +690,8 @@ namespace UniversalEditor.DataFormats.UEPackage } } - #region Information - MarkupTagElement tagInformation = (tagTemplate.Elements["Information"] as MarkupTagElement); - if (tagInformation != null) - { - MarkupTagElement tagTitle = (tagInformation.Elements["Title"] as MarkupTagElement); - if (tagTitle != null) template.Title = tagTitle.Value; + LoadTemplateCommonInformation(template, tagTemplate); - MarkupTagElement tagDescription = (tagInformation.Elements["Description"] as MarkupTagElement); - if (tagDescription != null) template.Description = tagDescription.Value; - - if (tagInformation.Elements["ProjectNamePrefix"] != null) - { - template.Prefix = tagInformation.Elements["ProjectNamePrefix"].Value; - } - - MarkupTagElement tagPath = (tagInformation.Elements["Path"] as MarkupTagElement); - if (tagPath != null) - { - List pathParts = new List(); - foreach (MarkupElement elPart in tagPath.Elements) - { - MarkupTagElement tagPart = (elPart as MarkupTagElement); - if (tagPart == null) continue; - if (tagPart.FullName != "Part") continue; - pathParts.Add(tagPart.Value); - } - template.Path = pathParts.ToArray(); - } - - MarkupTagElement tagIconPath = (tagInformation.Elements["IconPath"] as MarkupTagElement); - if (tagIconPath != null) - { - #region All Icons - { - MarkupAttribute attFileName = tagIconPath.Attributes["FileName"]; - if (attFileName != null) - { - string FileName = attFileName.Value; - if (System.IO.File.Exists(FileName)) template.LargeIconImageFileName = FileName; - if (System.IO.File.Exists(FileName)) template.SmallIconImageFileName = FileName; - } - } - #endregion - #region Large Icon - { - MarkupAttribute attLargeFileName = tagIconPath.Attributes["LargeFileName"]; - if (attLargeFileName != null) - { - string FileName = attLargeFileName.Value; - if (System.IO.File.Exists(FileName)) template.LargeIconImageFileName = FileName; - } - } - #endregion - #region Small Icon - { - MarkupAttribute attSmallFileName = tagIconPath.Attributes["SmallFileName"]; - if (attSmallFileName != null) - { - string FileName = attSmallFileName.Value; - if (System.IO.File.Exists(FileName)) template.SmallIconImageFileName = FileName; - } - } - #endregion - } - } - #endregion #region FileSystem { MarkupTagElement tagFileSystem = (tagTemplate.Elements["FileSystem"] as MarkupTagElement); @@ -1147,6 +1025,74 @@ namespace UniversalEditor.DataFormats.UEPackage #endregion } + private void LoadTemplateCommonInformation(Template template, MarkupTagElement tagTemplate) + { + MarkupTagElement tagInformation = (tagTemplate.Elements["Information"] as MarkupTagElement); + if (tagInformation != null) + { + MarkupTagElement tagTitle = (tagInformation.Elements["Title"] as MarkupTagElement); + if (tagTitle != null) template.Title = tagTitle.Value; + + MarkupTagElement tagDescription = (tagInformation.Elements["Description"] as MarkupTagElement); + if (tagDescription != null) template.Description = tagDescription.Value; + + if (tagInformation.Elements["Prefix"] != null) + { + template.Prefix = tagInformation.Elements["Prefix"].Value; + } + + MarkupTagElement tagPath = (tagInformation.Elements["Path"] as MarkupTagElement); + if (tagPath != null) + { + List pathParts = new List(); + foreach (MarkupElement elPart in tagPath.Elements) + { + MarkupTagElement tagPart = (elPart as MarkupTagElement); + if (tagPart == null) continue; + if (tagPart.FullName != "Part") continue; + pathParts.Add(tagPart.Value); + } + template.Path = pathParts.ToArray(); + } + + MarkupTagElement tagIconPath = (tagInformation.Elements["IconPath"] as MarkupTagElement); + if (tagIconPath != null) + { + #region All Icons + { + MarkupAttribute attFileName = tagIconPath.Attributes["FileName"]; + if (attFileName != null) + { + string FileName = attFileName.Value; + if (System.IO.File.Exists(FileName)) template.LargeIconImageFileName = FileName; + if (System.IO.File.Exists(FileName)) template.SmallIconImageFileName = FileName; + } + } + #endregion + #region Large Icon + { + MarkupAttribute attLargeFileName = tagIconPath.Attributes["LargeFileName"]; + if (attLargeFileName != null) + { + string FileName = attLargeFileName.Value; + if (System.IO.File.Exists(FileName)) template.LargeIconImageFileName = FileName; + } + } + #endregion + #region Small Icon + { + MarkupAttribute attSmallFileName = tagIconPath.Attributes["SmallFileName"]; + if (attSmallFileName != null) + { + string FileName = attSmallFileName.Value; + if (System.IO.File.Exists(FileName)) template.SmallIconImageFileName = FileName; + } + } + #endregion + } + } + } + private CustomDataFormatStructure CreateStructure(MarkupTagElement tag, Dictionary localVariables) { MarkupAttribute attID = tag.Attributes["ID"]; diff --git a/Libraries/UniversalEditor.Essential/Template.cs b/Libraries/UniversalEditor.Essential/Template.cs index 470c09eb..45813489 100644 --- a/Libraries/UniversalEditor.Essential/Template.cs +++ b/Libraries/UniversalEditor.Essential/Template.cs @@ -69,6 +69,18 @@ namespace UniversalEditor private Guid mvarID = Guid.Empty; public Guid ID { get { return mvarID; } set { mvarID = value; } } + private string[] mvarPath = null; + /// + /// + /// + public string[] Path { get { return mvarPath; } set { mvarPath = value; } } + + /// + /// Gets or sets the template file name prefix. + /// + /// The template file name prefix. + public string Prefix { get; set; } = String.Empty; + private string mvarTitle = String.Empty; /// /// The title of the document template. @@ -132,12 +144,6 @@ namespace UniversalEditor /// public MarkupObjectModel TemplateContent { get { return mvarTemplateContent; } } - private string[] mvarPath = null; - /// - /// - /// - public string[] Path { get { return mvarPath; } set { mvarPath = value; } } - /// /// Initializes the template's ObjectModel with the content specified in . /// @@ -224,12 +230,6 @@ namespace UniversalEditor } - private string[] mvarPath = null; - /// - /// - /// - public string[] Path { get { return mvarPath; } set { mvarPath = value; } } - public ProjectType.ProjectTypeCollection ProjectTypes { get; } = new ProjectType.ProjectTypeCollection(); private ProjectFileSystem mvarFileSystem = new ProjectFileSystem(); diff --git a/Libraries/UniversalEditor.Essential/UniversalEditor.Essential.csproj b/Libraries/UniversalEditor.Essential/UniversalEditor.Essential.csproj index 55017cbe..f36baed2 100644 --- a/Libraries/UniversalEditor.Essential/UniversalEditor.Essential.csproj +++ b/Libraries/UniversalEditor.Essential/UniversalEditor.Essential.csproj @@ -16,6 +16,8 @@ ..\..\UniversalEditor.snk 8.0.30703 2.0 + 4.0.2019.12 + false true diff --git a/Libraries/UniversalEditor.UserInterface/Dialogs/NewDialog.cs b/Libraries/UniversalEditor.UserInterface/Dialogs/NewDialog.cs index 851fabad..41925c29 100644 --- a/Libraries/UniversalEditor.UserInterface/Dialogs/NewDialog.cs +++ b/Libraries/UniversalEditor.UserInterface/Dialogs/NewDialog.cs @@ -248,15 +248,24 @@ namespace UniversalEditor.UserInterface.Dialogs row.SetExtraData>("dts", dts); } - DocumentTemplate dtEmpty = new DocumentTemplate(); - dtEmpty.ObjectModelReference = omr; - dtEmpty.Title = String.Format("Blank {0} Document", path[path.Length - 1]); + DocumentTemplate dtEmpty = CreateEmptyDocumentTemplate(omr); dts.Add(dtEmpty); } InitializeObjectModelTreeViewRow(tm, row, omr, index + 1); } + private DocumentTemplate CreateEmptyDocumentTemplate(ObjectModelReference omr) + { + string[] path = omr.Path; + DocumentTemplate dtEmpty = new DocumentTemplate(); + dtEmpty.ObjectModelReference = omr; + + dtEmpty.Title = String.Format("Blank {0} Document", path[path.Length - 1]); + dtEmpty.Prefix = omr.EmptyTemplatePrefix ?? String.Format("Empty{0}Document", path[path.Length - 1]); + return dtEmpty; + } + [EventHandler(nameof(cmdOK), "Click")] private void cmdOK_Click(object sender, EventArgs e) { @@ -353,12 +362,12 @@ namespace UniversalEditor.UserInterface.Dialogs /// /// A which has zero child rows, or null if no such exists. /// Row. - private TreeModelRow ExpandSingleChildRows(TreeModelRow row) + private TreeModelRow ExpandSingleChildRows(ListViewControl tv, TreeModelRow row) { if (row.Rows.Count == 1) { - row.Expanded = true; - return ExpandSingleChildRows(row.Rows[0]); + tv.SetExpanded(row, true); + return ExpandSingleChildRows(tv, row.Rows[0]); } else if (row.Rows.Count == 0) { @@ -394,7 +403,7 @@ namespace UniversalEditor.UserInterface.Dialogs if (tmObjectModel.Rows.Count == 1) { - TreeModelRow row = ExpandSingleChildRows(tmObjectModel.Rows[0]); + TreeModelRow row = ExpandSingleChildRows(tvObjectModel, tmObjectModel.Rows[0]); if (row != null) { tvObjectModel.SelectedRows.Clear(); @@ -511,7 +520,7 @@ namespace UniversalEditor.UserInterface.Dialogs RefreshProjectTemplates(tvObjectModel.SelectedRows[0]); } - if (tmTemplate.Rows.Count == 1) + if (tmTemplate.Rows.Count > 0) { tvTemplate.SelectedRows.Add(tmTemplate.Rows[0]); } @@ -549,7 +558,6 @@ namespace UniversalEditor.UserInterface.Dialogs if (pt == null) return; if (!txtFileName.IsChangedByUser) { - string prefix = pt.Prefix; if (String.IsNullOrEmpty(prefix)) { diff --git a/Libraries/UniversalEditor.UserInterface/EditorApplication.cs b/Libraries/UniversalEditor.UserInterface/EditorApplication.cs index 2867dfbf..aa82a34e 100644 --- a/Libraries/UniversalEditor.UserInterface/EditorApplication.cs +++ b/Libraries/UniversalEditor.UserInterface/EditorApplication.cs @@ -342,7 +342,7 @@ namespace UniversalEditor.UserInterface } else if (eo is ChoiceSetting) { - ChoiceSetting.ChoiceSettingValue choice = (ChoiceSetting.ChoiceSettingValue) (eo as ChoiceSetting).GetValue(); + ChoiceSetting.ChoiceSettingValue choice = (ChoiceSetting.ChoiceSettingValue)(eo as ChoiceSetting).GetValue(); if (choice != null) { Type[] interfaces = pi.PropertyType.GetInterfaces(); @@ -509,16 +509,22 @@ namespace UniversalEditor.UserInterface MarkupAttribute attTypeName = tag.Attributes["TypeName"]; MarkupAttribute attID = tag.Attributes["ID"]; MarkupAttribute attVisible = tag.Attributes["Visible"]; + MarkupAttribute attEmptyTemplatePrefix = tag.Attributes["EmptyTemplatePrefix"]; + ObjectModelReference omr = null; if (attTypeName != null) { - ObjectModelReference omr = UniversalEditor.Common.Reflection.GetAvailableObjectModelByTypeName(attTypeName.Value); - if (attVisible != null) omr.Visible = (attVisible.Value == "true"); + omr = UniversalEditor.Common.Reflection.GetAvailableObjectModelByTypeName(attTypeName.Value); } else { - ObjectModelReference omr = UniversalEditor.Common.Reflection.GetAvailableObjectModelByID(new Guid(attID.Value)); + omr = UniversalEditor.Common.Reflection.GetAvailableObjectModelByID(new Guid(attID.Value)); + } + + if (omr != null) + { if (attVisible != null) omr.Visible = (attVisible.Value == "true"); + if (attEmptyTemplatePrefix != null) omr.EmptyTemplatePrefix = attEmptyTemplatePrefix.Value; } } } diff --git a/Libraries/UniversalEditor.UserInterface/EditorWindow.cs b/Libraries/UniversalEditor.UserInterface/EditorWindow.cs index 180870dd..70cc9bd2 100644 --- a/Libraries/UniversalEditor.UserInterface/EditorWindow.cs +++ b/Libraries/UniversalEditor.UserInterface/EditorWindow.cs @@ -281,8 +281,8 @@ namespace UniversalEditor.UserInterface DockingWindow di = dckContainer.Items[page] as DockingWindow; if (di == null) return; - di.Title = GetDocumentTitle(page.Document); page.Document.IsChanged = true; + di.Title = GetDocumentTitle(page.Document); } /* private void page_Navigate(object sender, NavigateEventArgs e) diff --git a/Libraries/UniversalEditor.UserInterface/Editors/FileSystem/FileSystemEditor.cs b/Libraries/UniversalEditor.UserInterface/Editors/FileSystem/FileSystemEditor.cs index 5d922a10..b6ed707a 100644 --- a/Libraries/UniversalEditor.UserInterface/Editors/FileSystem/FileSystemEditor.cs +++ b/Libraries/UniversalEditor.UserInterface/Editors/FileSystem/FileSystemEditor.cs @@ -79,7 +79,7 @@ namespace UniversalEditor.Editors.FileSystem string fileTitle = filename; // filePath[filePath.Length - 1]; bool containsInvalidFileNames = invalidFileNames.Length > 0 && fileTitle.EqualsAny(invalidFileNames); - bool containsInvalidChars = String.IsNullOrEmpty(invalidPathChars) || fileTitle.ContainsAny(invalidPathChars.ToCharArray()); + bool containsInvalidChars = !String.IsNullOrEmpty(invalidPathChars) && fileTitle.ContainsAny(invalidPathChars.ToCharArray()); return !(containsInvalidFileNames || containsInvalidChars); } @@ -119,7 +119,7 @@ namespace UniversalEditor.Editors.FileSystem { // nautilus does the equivalent of 'CurrentFolder = ...' except opens in multiple tabs // which... we don't really have the ability to do multiple tabs for the same document at the moment - tv.SelectedRows[i].Expanded = true; + tv.SetExpanded(tv.SelectedRows[i], true); } else { diff --git a/Plugins.UserInterface/UniversalEditor.Plugins.RavenSoftware.UserInterface/Editors/Icarus/IcarusScriptEditor.cs b/Plugins.UserInterface/UniversalEditor.Plugins.RavenSoftware.UserInterface/Editors/Icarus/IcarusScriptEditor.cs index 51e02870..23634408 100644 --- a/Plugins.UserInterface/UniversalEditor.Plugins.RavenSoftware.UserInterface/Editors/Icarus/IcarusScriptEditor.cs +++ b/Plugins.UserInterface/UniversalEditor.Plugins.RavenSoftware.UserInterface/Editors/Icarus/IcarusScriptEditor.cs @@ -83,7 +83,7 @@ namespace UniversalEditor.Plugins.RavenSoftware.UserInterface.Editors.Icarus if (selectedCommand != null && selectedCommand.IsContainer) { RecursiveAddCommand(omcmd, tv.SelectedRows[0]); - tv.SelectedRows[0].Expanded = true; + tv.SetExpanded(tv.SelectedRows[0], true); selectedCommand.Commands.Add(omcmd); tv.SelectedRows[0].RowColumns[0].Value = GetCommandText(selectedCommand); diff --git a/Plugins/UniversalEditor.Plugins.Lighting/UniversalEditor.Plugins.Lighting.csproj b/Plugins/UniversalEditor.Plugins.Lighting/UniversalEditor.Plugins.Lighting.csproj index e5f80cc5..9639b0db 100644 --- a/Plugins/UniversalEditor.Plugins.Lighting/UniversalEditor.Plugins.Lighting.csproj +++ b/Plugins/UniversalEditor.Plugins.Lighting/UniversalEditor.Plugins.Lighting.csproj @@ -10,6 +10,8 @@ UniversalEditor UniversalEditor.Plugins.Lighting 512 + 4.0.2019.12 + false true diff --git a/Plugins/UniversalEditor.Plugins.Multimedia/UniversalEditor.Plugins.Multimedia.csproj b/Plugins/UniversalEditor.Plugins.Multimedia/UniversalEditor.Plugins.Multimedia.csproj index 028066c1..f650f809 100644 --- a/Plugins/UniversalEditor.Plugins.Multimedia/UniversalEditor.Plugins.Multimedia.csproj +++ b/Plugins/UniversalEditor.Plugins.Multimedia/UniversalEditor.Plugins.Multimedia.csproj @@ -27,6 +27,8 @@ 8.0.30703 2.0 + 4.0.2019.12 + false AnyCPU diff --git a/UniversalEditor.sln b/UniversalEditor.sln index bf30e256..cf1a5d3d 100644 --- a/UniversalEditor.sln +++ b/UniversalEditor.sln @@ -25,8 +25,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Dependencies", "Dependencie EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MBS.Framework.UserInterface", "..\MBS.Framework.UserInterface\Libraries\MBS.Framework.UserInterface\MBS.Framework.UserInterface.csproj", "{29E1C1BB-3EA5-4062-B62F-85EEC703FE07}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MBS.Framework.UserInterface.Engines.GTK", "..\MBS.Framework.UserInterface\Engines\GTK\MBS.Framework.UserInterface.Engines.GTK\MBS.Framework.UserInterface.Engines.GTK.csproj", "{62DC7CF9-C608-49E5-8C39-305B2E3E93F6}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Plugins", "Plugins", "{2ED32D16-6C06-4450-909A-40D32DA67FB4}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UniversalEditor.Plugins.Web", "Plugins\UniversalEditor.Plugins.Web\UniversalEditor.Plugins.Web.csproj", "{64089452-6A08-47A5-A857-BF418F80D4A3}" @@ -213,6 +211,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UniversalEditor.Plugins.Con EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UniversalEditor.Plugins.Microsoft.Multimedia", "Plugins\UniversalEditor.Plugins.Microsoft.Multimedia\UniversalEditor.Plugins.Microsoft.Multimedia.csproj", "{94059860-1F0B-453D-AFAB-EEDBB0AA25BB}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MBS.Framework.UserInterface.Engines.GTK3", "..\MBS.Framework.UserInterface\Engines\GTK3\MBS.Framework.UserInterface.Engines.GTK3\MBS.Framework.UserInterface.Engines.GTK3.csproj", "{62DC7CF9-C608-49E5-8C39-305B2E3E93F6}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -307,10 +307,6 @@ Global {62CFC025-B8CF-42AA-880A-92F27377FCAF}.Debug|Any CPU.Build.0 = Debug|Any CPU {62CFC025-B8CF-42AA-880A-92F27377FCAF}.Release|Any CPU.ActiveCfg = Release|Any CPU {62CFC025-B8CF-42AA-880A-92F27377FCAF}.Release|Any CPU.Build.0 = Release|Any CPU - {62DC7CF9-C608-49E5-8C39-305B2E3E93F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {62DC7CF9-C608-49E5-8C39-305B2E3E93F6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {62DC7CF9-C608-49E5-8C39-305B2E3E93F6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {62DC7CF9-C608-49E5-8C39-305B2E3E93F6}.Release|Any CPU.Build.0 = Release|Any CPU {64089452-6A08-47A5-A857-BF418F80D4A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {64089452-6A08-47A5-A857-BF418F80D4A3}.Debug|Any CPU.Build.0 = Debug|Any CPU {64089452-6A08-47A5-A857-BF418F80D4A3}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -617,6 +613,10 @@ Global {94059860-1F0B-453D-AFAB-EEDBB0AA25BB}.Debug|Any CPU.Build.0 = Debug|Any CPU {94059860-1F0B-453D-AFAB-EEDBB0AA25BB}.Release|Any CPU.ActiveCfg = Release|Any CPU {94059860-1F0B-453D-AFAB-EEDBB0AA25BB}.Release|Any CPU.Build.0 = Release|Any CPU + {62DC7CF9-C608-49E5-8C39-305B2E3E93F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {62DC7CF9-C608-49E5-8C39-305B2E3E93F6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {62DC7CF9-C608-49E5-8C39-305B2E3E93F6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {62DC7CF9-C608-49E5-8C39-305B2E3E93F6}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(NestedProjects) = preSolution {6F0AB1AF-E1A1-4D19-B19C-05BBB15C94B2} = {05D15661-E684-4EC9-8FBD-C014BA433CC5} @@ -628,7 +628,6 @@ Global {8622EBC4-8E20-476E-B284-33D472081F5C} = {0399182F-AF56-4E86-B229-EAB38C2EE6AF} {30467E5C-05BC-4856-AADC-13906EF4CADD} = {0399182F-AF56-4E86-B229-EAB38C2EE6AF} {29E1C1BB-3EA5-4062-B62F-85EEC703FE07} = {20F315E0-52AE-479F-AF43-3402482C1FC8} - {62DC7CF9-C608-49E5-8C39-305B2E3E93F6} = {20F315E0-52AE-479F-AF43-3402482C1FC8} {64089452-6A08-47A5-A857-BF418F80D4A3} = {2ED32D16-6C06-4450-909A-40D32DA67FB4} {BE4D0BA3-0888-42A5-9C09-FC308A4509D2} = {2ED32D16-6C06-4450-909A-40D32DA67FB4} {D4D9C9A6-04A4-46AD-8238-2493A455723F} = {2ED32D16-6C06-4450-909A-40D32DA67FB4} @@ -718,6 +717,7 @@ Global {5E639F63-97B0-4B34-8928-29A5A3C661F4} = {05D15661-E684-4EC9-8FBD-C014BA433CC5} {D4AEC562-0FA7-48C4-9E46-C706AFCFA015} = {7B535D74-5496-4802-B809-89ED88274A91} {94059860-1F0B-453D-AFAB-EEDBB0AA25BB} = {2ED32D16-6C06-4450-909A-40D32DA67FB4} + {62DC7CF9-C608-49E5-8C39-305B2E3E93F6} = {20F315E0-52AE-479F-AF43-3402482C1FC8} EndGlobalSection GlobalSection(MonoDevelopProperties) = preSolution Policies = $0 diff --git a/firstrun.sh b/firstrun.sh index e0f98c7c..bf93fe73 100755 --- a/firstrun.sh +++ b/firstrun.sh @@ -91,7 +91,7 @@ cd $WD sudo cp MainIcon.png /usr/share/icons/universal-editor.png # link Production.snk to UniversalEditor.snk -ln -s ../Production.snk $(APPNAME).snk +ln -s ../Production.snk $APPNAME.snk # start the build msbuild diff --git a/fxtool b/fxtool index f4582399..9d07b25b 100755 --- a/fxtool +++ b/fxtool @@ -22,16 +22,16 @@ ######## DEFINITIONS APP="MBS.Framework.UserInterface" -USAGE_STATEMENT="Usage: $0 {install|remove} {gtk|wf}" +USAGE_STATEMENT="Usage: $0 {install|remove} {gtk3|wf}" EC_INVALID_CHOICE=1 ######## IMPLEMENTATION case "$1" in install) case "$2" in - gtk) + gtk3) for ext in dll dll.config pdb xml; do - cp "../$APP/Output/Debug/$APP.Engines.GTK.$ext" "Output/Debug/" + cp "../$APP/Output/Debug/$APP.Engines.GTK3.$ext" "Output/Debug/" done ;; wf) @@ -46,9 +46,9 @@ case "$1" in ;; remove) case "$2" in - gtk) + gtk3) for ext in dll dll.config pdb xml; do - rm "Output/Debug/$APP.Engines.GTK.$ext" + rm "Output/Debug/$APP.Engines.GTK3.$ext" done ;; wf) diff --git a/install.sh b/install.sh index 25d209da..ee60748b 100755 --- a/install.sh +++ b/install.sh @@ -3,7 +3,10 @@ cp MainIcon.png /usr/share/icons/universal-editor.png cp net.alcetech.UniversalEditor.desktop /usr/share/applications -mkdir /usr/lib/universal-editor +if [ ! -d /usr/lib/universal-editor ]; then + mkdir /usr/lib/universal-editor +fi + cp -r Output/Debug/* /usr/lib/universal-editor cp universal-editor /usr/lib/universal-editor @@ -11,7 +14,7 @@ cp universal-editor /usr/lib/universal-editor echo "#!/bin/sh cd /usr/lib/universal-editor -./universal-editor ${1+\"$@\"} +./universal-editor \${1+\"\$@\"} " > /usr/bin/universal-editor chmod a+x /usr/bin/universal-editor diff --git a/net.alcetech.UniversalEditor.desktop b/net.alcetech.UniversalEditor.desktop index 8632d941..d297d504 100644 --- a/net.alcetech.UniversalEditor.desktop +++ b/net.alcetech.UniversalEditor.desktop @@ -4,7 +4,7 @@ Name=Universal Editor Comment=Open and edit any document GenericName=Document Editor Keywords=Text;Editor -Exec=universal-editor %F +Exec=universal-editor --activation-type Launch %F Terminal=false X-MultipleArgs=true Type=Application diff --git a/universal-editor b/universal-editor index 364d6243..8be4216d 100755 --- a/universal-editor +++ b/universal-editor @@ -2,5 +2,15 @@ FLAVOR=Debug APPNAME=UniversalEditor -cd Output/$FLAVOR -mono $APPNAME.exe ${1+"$@"} +if [ -d Output/$FLAVOR ]; then + + # running from git repository + cd Output/$FLAVOR + mono $APPNAME.exe ${1+"$@"} + +else + + # installed to local machine + mono $APPNAME.exe ${1+"$@"} + +fi