From ffead0104a7fc57e7d0159297c3a1759ef78d87e Mon Sep 17 00:00:00 2001 From: Jaex Date: Thu, 28 Jan 2016 09:42:39 +0200 Subject: [PATCH] When loading setting set FilePath for new SettingsBase --- ShareX.HelpersLib/SettingsBase.cs | 2 +- ShareX.HelpersLib/SettingsHelper.cs | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/ShareX.HelpersLib/SettingsBase.cs b/ShareX.HelpersLib/SettingsBase.cs index 095887533..307e73850 100644 --- a/ShareX.HelpersLib/SettingsBase.cs +++ b/ShareX.HelpersLib/SettingsBase.cs @@ -36,7 +36,7 @@ public abstract class SettingsBase where T : SettingsBase, new() private static readonly SerializationType SerializationType = SerializationType.Json; [Browsable(false)] - public string FilePath { get; private set; } + public string FilePath { get; set; } [Browsable(false)] public string ApplicationVersion { get; set; } diff --git a/ShareX.HelpersLib/SettingsHelper.cs b/ShareX.HelpersLib/SettingsHelper.cs index eeabd43a8..94d2683fb 100644 --- a/ShareX.HelpersLib/SettingsHelper.cs +++ b/ShareX.HelpersLib/SettingsHelper.cs @@ -57,9 +57,9 @@ public static bool Save(object obj, string filePath, SerializationType type, boo { lock (obj) { - string tempFilePath = filePath + ".temp"; + Helpers.CreateDirectoryIfNotExist(filePath); - Helpers.CreateDirectoryIfNotExist(filePath, true); + string tempFilePath = filePath + ".temp"; using (FileStream fs = new FileStream(tempFilePath, FileMode.Create, FileAccess.Write, FileShare.Read)) { @@ -118,7 +118,7 @@ public static void Save(object obj, Stream stream, SerializationType type) } } - public static T Load(string path, SerializationType type, bool checkBackup = true) where T : new() + public static T Load(string path, SerializationType type, bool checkBackup = true) where T : SettingsBase, new() { string typeName = typeof(T).Name; @@ -157,7 +157,7 @@ public static T Load(string path, SerializationType type, bool checkBackup = DebugHelper.WriteLine("{0} not found. Loading new instance.", typeName); - return new T(); + return new T() { FilePath = path }; } public static T Load(Stream stream, SerializationType type)