From 867890a46ffee3967b9d725f3d7533fdc9fa6632 Mon Sep 17 00:00:00 2001 From: krut_ni Date: Mon, 9 Mar 2026 18:25:30 +0100 Subject: [PATCH] generalized getters and setters for ints and bools --- .../DataModel/AssistantColorPicker.cs | 12 +++---- .../DataModel/AssistantComponentPropHelper.cs | 33 +++++++++++++++++++ .../Assistants/DataModel/AssistantHeading.cs | 7 ++-- 3 files changed, 41 insertions(+), 11 deletions(-) diff --git a/app/MindWork AI Studio/Tools/PluginSystem/Assistants/DataModel/AssistantColorPicker.cs b/app/MindWork AI Studio/Tools/PluginSystem/Assistants/DataModel/AssistantColorPicker.cs index c0030f28..6a7dd7b8 100644 --- a/app/MindWork AI Studio/Tools/PluginSystem/Assistants/DataModel/AssistantColorPicker.cs +++ b/app/MindWork AI Studio/Tools/PluginSystem/Assistants/DataModel/AssistantColorPicker.cs @@ -25,20 +25,20 @@ internal sealed class AssistantColorPicker : AssistantComponentBase public bool ShowAlpha { - get => !this.Props.TryGetValue(nameof(this.ShowAlpha), out var val) || val is true; - set => this.Props[nameof(this.ShowAlpha)] = value; + get => AssistantComponentPropHelper.ReadBool(this.Props, nameof(this.ShowAlpha), true); + set => AssistantComponentPropHelper.WriteBool(this.Props, nameof(this.ShowAlpha), value); } public bool ShowToolbar { - get => !this.Props.TryGetValue(nameof(this.ShowToolbar), out var val) || val is true; - set => this.Props[nameof(this.ShowToolbar)] = value; + get => AssistantComponentPropHelper.ReadBool(this.Props, nameof(this.ShowToolbar), true); + set => AssistantComponentPropHelper.WriteBool(this.Props, nameof(this.ShowToolbar), value); } public bool ShowModeSwitch { - get => !this.Props.TryGetValue(nameof(this.ShowModeSwitch), out var val) || val is true; - set => this.Props[nameof(this.ShowModeSwitch)] = value; + get => AssistantComponentPropHelper.ReadBool(this.Props, nameof(this.ShowModeSwitch), true); + set => AssistantComponentPropHelper.WriteBool(this.Props, nameof(this.ShowModeSwitch), value); } public string PickerVariant diff --git a/app/MindWork AI Studio/Tools/PluginSystem/Assistants/DataModel/AssistantComponentPropHelper.cs b/app/MindWork AI Studio/Tools/PluginSystem/Assistants/DataModel/AssistantComponentPropHelper.cs index 58673406..44c37ee7 100644 --- a/app/MindWork AI Studio/Tools/PluginSystem/Assistants/DataModel/AssistantComponentPropHelper.cs +++ b/app/MindWork AI Studio/Tools/PluginSystem/Assistants/DataModel/AssistantComponentPropHelper.cs @@ -16,4 +16,37 @@ internal static class AssistantComponentPropHelper { props[key] = value ?? string.Empty; } + + public static int ReadInt(Dictionary props, string key, int fallback = 0) + { + return props.TryGetValue(key, out var value) && int.TryParse(value?.ToString(), out var i) ? i : fallback; + } + + public static void WriteInt(Dictionary props, string key, int value) + { + props[key] = value; + } + + public static int? ReadNullableInt(Dictionary props, string key) + { + return props.TryGetValue(key, out var value) && int.TryParse(value?.ToString(), out var i) ? i : null; + } + + public static void WriteNullableInt(Dictionary props, string key, int? value) + { + if (value.HasValue) + props[key] = value.Value; + else + props.Remove(key); + } + + public static bool ReadBool(Dictionary props, string key, bool fallback = false) + { + return props.TryGetValue(key, out var value) && bool.TryParse(value.ToString(), out var b) ? b : fallback; + } + + public static void WriteBool(Dictionary props, string key, bool value) + { + props[key] = value; + } } diff --git a/app/MindWork AI Studio/Tools/PluginSystem/Assistants/DataModel/AssistantHeading.cs b/app/MindWork AI Studio/Tools/PluginSystem/Assistants/DataModel/AssistantHeading.cs index c01166dc..ce2bc2de 100644 --- a/app/MindWork AI Studio/Tools/PluginSystem/Assistants/DataModel/AssistantHeading.cs +++ b/app/MindWork AI Studio/Tools/PluginSystem/Assistants/DataModel/AssistantHeading.cs @@ -14,11 +14,8 @@ internal sealed class AssistantHeading : AssistantComponentBase public int Level { - get => this.Props.TryGetValue(nameof(this.Level), out var v) - && int.TryParse(v.ToString(), out var i) - ? i - : 2; - set => this.Props[nameof(this.Level)] = value; + get => AssistantComponentPropHelper.ReadInt(this.Props, nameof(this.Level), 2); + set => AssistantComponentPropHelper.WriteInt(this.Props, nameof(this.Level), value); } public string Class