50 lines
1.5 KiB
C#
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}";
|
|
}
|
|
} |