Files
HawkeyeVision/VisionBuilder.UI.Common/Plugins/PluginSettings.cs
2025-08-19 14:27:36 +02:00

50 lines
1.5 KiB
C#

using System.ComponentModel;
using System.Globalization;
using Inspectron.Settings;
using VisionBuilder.UI.Common.Utils;
namespace VisionBuilder.UI.Common.Plugins;
public class PluginSettings:ISettings
{
public class PluginFlag
{
public bool Enabled { get; set; }
public string Name { get; set; }
public override string ToString()
{
return $"{(Enabled ? "" : "(Disabled)")}{Name}";
}
}
public List<PluginFlag> Plugins { get; set; } = new List<PluginFlag>();
public void RegisterSettings(InspectronSettings settings)
{
settings.RegisterSimple(this, () => this.Plugins,"Plugins",nameof(Plugins));
}
}
public class PluginFlagConverter : GeneralListTypeConverter<PluginSettings.PluginFlag>
{
protected override PluginSettings.PluginFlag ConvertFromString(ITypeDescriptorContext context, CultureInfo culture, string stringValue)
{
if (string.IsNullOrEmpty(stringValue))
return null;
var parts = stringValue.Split(',');
if (parts.Length == 2)
{
return new PluginSettings.PluginFlag
{
Name = parts[0].Trim(),
Enabled = bool.Parse(parts[1].Trim())
};
}
return null;
}
protected override string ConvertToString(ITypeDescriptorContext context, CultureInfo culture, PluginSettings.PluginFlag errorShortName)
{
return $"{errorShortName.Name}, {errorShortName.Enabled}";
}
}