diff --git a/ModpackUpdater.Apps.Manager/Api/Model/WorkspaceConfig.cs b/ModpackUpdater.Apps.Manager/Api/Model/WorkspaceConfig.cs index f40d468..3846aa2 100644 --- a/ModpackUpdater.Apps.Manager/Api/Model/WorkspaceConfig.cs +++ b/ModpackUpdater.Apps.Manager/Api/Model/WorkspaceConfig.cs @@ -1,7 +1,12 @@ -namespace ModpackUpdater.Apps.Manager.Api.Model; +using Newtonsoft.Json; + +namespace ModpackUpdater.Apps.Manager.Api.Model; public abstract class WorkspaceConfig { + [JsonProperty] public string ProviderId { get; internal set; } = "origin.unknown"; + + [JsonIgnore] public abstract string DisplayText { get; } } diff --git a/ModpackUpdater.Apps.Manager/Api/Plugins/Features/WorkspaceFeature.cs b/ModpackUpdater.Apps.Manager/Api/Plugins/Features/WorkspaceFeature.cs index cb9d33f..7ed5c0d 100644 --- a/ModpackUpdater.Apps.Manager/Api/Plugins/Features/WorkspaceFeature.cs +++ b/ModpackUpdater.Apps.Manager/Api/Plugins/Features/WorkspaceFeature.cs @@ -14,7 +14,7 @@ public abstract class WorkspaceFeature(string identifier, string name) : PluginF { OnConfigure(ref workspace); - if (workspace?.Config == null) + if (workspace?.Config is null) return false; workspace.Config.ProviderId = Identifier; @@ -22,7 +22,7 @@ public abstract class WorkspaceFeature(string identifier, string name) : PluginF return true; } - public virtual IWorkspace CreateFromSettings(WorkspaceConfig config) + public virtual IWorkspace CreateFromConfig(WorkspaceConfig config) { OnCreate(out var workspace, config); return workspace; diff --git a/ModpackUpdater.Apps.Manager/Features/Workspaces/GitLabRepo/GitLabRepoWorkspace.cs b/ModpackUpdater.Apps.Manager/Features/Workspaces/GitLabRepo/GitLabRepoWorkspace.cs index 4d8578d..b76f3ec 100644 --- a/ModpackUpdater.Apps.Manager/Features/Workspaces/GitLabRepo/GitLabRepoWorkspace.cs +++ b/ModpackUpdater.Apps.Manager/Features/Workspaces/GitLabRepo/GitLabRepoWorkspace.cs @@ -21,7 +21,7 @@ internal class GitLabRepoWorkspace(GitLabRepoWorkspaceConfig config) : IWorkspac { InstallInfos = InstallInfos.Parse(await GetContent(ConfigX.FileLocationInstallJson)); UpdateInfos = UpdateInfos.Parse(await GetContent(ConfigX.FileLocationUpdateJson)); - ConfigX.InstanceUrl = (await Gitlab.Projects.GetByIdAsync((int)ConfigX.RepoId, new())).NameWithNamespace; + ConfigX.RepoName = (await Gitlab.Projects.GetByIdAsync((int)ConfigX.RepoId, new())).Name; return InstallInfos != null && UpdateInfos != null; } @@ -38,27 +38,25 @@ internal class GitLabRepoWorkspace(GitLabRepoWorkspaceConfig config) : IWorkspac private async Task GetContent(string path) { - var pathUrl = UrlEncoder.Default.Encode(path); var repoId = new ProjectId(ConfigX.RepoId); var repo = Gitlab.GetRepository(repoId); - var data = await repo.Files.GetAsync(pathUrl, ConfigX.RepoBranche); + var data = await repo.Files.GetAsync(path, ConfigX.RepoBranche); return data.DecodedContent; } private Task SaveContent(string path, string content) { - var pathUrl = UrlEncoder.Default.Encode(path); var repoId = new ProjectId(ConfigX.RepoId); var repo = Gitlab.GetRepository(repoId); var update = new FileUpsert { Branch = ConfigX.RepoBranche, - CommitMessage = "update " + Path.GetFileName(pathUrl), + CommitMessage = "update " + Path.GetFileName(path), RawContent = content, - Path = pathUrl, + Path = path, }; - if (repo.Files.FileExists(pathUrl, ConfigX.RepoBranche)) + if (repo.Files.FileExists(path, ConfigX.RepoBranche)) repo.Files.Update(update); else repo.Files.Create(update); diff --git a/ModpackUpdater.Apps.Manager/Features/Workspaces/GitLabRepo/GitLabRepoWorkspaceConfig.cs b/ModpackUpdater.Apps.Manager/Features/Workspaces/GitLabRepo/GitLabRepoWorkspaceConfig.cs index f6c227f..25e3eb5 100644 --- a/ModpackUpdater.Apps.Manager/Features/Workspaces/GitLabRepo/GitLabRepoWorkspaceConfig.cs +++ b/ModpackUpdater.Apps.Manager/Features/Workspaces/GitLabRepo/GitLabRepoWorkspaceConfig.cs @@ -4,7 +4,7 @@ namespace ModpackUpdater.Apps.Manager.Features.Workspaces.GitLabRepo; internal class GitLabRepoWorkspaceConfig : WorkspaceConfig { - public override string DisplayText => $"{RepoName ?? "?"} at {RepoBranche} on {InstanceUrl}"; + public override string DisplayText => $"{RepoName ?? "?"} | {RepoBranche} | {InstanceUrl}"; public string? RepoName { get; set; } @@ -18,5 +18,5 @@ internal class GitLabRepoWorkspaceConfig : WorkspaceConfig public string FileLocationInstallJson { get; set; } = "install.json"; - public string FileLocationUpdateJson { get; set; } = "update.json"; + public string FileLocationUpdateJson { get; set; } = "updates.json"; } diff --git a/ModpackUpdater.Apps.Manager/Features/Workspaces/GitLabRepo/GitLabRepoWorkspaceConfigEditor.cs b/ModpackUpdater.Apps.Manager/Features/Workspaces/GitLabRepo/GitLabRepoWorkspaceConfigEditor.cs index ea7cf6d..749b1c6 100644 --- a/ModpackUpdater.Apps.Manager/Features/Workspaces/GitLabRepo/GitLabRepoWorkspaceConfigEditor.cs +++ b/ModpackUpdater.Apps.Manager/Features/Workspaces/GitLabRepo/GitLabRepoWorkspaceConfigEditor.cs @@ -36,7 +36,7 @@ internal partial class GitLabRepoWorkspaceConfigEditor : RadFlyoutBase, ILoadCon settings.ApiToken = radTextBox_ApiToken.Text.Trim(); settings.RepoId = (long)radSpinEditor_RepoId.Value; settings.RepoBranche = radTextBox_RepoBranche.Text.Trim(); - settings.InstanceUrl = radTextBox_FileLocInstallJson.Text.Trim(); + settings.FileLocationInstallJson = radTextBox_FileLocInstallJson.Text.Trim(); settings.FileLocationUpdateJson = radTextBox_FileLocUpdateJson.Text.Trim(); return base.ValidateOK(); } diff --git a/ModpackUpdater.Apps.Manager/Form1.Designer.cs b/ModpackUpdater.Apps.Manager/Form1.Designer.cs index b843f56..7dd756b 100644 --- a/ModpackUpdater.Apps.Manager/Form1.Designer.cs +++ b/ModpackUpdater.Apps.Manager/Form1.Designer.cs @@ -38,12 +38,16 @@ partial class Form1 radGridView_Actions = new Telerik.WinControls.UI.RadGridView(); radMenuItem_Workspace = new Telerik.WinControls.UI.RadMenuItem(); radMenuItem_WorkspacePreferences = new Telerik.WinControls.UI.RadMenuItem(); + radMenuItem_SaveWorkspace = new Telerik.WinControls.UI.RadMenuItem(); radMenuSeparatorItem1 = new Telerik.WinControls.UI.RadMenuSeparatorItem(); radMenuItem_OpenNewWorkspace = new Telerik.WinControls.UI.RadMenuItem(); radMenuItem_RecentWorkspaces = new Telerik.WinControls.UI.RadMenuItem(); radMenuItem_Tools = new Telerik.WinControls.UI.RadMenuItem(); radMenu1 = new Telerik.WinControls.UI.RadMenu(); - radMenuItem_SaveWorkspace = new Telerik.WinControls.UI.RadMenuItem(); + radWaitingBar_Updates = new Telerik.WinControls.UI.RadWaitingBar(); + dotsRingWaitingBarIndicatorElement1 = new Telerik.WinControls.UI.DotsRingWaitingBarIndicatorElement(); + radWaitingBar_Actions = new Telerik.WinControls.UI.RadWaitingBar(); + dotsRingWaitingBarIndicatorElement2 = new Telerik.WinControls.UI.DotsRingWaitingBarIndicatorElement(); ((System.ComponentModel.ISupportInitialize)radSplitContainer1).BeginInit(); radSplitContainer1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)splitPanel1).BeginInit(); @@ -56,6 +60,8 @@ partial class Form1 ((System.ComponentModel.ISupportInitialize)radGridView_Actions).BeginInit(); ((System.ComponentModel.ISupportInitialize)radGridView_Actions.MasterTemplate).BeginInit(); ((System.ComponentModel.ISupportInitialize)radMenu1).BeginInit(); + ((System.ComponentModel.ISupportInitialize)radWaitingBar_Updates).BeginInit(); + ((System.ComponentModel.ISupportInitialize)radWaitingBar_Actions).BeginInit(); ((System.ComponentModel.ISupportInitialize)this).BeginInit(); SuspendLayout(); // @@ -164,6 +170,11 @@ partial class Form1 radMenuItem_WorkspacePreferences.Name = "radMenuItem_WorkspacePreferences"; radMenuItem_WorkspacePreferences.Text = "Preferences"; // + // radMenuItem_SaveWorkspace + // + radMenuItem_SaveWorkspace.Name = "radMenuItem_SaveWorkspace"; + radMenuItem_SaveWorkspace.Text = "Save"; + // // radMenuSeparatorItem1 // radMenuSeparatorItem1.Name = "radMenuSeparatorItem1"; @@ -193,10 +204,39 @@ partial class Form1 radMenu1.Size = new Size(800, 28); radMenu1.TabIndex = 1; // - // radMenuItem_SaveWorkspace + // radWaitingBar_Updates // - radMenuItem_SaveWorkspace.Name = "radMenuItem_SaveWorkspace"; - radMenuItem_SaveWorkspace.Text = "Save"; + radWaitingBar_Updates.AssociatedControl = radTreeView_Updates; + radWaitingBar_Updates.Location = new Point(0, 78); + radWaitingBar_Updates.Name = "radWaitingBar_Updates"; + radWaitingBar_Updates.Size = new Size(70, 70); + radWaitingBar_Updates.TabIndex = 2; + radWaitingBar_Updates.Text = "radWaitingBar1"; + radWaitingBar_Updates.WaitingIndicators.Add(dotsRingWaitingBarIndicatorElement1); + radWaitingBar_Updates.WaitingIndicatorSize = new Size(100, 14); + radWaitingBar_Updates.WaitingSpeed = 50; + radWaitingBar_Updates.WaitingStyle = Telerik.WinControls.Enumerations.WaitingBarStyles.DotsRing; + // + // dotsRingWaitingBarIndicatorElement1 + // + dotsRingWaitingBarIndicatorElement1.Name = "dotsRingWaitingBarIndicatorElement1"; + // + // radWaitingBar_Actions + // + radWaitingBar_Actions.AssociatedControl = radGridView_Actions; + radWaitingBar_Actions.Location = new Point(0, 145); + radWaitingBar_Actions.Name = "radWaitingBar_Actions"; + radWaitingBar_Actions.Size = new Size(70, 70); + radWaitingBar_Actions.TabIndex = 3; + radWaitingBar_Actions.Text = "radWaitingBar2"; + radWaitingBar_Actions.WaitingIndicators.Add(dotsRingWaitingBarIndicatorElement2); + radWaitingBar_Actions.WaitingIndicatorSize = new Size(100, 14); + radWaitingBar_Actions.WaitingSpeed = 50; + radWaitingBar_Actions.WaitingStyle = Telerik.WinControls.Enumerations.WaitingBarStyles.DotsRing; + // + // dotsRingWaitingBarIndicatorElement2 + // + dotsRingWaitingBarIndicatorElement2.Name = "dotsRingWaitingBarIndicatorElement2"; // // Form1 // @@ -204,6 +244,8 @@ partial class Form1 AutoScaleDimensions = new SizeF(7F, 15F); AutoScaleMode = AutoScaleMode.Font; ClientSize = new Size(800, 450); + Controls.Add(radWaitingBar_Actions); + Controls.Add(radWaitingBar_Updates); Controls.Add(radSplitContainer1); Controls.Add(radMenu1); Name = "Form1"; @@ -222,6 +264,8 @@ partial class Form1 ((System.ComponentModel.ISupportInitialize)radGridView_Actions.MasterTemplate).EndInit(); ((System.ComponentModel.ISupportInitialize)radGridView_Actions).EndInit(); ((System.ComponentModel.ISupportInitialize)radMenu1).EndInit(); + ((System.ComponentModel.ISupportInitialize)radWaitingBar_Updates).EndInit(); + ((System.ComponentModel.ISupportInitialize)radWaitingBar_Actions).EndInit(); ((System.ComponentModel.ISupportInitialize)this).EndInit(); ResumeLayout(false); PerformLayout(); @@ -244,4 +288,8 @@ partial class Form1 private Telerik.WinControls.UI.RadMenuItem radMenuItem_OpenNewWorkspace; private Telerik.WinControls.UI.RadMenuItem radMenuItem_RecentWorkspaces; private Telerik.WinControls.UI.RadMenuItem radMenuItem_SaveWorkspace; + private Telerik.WinControls.UI.RadWaitingBar radWaitingBar_Updates; + private Telerik.WinControls.UI.DotsRingWaitingBarIndicatorElement dotsRingWaitingBarIndicatorElement1; + private Telerik.WinControls.UI.RadWaitingBar radWaitingBar_Actions; + private Telerik.WinControls.UI.DotsRingWaitingBarIndicatorElement dotsRingWaitingBarIndicatorElement2; } diff --git a/ModpackUpdater.Apps.Manager/Form1.cs b/ModpackUpdater.Apps.Manager/Form1.cs index 601e21f..79fca83 100644 --- a/ModpackUpdater.Apps.Manager/Form1.cs +++ b/ModpackUpdater.Apps.Manager/Form1.cs @@ -1,10 +1,12 @@ using ModpackUpdater.Apps.Manager.Api.Model; using ModpackUpdater.Apps.Manager.Api.Plugins.Features; using ModpackUpdater.Apps.Manager.Api.Plugins.Params; +using ModpackUpdater.Apps.Manager.LangRes; using ModpackUpdater.Apps.Manager.Settings; using Pilz.Plugins.Advanced; using Pilz.Plugins.Advanced.UI.Telerik; using Pilz.UI.Symbols; +using Telerik.WinControls; using Telerik.WinControls.UI; namespace ModpackUpdater.Apps.Manager; @@ -12,9 +14,11 @@ namespace ModpackUpdater.Apps.Manager; public partial class Form1 : RadForm, IMainApi { private IWorkspace? workspace; - + public IWorkspace? Workspace => workspace; + private record RecentFileItemTag(WorkspaceConfig Config, WorkspaceFeature Feature); + public Form1() { InitializeComponent(); @@ -38,12 +42,19 @@ public partial class Form1 : RadForm, IMainApi radMenuItem_RecentWorkspaces.Items.Clear(); - foreach (var config in settings.Workspaces) + foreach (var config in settings.Workspaces.ToArray()) { + if (PluginFeatureController.Instance.Features.Get(FeatureTypes.Workspace).OfType().FirstOrDefault(n => n.Identifier == config.ProviderId) is not WorkspaceFeature feature) + { + settings.Workspaces.Remove(config); + continue; + } + var item = new RadMenuItem { Text = config.DisplayText, - Tag = config, + Tag = new RecentFileItemTag(config, feature), + SvgImage = feature.Icon as RadSvgImage, }; item.Click += RadMenuItem_OpenRecentWorkspace_Click; @@ -52,9 +63,9 @@ public partial class Form1 : RadForm, IMainApi } if (radMenuItem_RecentWorkspaces.Items.Any()) - radMenuItem_RecentWorkspaces.Visibility = Telerik.WinControls.ElementVisibility.Visible; + radMenuItem_RecentWorkspaces.Visibility = ElementVisibility.Visible; else - radMenuItem_RecentWorkspaces.Visibility = Telerik.WinControls.ElementVisibility.Collapsed; + radMenuItem_RecentWorkspaces.Visibility = ElementVisibility.Collapsed; } private void AddToRecentFiles(IWorkspace workspace) @@ -79,15 +90,44 @@ public partial class Form1 : RadForm, IMainApi AddToRecentFiles(workspace); Invoke(LoadRecentWorkspaces); + radWaitingBar_Updates.StartWaiting(); + if (!await workspace.Load()) + { + radWaitingBar_Updates.StopWaiting(); return; + } Invoke(LoadWorkspace); } private void LoadWorkspace() { - // ... + if (workspace?.Config is null || workspace.InstallInfos is null || workspace.UpdateInfos is null) + return; + + radWaitingBar_Updates.StartWaiting(); + Text = workspace.Config.DisplayText; + radTreeView_Updates.BeginUpdate(); + radTreeView_Updates.Nodes.Clear(); + + radTreeView_Updates.Nodes.Add(new RadTreeNode + { + Text = string.Format(GeneralLangRes.Node_Install, workspace.InstallInfos.Version.ToString()), + Tag = workspace.InstallInfos, + }); + + foreach (var update in workspace.UpdateInfos.Updates) + { + radTreeView_Updates.Nodes.Add(new RadTreeNode + { + Text = string.Format(GeneralLangRes.Node_Update, update.Version.ToString()), + Tag = update, + }); + } + + radTreeView_Updates.EndUpdate(); + radWaitingBar_Updates.StopWaiting(); } private void LoadActionSet() @@ -108,9 +148,7 @@ public partial class Form1 : RadForm, IMainApi private async void RadMenuItem_OpenRecentWorkspace_Click(object? sender, EventArgs e) { - if (sender is RadMenuItem item && item.Tag is WorkspaceConfig config - && PluginFeatureController.Instance.Features.Get(FeatureTypes.Workspace).OfType().FirstOrDefault(n => n.Identifier == config.ProviderId) is WorkspaceFeature feature - && feature.CreateFromSettings(config) is IWorkspace workspace) + if (sender is RadMenuItem item && item.Tag is RecentFileItemTag tag && tag.Feature.CreateFromConfig(tag.Config) is IWorkspace workspace) await LoadNewWorkspace(workspace); } diff --git a/ModpackUpdater.Apps.Manager/LangRes/GeneralLangRes.Designer.cs b/ModpackUpdater.Apps.Manager/LangRes/GeneralLangRes.Designer.cs new file mode 100644 index 0000000..16c3286 --- /dev/null +++ b/ModpackUpdater.Apps.Manager/LangRes/GeneralLangRes.Designer.cs @@ -0,0 +1,81 @@ +//------------------------------------------------------------------------------ +// +// Dieser Code wurde von einem Tool generiert. +// Laufzeitversion:4.0.30319.42000 +// +// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +// der Code erneut generiert wird. +// +//------------------------------------------------------------------------------ + +namespace ModpackUpdater.Apps.Manager.LangRes { + using System; + + + /// + /// Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. + /// + // Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert + // -Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. + // Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen + // mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class GeneralLangRes { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal GeneralLangRes() { + } + + /// + /// Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ModpackUpdater.Apps.Manager.LangRes.GeneralLangRes", typeof(GeneralLangRes).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle + /// Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Sucht eine lokalisierte Zeichenfolge, die Install to {0} ähnelt. + /// + internal static string Node_Install { + get { + return ResourceManager.GetString("Node_Install", resourceCulture); + } + } + + /// + /// Sucht eine lokalisierte Zeichenfolge, die Update to {0} ähnelt. + /// + internal static string Node_Update { + get { + return ResourceManager.GetString("Node_Update", resourceCulture); + } + } + } +} diff --git a/ModpackUpdater.Apps.Manager/LangRes/GeneralLangRes.resx b/ModpackUpdater.Apps.Manager/LangRes/GeneralLangRes.resx new file mode 100644 index 0000000..76ad5de --- /dev/null +++ b/ModpackUpdater.Apps.Manager/LangRes/GeneralLangRes.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Install to {0} + + + Update to {0} + + \ No newline at end of file diff --git a/ModpackUpdater.Apps.Manager/ModpackUpdater.Apps.Manager.csproj b/ModpackUpdater.Apps.Manager/ModpackUpdater.Apps.Manager.csproj index 38a1889..c8d6ef0 100644 --- a/ModpackUpdater.Apps.Manager/ModpackUpdater.Apps.Manager.csproj +++ b/ModpackUpdater.Apps.Manager/ModpackUpdater.Apps.Manager.csproj @@ -6,6 +6,8 @@ enable true enable + icons8_Windows_Update.ico + Minecraft Modpack Update Manager @@ -27,6 +29,11 @@ + + True + True + GeneralLangRes.resx + True True @@ -35,6 +42,10 @@ + + ResXFileCodeGenerator + GeneralLangRes.Designer.cs + ResXFileCodeGenerator TitlesLangRes.Designer.cs diff --git a/ModpackUpdater.Apps.Manager/Program.cs b/ModpackUpdater.Apps.Manager/Program.cs index 5096b32..ed28fcb 100644 --- a/ModpackUpdater.Apps.Manager/Program.cs +++ b/ModpackUpdater.Apps.Manager/Program.cs @@ -1,6 +1,9 @@ +using Pilz; using Pilz.Configuration; using Pilz.Plugins.Advanced; +[assembly: AssemblyAppVersion("1.0.0.0")] + namespace ModpackUpdater.Apps.Manager; public static class Program diff --git a/ModpackUpdater.Apps.Manager/icons8_Windows_Update.ico b/ModpackUpdater.Apps.Manager/icons8_Windows_Update.ico new file mode 100644 index 0000000..ceb98ca Binary files /dev/null and b/ModpackUpdater.Apps.Manager/icons8_Windows_Update.ico differ diff --git a/ModpackUpdater.Apps/Symbols/cancel.svg b/ModpackUpdater.Apps/Symbols/cancel.svg index 1a0b7ea..ce8cfda 100644 --- a/ModpackUpdater.Apps/Symbols/cancel.svg +++ b/ModpackUpdater.Apps/Symbols/cancel.svg @@ -1,6 +1 @@ - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/ModpackUpdater.Apps/Symbols/checkmark.svg b/ModpackUpdater.Apps/Symbols/checkmark.svg index 0ec54cb..7b46217 100644 --- a/ModpackUpdater.Apps/Symbols/checkmark.svg +++ b/ModpackUpdater.Apps/Symbols/checkmark.svg @@ -1,5 +1 @@ - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/ModpackUpdater.Apps/Symbols/close.svg b/ModpackUpdater.Apps/Symbols/close.svg index fb5ed9c..ff4ba5b 100644 --- a/ModpackUpdater.Apps/Symbols/close.svg +++ b/ModpackUpdater.Apps/Symbols/close.svg @@ -1,5 +1 @@ - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/ModpackUpdater.Apps/Symbols/delete.svg b/ModpackUpdater.Apps/Symbols/delete.svg index 72b0583..2f1752f 100644 --- a/ModpackUpdater.Apps/Symbols/delete.svg +++ b/ModpackUpdater.Apps/Symbols/delete.svg @@ -1,6 +1 @@ - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/ModpackUpdater.Apps/Symbols/done.svg b/ModpackUpdater.Apps/Symbols/done.svg index 126184a..a70dddc 100644 --- a/ModpackUpdater.Apps/Symbols/done.svg +++ b/ModpackUpdater.Apps/Symbols/done.svg @@ -1,4 +1 @@ - - - - \ No newline at end of file + \ No newline at end of file diff --git a/ModpackUpdater.Apps/Symbols/download_from_ftp.svg b/ModpackUpdater.Apps/Symbols/download_from_ftp.svg index 340a861..4958a17 100644 --- a/ModpackUpdater.Apps/Symbols/download_from_ftp.svg +++ b/ModpackUpdater.Apps/Symbols/download_from_ftp.svg @@ -1,11 +1 @@ - - - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/ModpackUpdater.Apps/Symbols/general_warning_sign.svg b/ModpackUpdater.Apps/Symbols/general_warning_sign.svg index 78eca79..604ebe0 100644 --- a/ModpackUpdater.Apps/Symbols/general_warning_sign.svg +++ b/ModpackUpdater.Apps/Symbols/general_warning_sign.svg @@ -1,7 +1 @@ - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/ModpackUpdater.Apps/Symbols/github.svg b/ModpackUpdater.Apps/Symbols/github.svg index b1ac899..bb611ad 100644 --- a/ModpackUpdater.Apps/Symbols/github.svg +++ b/ModpackUpdater.Apps/Symbols/github.svg @@ -1,8 +1 @@ - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/ModpackUpdater.Apps/Symbols/new_window.svg b/ModpackUpdater.Apps/Symbols/new_window.svg index 61eaedb..fb133fb 100644 --- a/ModpackUpdater.Apps/Symbols/new_window.svg +++ b/ModpackUpdater.Apps/Symbols/new_window.svg @@ -1,7 +1 @@ - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/ModpackUpdater.Apps/Symbols/opened_folder.svg b/ModpackUpdater.Apps/Symbols/opened_folder.svg index 9cb2635..76b5d73 100644 --- a/ModpackUpdater.Apps/Symbols/opened_folder.svg +++ b/ModpackUpdater.Apps/Symbols/opened_folder.svg @@ -1,5 +1 @@ - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/ModpackUpdater.Apps/Symbols/refresh.svg b/ModpackUpdater.Apps/Symbols/refresh.svg index e762078..ad2d95e 100644 --- a/ModpackUpdater.Apps/Symbols/refresh.svg +++ b/ModpackUpdater.Apps/Symbols/refresh.svg @@ -1,7 +1 @@ - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/ModpackUpdater.Apps/Symbols/replay.svg b/ModpackUpdater.Apps/Symbols/replay.svg index 65e6af4..e6274ed 100644 --- a/ModpackUpdater.Apps/Symbols/replay.svg +++ b/ModpackUpdater.Apps/Symbols/replay.svg @@ -1,5 +1 @@ - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/ModpackUpdater.Apps/Symbols/save.svg b/ModpackUpdater.Apps/Symbols/save.svg index b5040fc..92c9b0e 100644 --- a/ModpackUpdater.Apps/Symbols/save.svg +++ b/ModpackUpdater.Apps/Symbols/save.svg @@ -1,9 +1 @@ - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/ModpackUpdater.Apps/Symbols/settings.svg b/ModpackUpdater.Apps/Symbols/settings.svg index a087527..eae8242 100644 --- a/ModpackUpdater.Apps/Symbols/settings.svg +++ b/ModpackUpdater.Apps/Symbols/settings.svg @@ -1,5 +1 @@ - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/ModpackUpdater.Apps/Symbols/software_installer.svg b/ModpackUpdater.Apps/Symbols/software_installer.svg index ca6fe34..0d3da89 100644 --- a/ModpackUpdater.Apps/Symbols/software_installer.svg +++ b/ModpackUpdater.Apps/Symbols/software_installer.svg @@ -1,8 +1 @@ - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/ModpackUpdater.Apps/Symbols/time_machine.svg b/ModpackUpdater.Apps/Symbols/time_machine.svg index 10d9c5c..a66af50 100644 --- a/ModpackUpdater.Apps/Symbols/time_machine.svg +++ b/ModpackUpdater.Apps/Symbols/time_machine.svg @@ -1,11 +1 @@ - - - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/ModpackUpdater.Apps/Symbols/tools.svg b/ModpackUpdater.Apps/Symbols/tools.svg index 4aa505c..32a049b 100644 --- a/ModpackUpdater.Apps/Symbols/tools.svg +++ b/ModpackUpdater.Apps/Symbols/tools.svg @@ -1,7 +1 @@ - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/ModpackUpdater.Apps/Symbols/update_done.svg b/ModpackUpdater.Apps/Symbols/update_done.svg index f9a2318..22bda2f 100644 --- a/ModpackUpdater.Apps/Symbols/update_done.svg +++ b/ModpackUpdater.Apps/Symbols/update_done.svg @@ -1,7 +1 @@ - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/ModpackUpdater.Apps/Symbols/workspace.svg b/ModpackUpdater.Apps/Symbols/workspace.svg index 47e0494..b2dce08 100644 --- a/ModpackUpdater.Apps/Symbols/workspace.svg +++ b/ModpackUpdater.Apps/Symbols/workspace.svg @@ -1,10 +1 @@ - - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/ModpackUpdater.Apps/Symbols/wrench.svg b/ModpackUpdater.Apps/Symbols/wrench.svg index 92b079d..63c6f55 100644 --- a/ModpackUpdater.Apps/Symbols/wrench.svg +++ b/ModpackUpdater.Apps/Symbols/wrench.svg @@ -1,4 +1 @@ - - - - \ No newline at end of file + \ No newline at end of file