From 5e3f001f18ac788ad4c6821c150cccb58d1c2f0c Mon Sep 17 00:00:00 2001 From: Ottermandias Date: Wed, 18 Feb 2026 16:33:28 +0100 Subject: [PATCH] Move ConfigurationFile to Luna. --- Luna | 2 +- Penumbra/Config/ConfigurationFile.cs | 60 ---------------------------- Penumbra/Config/FilterConfig.cs | 12 +++--- Penumbra/Config/UiConfig.cs | 7 ++-- Penumbra/UI/ModsTab/MultiModPanel.cs | 4 +- 5 files changed, 14 insertions(+), 71 deletions(-) delete mode 100644 Penumbra/Config/ConfigurationFile.cs diff --git a/Luna b/Luna index 1f00860c..3fa2195b 160000 --- a/Luna +++ b/Luna @@ -1 +1 @@ -Subproject commit 1f00860cbb38fecacde99e55461dbc251cb40f24 +Subproject commit 3fa2195ba9b34c4ce21e3180bf238edb488a4d35 diff --git a/Penumbra/Config/ConfigurationFile.cs b/Penumbra/Config/ConfigurationFile.cs deleted file mode 100644 index 2e2f4afc..00000000 --- a/Penumbra/Config/ConfigurationFile.cs +++ /dev/null @@ -1,60 +0,0 @@ -using Dalamud.Interface.ImGuiNotification; -using Luna; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; -using Penumbra.Services; - -namespace Penumbra; - -public abstract class ConfigurationFile(SaveService saveService, TimeSpan? saveDelay = null) : ISavable, IService -{ - public abstract int CurrentVersion { get; } - - [JsonIgnore] - protected readonly SaveService SaveService = saveService; - - public virtual void Save() - => SaveService.DelaySave(this, SaveDelay); - - protected TimeSpan SaveDelay { get; set; } = saveDelay ?? TimeSpan.FromMinutes(1); - - public virtual void Save(StreamWriter writer) - { - using var j = new JsonTextWriter(writer); - j.Formatting = Formatting.Indented; - j.WriteStartObject(); - j.WritePropertyName("Version"); - j.WriteValue(CurrentVersion); - AddData(j); - j.WriteEndObject(); - } - - protected abstract void AddData(JsonTextWriter j); - protected abstract void LoadData(JObject j); - - public abstract string ToFilePath(FilenameService fileNames); - - protected virtual void Load() - { - var fileName = ToFilePath(SaveService.FileNames); - var logName = ((ISavable)this).LogName(fileName); - if (!File.Exists(fileName)) - return; - - try - { - Penumbra.Log.Debug($"Reading {logName}..."); - var text = File.ReadAllText(fileName); - var jObj = JObject.Parse(text); - if (jObj["Version"]?.Value() != CurrentVersion) - throw new Exception("Unsupported version."); - - LoadData(jObj); - } - catch (Exception ex) - { - Penumbra.Messager.NotificationMessage(ex, $"Error reading {logName}, reverting to default.", - $"Error reading {logName}", NotificationType.Error); - } - } -} diff --git a/Penumbra/Config/FilterConfig.cs b/Penumbra/Config/FilterConfig.cs index acbcd169..ddf15585 100644 --- a/Penumbra/Config/FilterConfig.cs +++ b/Penumbra/Config/FilterConfig.cs @@ -1,3 +1,4 @@ +using Luna; using Luna.Generators; using Newtonsoft.Json; using Newtonsoft.Json.Linq; @@ -6,16 +7,17 @@ using Penumbra.Services; using Penumbra.UI.Classes; using Penumbra.UI.ModsTab.Selector; using Penumbra.UI.ResourceWatcher; +using MessageService = Penumbra.Services.MessageService; namespace Penumbra; -public sealed partial class FilterConfig : ConfigurationFile +public sealed partial class FilterConfig : ConfigurationFile { public override int CurrentVersion => 1; - public FilterConfig(SaveService saveService) - : base(saveService) + public FilterConfig(SaveService saveService, MessageService messager) + : base(saveService, messager) { Load(); } @@ -323,7 +325,7 @@ public sealed partial class FilterConfig : ConfigurationFile #region [ConfigProperty] - private bool _resourceLoggerEnabled = false; + private bool _resourceLoggerEnabled; [ConfigProperty] private int _resourceLoggerMaxEntries = 500; @@ -332,7 +334,7 @@ public sealed partial class FilterConfig : ConfigurationFile private bool _resourceLoggerStoreOnlyMatching = true; [ConfigProperty] - private bool _resourceLoggerWriteToLog = false; + private bool _resourceLoggerWriteToLog; [ConfigProperty] private string _resourceLoggerLogFilter = string.Empty; diff --git a/Penumbra/Config/UiConfig.cs b/Penumbra/Config/UiConfig.cs index 08c46467..37a88684 100644 --- a/Penumbra/Config/UiConfig.cs +++ b/Penumbra/Config/UiConfig.cs @@ -3,13 +3,14 @@ using Luna.Generators; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Penumbra.Services; +using MessageService = Penumbra.Services.MessageService; namespace Penumbra; -public sealed partial class UiConfig : ConfigurationFile +public sealed partial class UiConfig : ConfigurationFile { - public UiConfig(SaveService saveService) - : base(saveService, TimeSpan.FromMinutes(5)) + public UiConfig(SaveService saveService, MessageService messager) + : base(saveService, messager, TimeSpan.FromMinutes(5)) { Load(); } diff --git a/Penumbra/UI/ModsTab/MultiModPanel.cs b/Penumbra/UI/ModsTab/MultiModPanel.cs index 508c7cfa..10bea082 100644 --- a/Penumbra/UI/ModsTab/MultiModPanel.cs +++ b/Penumbra/UI/ModsTab/MultiModPanel.cs @@ -65,8 +65,8 @@ public class MultiModPanel(ModFileSystem fileSystem, ModDataEditor editor, Prede { using var id = Im.Id.Push(i++); var (icon, text) = node is IFileSystemData l - ? (FontAwesomeIcon.FileCircleMinus.Icon(), l.Value.Name) - : (FontAwesomeIcon.FolderMinus.Icon(), string.Empty); + ? (LunaStyle.RemoveFileIcon, l.Value.Name) + : (LunaStyle.RemoveFolderIcon, string.Empty); table.NextColumn(); if (ImEx.Icon.Button(icon, "Remove from selection."u8, false, sizeType)) fileSystem.Selection.RemoveFromSelection(node);