From b65bef17b272cde60a8e11374194af18dbbde27b Mon Sep 17 00:00:00 2001 From: Ottermandias Date: Tue, 6 Dec 2022 15:59:57 +0100 Subject: [PATCH] Small fixes for backup, respect export directory on load. --- OtterGui | 2 +- Penumbra/Mods/Manager/Mod.Manager.Root.cs | 20 ++++++++++++------- Penumbra/Mods/Manager/Mod.Manager.cs | 1 + .../UI/ConfigWindow.SettingsTab.General.cs | 4 ++-- 4 files changed, 17 insertions(+), 10 deletions(-) diff --git a/OtterGui b/OtterGui index 441d5f9b..1b61ce89 160000 --- a/OtterGui +++ b/OtterGui @@ -1 +1 @@ -Subproject commit 441d5f9b2943f8ab81501870314d9b1610cb3b51 +Subproject commit 1b61ce894209ebabe6cf2d8b7c120f5a6edbe86a diff --git a/Penumbra/Mods/Manager/Mod.Manager.Root.cs b/Penumbra/Mods/Manager/Mod.Manager.Root.cs index 38c2fae7..a82fb88e 100644 --- a/Penumbra/Mods/Manager/Mod.Manager.Root.cs +++ b/Penumbra/Mods/Manager/Mod.Manager.Root.cs @@ -1,4 +1,3 @@ -using ImGuizmoNET; using System; using System.IO; @@ -110,7 +109,7 @@ public sealed partial class Mod } } - public void UpdateExportDirectory( string newDirectory ) + public void UpdateExportDirectory( string newDirectory, bool change ) { if( newDirectory.Length == 0 ) { @@ -144,14 +143,21 @@ public sealed partial class Mod } } - foreach( var mod in _mods ) + if( change ) { - new ModBackup( mod ).Move( dir.FullName ); + foreach( var mod in _mods ) + { + new ModBackup( mod ).Move( dir.FullName ); + } } - _exportDirectory = dir; - Penumbra.Config.ExportDirectory = dir.FullName; - Penumbra.Config.Save(); + _exportDirectory = dir; + + if( change ) + { + Penumbra.Config.ExportDirectory = dir.FullName; + Penumbra.Config.Save(); + } } } } \ No newline at end of file diff --git a/Penumbra/Mods/Manager/Mod.Manager.cs b/Penumbra/Mods/Manager/Mod.Manager.cs index 11f878ca..71069dbe 100644 --- a/Penumbra/Mods/Manager/Mod.Manager.cs +++ b/Penumbra/Mods/Manager/Mod.Manager.cs @@ -39,6 +39,7 @@ public sealed partial class Mod { ModDirectoryChanged += OnModDirectoryChange; SetBaseDirectory( modDirectory, true ); + UpdateExportDirectory( Penumbra.Config.ExportDirectory, false ); ModOptionChanged += OnModOptionChange; ModPathChanged += OnModPathChange; } diff --git a/Penumbra/UI/ConfigWindow.SettingsTab.General.cs b/Penumbra/UI/ConfigWindow.SettingsTab.General.cs index a1aee0e4..826629e8 100644 --- a/Penumbra/UI/ConfigWindow.SettingsTab.General.cs +++ b/Penumbra/UI/ConfigWindow.SettingsTab.General.cs @@ -236,7 +236,7 @@ public partial class ConfigWindow if( ImGui.IsItemDeactivatedAfterEdit() ) { - Penumbra.ModManager.UpdateExportDirectory( _tempExportDirectory ); + Penumbra.ModManager.UpdateExportDirectory( _tempExportDirectory, true ); } ImGui.SameLine(); @@ -258,7 +258,7 @@ public partial class ConfigWindow _dialogManager.OpenFolderDialog( "Choose Default Export Directory", ( b, s ) => { - Penumbra.ModManager.UpdateExportDirectory( b ? s : Penumbra.Config.ExportDirectory ); + Penumbra.ModManager.UpdateExportDirectory( b ? s : Penumbra.Config.ExportDirectory, true ); _dialogOpen = false; }, startDir ); _dialogOpen = true;