Add auto-locking to design defaults.

This commit is contained in:
Ottermandias 2025-08-08 15:36:47 +02:00
parent c25f0f72db
commit 0f98fac157
3 changed files with 6 additions and 0 deletions

View file

@ -32,6 +32,7 @@ public class DefaultDesignSettings
public bool ResetAdvancedDyes = false; public bool ResetAdvancedDyes = false;
public bool ShowQuickDesignBar = true; public bool ShowQuickDesignBar = true;
public bool ResetTemporarySettings = false; public bool ResetTemporarySettings = false;
public bool Locked = false;
} }
public class Configuration : IPluginConfiguration, ISavable public class Configuration : IPluginConfiguration, ISavable

View file

@ -110,6 +110,7 @@ public sealed class DesignManager : DesignEditor
QuickDesign = Config.DefaultDesignSettings.ShowQuickDesignBar, QuickDesign = Config.DefaultDesignSettings.ShowQuickDesignBar,
ResetTemporarySettings = Config.DefaultDesignSettings.ResetTemporarySettings, ResetTemporarySettings = Config.DefaultDesignSettings.ResetTemporarySettings,
}; };
design.SetWriteProtected(Config.DefaultDesignSettings.Locked);
Designs.Add(design); Designs.Add(design);
Glamourer.Log.Debug($"Added new design {design.Identifier}."); Glamourer.Log.Debug($"Added new design {design.Identifier}.");
SaveService.ImmediateSave(design); SaveService.ImmediateSave(design);
@ -134,6 +135,7 @@ public sealed class DesignManager : DesignEditor
ResetTemporarySettings = Config.DefaultDesignSettings.ResetTemporarySettings, ResetTemporarySettings = Config.DefaultDesignSettings.ResetTemporarySettings,
}; };
design.SetWriteProtected(Config.DefaultDesignSettings.Locked);
Designs.Add(design); Designs.Add(design);
Glamourer.Log.Debug($"Added new design {design.Identifier} by cloning Temporary Design."); Glamourer.Log.Debug($"Added new design {design.Identifier} by cloning Temporary Design.");
SaveService.ImmediateSave(design); SaveService.ImmediateSave(design);
@ -153,6 +155,7 @@ public sealed class DesignManager : DesignEditor
Name = actualName, Name = actualName,
Index = Designs.Count, Index = Designs.Count,
}; };
design.SetWriteProtected(Config.DefaultDesignSettings.Locked);
Designs.Add(design); Designs.Add(design);
Glamourer.Log.Debug( Glamourer.Log.Debug(
$"Added new design {design.Identifier} by cloning {clone.Identifier.ToString()}."); $"Added new design {design.Identifier} by cloning {clone.Identifier.ToString()}.");

View file

@ -113,6 +113,8 @@ public class SettingsTab(
if (!ImUtf8.CollapsingHeader("Design Defaults")) if (!ImUtf8.CollapsingHeader("Design Defaults"))
return; return;
Checkbox("Locked Designs"u8, "Newly created designs will be locked to prevent unintended changes."u8,
config.DefaultDesignSettings.Locked, v => config.DefaultDesignSettings.Locked = v);
Checkbox("Show in Quick Design Bar"u8, "Newly created designs will be shown in the quick design bar by default."u8, Checkbox("Show in Quick Design Bar"u8, "Newly created designs will be shown in the quick design bar by default."u8,
config.DefaultDesignSettings.ShowQuickDesignBar, v => config.DefaultDesignSettings.ShowQuickDesignBar = v); config.DefaultDesignSettings.ShowQuickDesignBar, v => config.DefaultDesignSettings.ShowQuickDesignBar = v);
Checkbox("Reset Advanced Dyes"u8, "Newly created designs will be configured to reset advanced dyes on application by default."u8, Checkbox("Reset Advanced Dyes"u8, "Newly created designs will be configured to reset advanced dyes on application by default."u8,