long candy support

This commit is contained in:
meelstorm
2025-08-28 16:30:52 +02:00
parent bf13a5ea2d
commit d52c844b5d
24 changed files with 1714 additions and 16 deletions

View File

@@ -40,9 +40,8 @@ public class PluginLoader:IVisionBuilderModule
if (_settings.Plugins.All(p => p.Name != pluginName))
{
Log.Warning("Discovered new plugin:{PluginName}. Adding to settings and skipping.", pluginName);
_settings.Plugins.Add(new PluginSettings.PluginFlag { Name = pluginName, Enabled = false });
continue;
Log.Warning("Discovered new plugin:{PluginName}. Adding to settings.", pluginName);
_settings.AddPlugin(new PluginSettings.PluginFlag { Name = pluginName, Enabled = false });
}
if (_settings.Plugins.Where(p => p.Name == pluginName).All(x=>!x.Enabled))
@@ -82,7 +81,7 @@ public class PluginLoader:IVisionBuilderModule
if (type.IsAssignableTo(typeof(IPlugin)) && !type.IsAbstract)
{
Plugins.Add((IPlugin)Activator.CreateInstance(type));
Log.Information("Loaded plugin: {PluginName}", type.Name);
Log.Information("Loaded plugin: {PluginName}", type.FullName);
}

View File

@@ -7,6 +7,8 @@ namespace VisionBuilder.UI.Common.Plugins;
public class PluginSettings:ISettings
{
private List<PluginFlag> _plugins = new List<PluginFlag>();
public class PluginFlag
{
public bool Enabled { get; set; }
@@ -18,7 +20,27 @@ public class PluginSettings:ISettings
}
}
public List<PluginFlag> Plugins { get; set; } = new List<PluginFlag>();
public void AddPlugin(PluginFlag plugin)
{
if (_plugins.All(p => p.Name != plugin.Name))
{
_plugins.Add(plugin);
}
}
public List<PluginFlag> Plugins
{
get => _plugins;
set
{
// add unique only
foreach (var plugin in value)
{
AddPlugin(plugin);
}
}
}
public void RegisterSettings(InspectronSettings settings)
{
settings.RegisterSimple(this, () => this.Plugins,"Plugins",nameof(Plugins));

View File

@@ -31,7 +31,7 @@ public partial class StatisticsVM: ObservableObject,IEventHandler<ImageProcessed
{
RecipeName= @event.RecipeName;
ProcessingTime = (int)@event.AnalysisTime.TotalMilliseconds + "ms";
Total++;
if (!@event.HasError)
@@ -47,7 +47,7 @@ public partial class StatisticsVM: ObservableObject,IEventHandler<ImageProcessed
}
StatisticsDetails = string.Join(Environment.NewLine, _errorTypes.Select(e => $"{e.Key}: {e.Value}"));
ProcessingTime = (int)@event.AnalysisTime.TotalMilliseconds + "ms";
}
public void Handle(SessionStartedEvent @event)