mirror of
https://github.com/wabbajack-tools/wabbajack.git
synced 2024-08-30 18:42:17 +00:00
Merge pull request #605 from erri120/issue-587
PR: Store settings.json in local appdata
This commit is contained in:
commit
64cad0752f
@ -106,5 +106,8 @@ namespace Wabbajack.Common
|
||||
|
||||
public static string LogsFolder = "logs";
|
||||
public static int MaxOldLogs = 50;
|
||||
|
||||
public static string SettingsFile => Path.Combine(LocalAppDataPath, "settings.json");
|
||||
public static byte SettingsVersion => 1;
|
||||
}
|
||||
}
|
||||
|
@ -1,10 +1,8 @@
|
||||
using Newtonsoft.Json;
|
||||
using ReactiveUI.Fody.Helpers;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Reactive;
|
||||
using System.Reactive.Disposables;
|
||||
using System.Reactive.Subjects;
|
||||
using Wabbajack.Common;
|
||||
using Wabbajack.Lib;
|
||||
@ -14,7 +12,7 @@ namespace Wabbajack
|
||||
[JsonObject(MemberSerialization.OptOut)]
|
||||
public class MainSettings
|
||||
{
|
||||
private static string _filename = "settings.json";
|
||||
public byte Version { get; set; }
|
||||
|
||||
public double PosX { get; set; }
|
||||
public double PosY { get; set; }
|
||||
@ -30,13 +28,26 @@ namespace Wabbajack
|
||||
|
||||
public static bool TryLoadTypicalSettings(out MainSettings settings)
|
||||
{
|
||||
if (!File.Exists(_filename))
|
||||
if (!File.Exists(Consts.SettingsFile))
|
||||
{
|
||||
settings = default;
|
||||
return false;
|
||||
}
|
||||
settings = JsonConvert.DeserializeObject<MainSettings>(File.ReadAllText(_filename));
|
||||
return true;
|
||||
|
||||
// Version check
|
||||
settings = JsonConvert.DeserializeObject<MainSettings>(File.ReadAllText(Consts.SettingsFile));
|
||||
if (settings.Version == Consts.SettingsVersion)
|
||||
return true;
|
||||
|
||||
var backup = Consts.SettingsFile + "-backup.json";
|
||||
if(File.Exists(backup))
|
||||
File.Delete(backup);
|
||||
|
||||
File.Copy(Consts.SettingsFile, backup);
|
||||
File.Delete(Consts.SettingsFile);
|
||||
|
||||
settings = default;
|
||||
return false;
|
||||
}
|
||||
|
||||
public static void SaveSettings(MainSettings settings)
|
||||
@ -48,7 +59,7 @@ namespace Wabbajack
|
||||
//settings._saveSignal.OnCompleted();
|
||||
//await settings._saveSignal;
|
||||
|
||||
File.WriteAllText(_filename, JsonConvert.SerializeObject(settings, Formatting.Indented));
|
||||
File.WriteAllText(Consts.SettingsFile, JsonConvert.SerializeObject(settings, Formatting.Indented));
|
||||
}
|
||||
}
|
||||
|
||||
@ -76,14 +87,14 @@ namespace Wabbajack
|
||||
[JsonObject(MemberSerialization.OptOut)]
|
||||
public class PerformanceSettings : ViewModel
|
||||
{
|
||||
private bool _Manual = false;
|
||||
public bool Manual { get => _Manual; set => this.RaiseAndSetIfChanged(ref _Manual, value); }
|
||||
private bool _manual;
|
||||
public bool Manual { get => _manual; set => RaiseAndSetIfChanged(ref _manual, value); }
|
||||
|
||||
private byte _MaxCores = byte.MaxValue;
|
||||
public byte MaxCores { get => _MaxCores; set => this.RaiseAndSetIfChanged(ref _MaxCores, value); }
|
||||
private byte _maxCores = byte.MaxValue;
|
||||
public byte MaxCores { get => _maxCores; set => RaiseAndSetIfChanged(ref _maxCores, value); }
|
||||
|
||||
private Percent _TargetUsage = Percent.One;
|
||||
public Percent TargetUsage { get => _TargetUsage; set => this.RaiseAndSetIfChanged(ref _TargetUsage, value); }
|
||||
private Percent _targetUsage = Percent.One;
|
||||
public Percent TargetUsage { get => _targetUsage; set => RaiseAndSetIfChanged(ref _targetUsage, value); }
|
||||
|
||||
public void AttachToBatchProcessor(ABatchProcessor processor)
|
||||
{
|
||||
|
@ -59,7 +59,10 @@ namespace Wabbajack
|
||||
};
|
||||
if (CLIArguments.NoSettings || !MainSettings.TryLoadTypicalSettings(out var settings))
|
||||
{
|
||||
_settings = new MainSettings();
|
||||
_settings = new MainSettings
|
||||
{
|
||||
Version = Consts.SettingsVersion
|
||||
};
|
||||
RunWhenLoaded(DefaultSettings);
|
||||
}
|
||||
else
|
||||
|
Loading…
Reference in New Issue
Block a user