mirror of
https://github.com/kwsch/PKHeX
synced 2024-11-26 22:10:21 +00:00
Allow SettingsEditor to blacklist property names
This commit is contained in:
parent
dd17ba0d3a
commit
55ccb83d5f
1 changed files with 10 additions and 6 deletions
|
@ -1,4 +1,5 @@
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
@ -9,19 +10,22 @@ namespace PKHeX.WinForms
|
||||||
{
|
{
|
||||||
public partial class SettingsEditor : Form
|
public partial class SettingsEditor : Form
|
||||||
{
|
{
|
||||||
public SettingsEditor()
|
public SettingsEditor(object obj, params string[] blacklist)
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
LoadSettings();
|
SettingsObject = obj;
|
||||||
|
LoadSettings(blacklist);
|
||||||
|
|
||||||
WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage);
|
WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage);
|
||||||
this.CenterToForm(Parent);
|
this.CenterToForm(FindForm());
|
||||||
}
|
}
|
||||||
private void SettingsEditor_FormClosing(object sender, FormClosingEventArgs e) => SaveSettings();
|
private void SettingsEditor_FormClosing(object sender, FormClosingEventArgs e) => SaveSettings();
|
||||||
|
|
||||||
private void LoadSettings()
|
private readonly object SettingsObject;
|
||||||
|
private void LoadSettings(IEnumerable<string> blacklist)
|
||||||
{
|
{
|
||||||
var props = ReflectUtil.GetPropertiesCanWritePublicDeclared(typeof(Settings));
|
var type = SettingsObject.GetType();
|
||||||
|
var props = ReflectUtil.GetPropertiesCanWritePublicDeclared(type).Except(blacklist);
|
||||||
foreach (var p in props)
|
foreach (var p in props)
|
||||||
{
|
{
|
||||||
var state = ReflectUtil.GetValue(Settings.Default, p);
|
var state = ReflectUtil.GetValue(Settings.Default, p);
|
||||||
|
@ -38,7 +42,7 @@ namespace PKHeX.WinForms
|
||||||
private void SaveSettings()
|
private void SaveSettings()
|
||||||
{
|
{
|
||||||
foreach (var s in FLP_Settings.Controls.OfType<Control>())
|
foreach (var s in FLP_Settings.Controls.OfType<Control>())
|
||||||
ReflectUtil.SetValue(Settings.Default, s.Name, GetValue(s));
|
ReflectUtil.SetValue(SettingsObject, s.Name, GetValue(s));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static CheckBox GetCheckBox(string name, bool state) => new CheckBox
|
private static CheckBox GetCheckBox(string name, bool state) => new CheckBox
|
||||||
|
|
Loading…
Reference in a new issue