Store settings in settings.xml instead of registry.

This commit is contained in:
Frank Skare
2021-05-24 03:09:23 +02:00
parent bba71c3782
commit 9d27465492
13 changed files with 137 additions and 107 deletions

56
src/Misc/Settings.cs Normal file
View File

@@ -0,0 +1,56 @@

using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Text;
using System.Xml.Serialization;
using System.Xml;
using static mpvnet.Global;
namespace mpvnet
{
[Serializable()]
public class AppSettings
{
public int LastUpdateCheck;
public int Volume = 70;
public List<string> RecentFiles = new List<string>();
public Point WindowLocation;
public Point WindowPosition;
public Size WindowSize;
public string ConfigEditorSearch = "";
public string Mute = "no";
public string UpdateCheckVersion = "";
}
class SettingsManager
{
public static string SettingsFile {
get => Core.ConfigFolder + "settings.xml";
}
public static AppSettings Load()
{
if (!File.Exists(SettingsFile))
return new AppSettings();
XmlSerializer serializer = new XmlSerializer(typeof(AppSettings));
using (FileStream fs = new FileStream(SettingsFile, FileMode.Open))
return (AppSettings)serializer.Deserialize(fs);
}
public static void Save(object obj)
{
using (XmlTextWriter writer = new XmlTextWriter(SettingsFile, Encoding.UTF8))
{
writer.Formatting = Formatting.Indented;
writer.Indentation = 4;
XmlSerializer serializer = new XmlSerializer(obj.GetType());
serializer.Serialize(writer, obj);
}
}
}
}