From 3167d286e34cdad3b6dd6a06e7bd9334165721ba Mon Sep 17 00:00:00 2001 From: Anna Date: Sat, 16 Jan 2021 20:32:16 -0500 Subject: [PATCH] feat: add preset copy button --- BetterPartyFinder/Configuration.cs | 22 ++++++++++++++++++++++ BetterPartyFinder/PluginUi.cs | 14 ++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/BetterPartyFinder/Configuration.cs b/BetterPartyFinder/Configuration.cs index 67b76f0..48b20da 100755 --- a/BetterPartyFinder/Configuration.cs +++ b/BetterPartyFinder/Configuration.cs @@ -105,6 +105,28 @@ namespace BetterPartyFinder { } } + internal ConfigurationFilter Clone() { + var categories = this.Categories.ToHashSet(); + var duties = this.Duties.ToHashSet(); + var jobs = this.Jobs.ToList(); + + return new ConfigurationFilter { + Categories = categories, + Conditions = this.Conditions, + Duties = duties, + Jobs = jobs, + Name = string.Copy(this.Name), + Objectives = this.Objectives, + DutiesMode = this.DutiesMode, + LootRule = this.LootRule, + SearchArea = this.SearchArea, + DutyFinderSettings = this.DutyFinderSettings, + MaxItemLevel = this.MaxItemLevel, + MinItemLevel = this.MinItemLevel, + AllowHugeItemLevel = this.AllowHugeItemLevel, + }; + } + internal static ConfigurationFilter Create() { return new() { Categories = Enum.GetValues(typeof(UiCategory)) diff --git a/BetterPartyFinder/PluginUi.cs b/BetterPartyFinder/PluginUi.cs index e00da2f..4ba7a10 100755 --- a/BetterPartyFinder/PluginUi.cs +++ b/BetterPartyFinder/PluginUi.cs @@ -220,6 +220,20 @@ namespace BetterPartyFinder { ImGui.SameLine(); + if (IconButton(FontAwesomeIcon.Copy, "copy") && selected != null) { + if (this.Plugin.Config.Presets.TryGetValue(selected.Value, out var copyFilter)) { + var guid = Guid.NewGuid(); + + var copied = copyFilter.Clone(); + copied.Name += " (copy)"; + this.Plugin.Config.Presets.Add(guid, copied); + this.Plugin.Config.SelectedPreset = guid; + this.Plugin.Config.Save(); + } + } + + ImGui.SameLine(); + if (IconButton(FontAwesomeIcon.Cog, "settings")) { this.SettingsVisible = true; }