Added Disable Checkbox for the Settings Page (#1664)

* Added Disable Checkbox

* generated SettingsPage.g.cs
This commit is contained in:
John Soellner 2025-02-02 04:55:27 +01:00 committed by GitHub
parent aa9bcecbe5
commit ef4bc50cac
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 43 additions and 17 deletions

View File

@ -155,6 +155,7 @@
"parent": "Parent",
"path": "Path",
"path_id": "Path ID",
"premium_feature_notice": "Premium feature",
"privacy": "Privacy",
"remove": "Remove",
"replace": "Replace",

View File

@ -87,10 +87,10 @@ internal static class SettingsPageGenerator
if (property.IsBoolean)
{
writer.WriteLineNoTabs();
writer.WriteLine($"private static void WriteCheckBoxFor{property.Name}(TextWriter writer, string label)");
writer.WriteLine($"private static void WriteCheckBoxFor{property.Name}(TextWriter writer, string label, bool disabled = false)");
using (new CurlyBrackets(writer))
{
writer.WriteLine($"WriteCheckBox(writer, label, Configuration.{property.DeclaringType?.Name}.{property.Name}, {property.NameOfString});");
writer.WriteLine($"WriteCheckBox(writer, label, Configuration.{property.DeclaringType?.Name}.{property.Name}, {property.NameOfString}, disabled);");
}
}
else if (property.IsEnum)

View File

@ -14,6 +14,11 @@ internal static class HtmlExtensions
return @checked ? element.WithChecked() : element;
}
public static Input MaybeWithDisabled(this Input element, bool disabled)
{
return disabled ? element.WithDisabled() : element;
}
public static Option MaybeSelected(this Option element, bool selected)
{
return selected ? element.WithSelected() : element;

View File

@ -52,7 +52,10 @@ public sealed partial class SettingsPage : DefaultPage
}
else
{
//Todo: add disabled checkbox
using (new Div(writer).WithClass("col").End())
{
WriteCheckBoxForEnableStaticMeshSeparation(writer, Localization.EnableStaticMeshSeparation, !GameFileLoader.Premium);
}
}
}
@ -101,7 +104,10 @@ public sealed partial class SettingsPage : DefaultPage
}
else
{
//Todo: add disabled checkbox
using (new Div(writer).WithClass("col").End())
{
WriteCheckBoxForEnableAssetDeduplication(writer, Localization.EnableAssetDeduplication, !GameFileLoader.Premium);
}
}
}
@ -219,12 +225,23 @@ public sealed partial class SettingsPage : DefaultPage
.Close();
}
private static void WriteCheckBox(TextWriter writer, string label, bool @checked, string id)
private static void WriteCheckBox(TextWriter writer, string label, bool @checked, string id, bool disabled = false)
{
using (new Div(writer).WithClass("form-check").End())
{
new Input(writer).WithClass("form-check-input").WithType("checkbox").WithValue().WithId(id).WithName(id).MaybeWithChecked(@checked).Close();
new Label(writer).WithClass("form-check-label").WithFor(id).Close(label);
new Input(writer)
.WithClass("form-check-input")
.WithType("checkbox")
.WithValue()
.WithId(id)
.WithName(id)
.MaybeWithChecked(disabled ? false : @checked)
.MaybeWithDisabled(disabled)
.Close();
new Label(writer)
.WithClass("form-check-label" + (disabled ? " text-muted" : ""))
.WithFor(id)
.Close(label + (disabled ? $" ({Localization.PremiumFeatureNotice})" : ""));
}
}

View File

@ -55,6 +55,9 @@ partial class SettingsPage
case nameof(ExportSettings.TextExportMode):
Configuration.ExportSettings.TextExportMode = TryParseEnum<TextExportMode>(value);
break;
case nameof(ExportSettings.LanguageCode):
Configuration.ExportSettings.LanguageCode = value;
break;
}
}
@ -72,9 +75,9 @@ partial class SettingsPage
WriteDropDown(writer, ScriptContentLevelDropDownSetting.Instance, Configuration.ImportSettings.ScriptContentLevel, nameof(ImportSettings.ScriptContentLevel));
}
private static void WriteCheckBoxForIgnoreStreamingAssets(TextWriter writer, string label)
private static void WriteCheckBoxForIgnoreStreamingAssets(TextWriter writer, string label, bool disabled = false)
{
WriteCheckBox(writer, label, Configuration.ImportSettings.IgnoreStreamingAssets, nameof(ImportSettings.IgnoreStreamingAssets));
WriteCheckBox(writer, label, Configuration.ImportSettings.IgnoreStreamingAssets, nameof(ImportSettings.IgnoreStreamingAssets), disabled);
}
private static void WriteDropDownForStreamingAssetsMode(TextWriter writer)
@ -82,19 +85,19 @@ partial class SettingsPage
WriteDropDown(writer, StreamingAssetsModeDropDownSetting.Instance, Configuration.ImportSettings.StreamingAssetsMode, nameof(ImportSettings.StreamingAssetsMode));
}
private static void WriteCheckBoxForEnablePrefabOutlining(TextWriter writer, string label)
private static void WriteCheckBoxForEnablePrefabOutlining(TextWriter writer, string label, bool disabled = false)
{
WriteCheckBox(writer, label, Configuration.ProcessingSettings.EnablePrefabOutlining, nameof(ProcessingSettings.EnablePrefabOutlining));
WriteCheckBox(writer, label, Configuration.ProcessingSettings.EnablePrefabOutlining, nameof(ProcessingSettings.EnablePrefabOutlining), disabled);
}
private static void WriteCheckBoxForEnableStaticMeshSeparation(TextWriter writer, string label)
private static void WriteCheckBoxForEnableStaticMeshSeparation(TextWriter writer, string label, bool disabled = false)
{
WriteCheckBox(writer, label, Configuration.ProcessingSettings.EnableStaticMeshSeparation, nameof(ProcessingSettings.EnableStaticMeshSeparation));
WriteCheckBox(writer, label, Configuration.ProcessingSettings.EnableStaticMeshSeparation, nameof(ProcessingSettings.EnableStaticMeshSeparation), disabled);
}
private static void WriteCheckBoxForEnableAssetDeduplication(TextWriter writer, string label)
private static void WriteCheckBoxForEnableAssetDeduplication(TextWriter writer, string label, bool disabled = false)
{
WriteCheckBox(writer, label, Configuration.ProcessingSettings.EnableAssetDeduplication, nameof(ProcessingSettings.EnableAssetDeduplication));
WriteCheckBox(writer, label, Configuration.ProcessingSettings.EnableAssetDeduplication, nameof(ProcessingSettings.EnableAssetDeduplication), disabled);
}
private static void WriteDropDownForBundledAssetsExportMode(TextWriter writer)
@ -142,8 +145,8 @@ partial class SettingsPage
WriteDropDown(writer, TextExportModeDropDownSetting.Instance, Configuration.ExportSettings.TextExportMode, nameof(ExportSettings.TextExportMode));
}
private static void WriteCheckBoxForSaveSettingsToDisk(TextWriter writer, string label)
private static void WriteCheckBoxForSaveSettingsToDisk(TextWriter writer, string label, bool disabled = false)
{
WriteCheckBox(writer, label, Configuration.ExportSettings.SaveSettingsToDisk, nameof(ExportSettings.SaveSettingsToDisk));
WriteCheckBox(writer, label, Configuration.ExportSettings.SaveSettingsToDisk, nameof(ExportSettings.SaveSettingsToDisk), disabled);
}
}