mirror of
https://github.com/goatcorp/Dalamud.git
synced 2025-12-12 18:27:23 +01:00
fix: specify a fallback value for chat channel settings entry
This commit is contained in:
parent
ec0f52b7c3
commit
ec4b5935d8
2 changed files with 13 additions and 2 deletions
|
|
@ -27,7 +27,8 @@ public class SettingsTabGeneral : SettingsTab
|
|||
return Loc.Localize("DalamudSettingsChannelNone", "Do not pick \"None\".");
|
||||
|
||||
return null;
|
||||
}),
|
||||
},
|
||||
fallbackValue: XivChatType.Debug),
|
||||
|
||||
new GapSettingsEntry(5),
|
||||
|
||||
|
|
|
|||
|
|
@ -20,8 +20,10 @@ internal sealed class SettingsEntry<T> : SettingsEntry
|
|||
private readonly Action<T?>? change;
|
||||
|
||||
private object? valueBacking;
|
||||
private object? fallbackValue;
|
||||
|
||||
public SettingsEntry(string name, string description, LoadSettingDelegate load, SaveSettingDelegate save, Action<T?>? change = null, Func<T?, string?>? warning = null, Func<T?, string?>? validity = null, Func<bool>? visibility = null)
|
||||
public SettingsEntry(string name, string description, LoadSettingDelegate load, SaveSettingDelegate save, Action<T?>? change = null, Func<T?, string?>? warning = null, Func<T?, string?>? validity = null, Func<bool>? visibility = null,
|
||||
object? fallbackValue = null)
|
||||
{
|
||||
this.load = load;
|
||||
this.save = save;
|
||||
|
|
@ -31,6 +33,8 @@ internal sealed class SettingsEntry<T> : SettingsEntry
|
|||
this.CheckWarning = warning;
|
||||
this.CheckValidity = validity;
|
||||
this.CheckVisibility = visibility;
|
||||
|
||||
this.fallbackValue = fallbackValue;
|
||||
}
|
||||
|
||||
public delegate T? LoadSettingDelegate(DalamudConfiguration config);
|
||||
|
|
@ -97,6 +101,12 @@ internal sealed class SettingsEntry<T> : SettingsEntry
|
|||
var descriptions =
|
||||
values.Cast<Enum>().ToDictionary(x => x, x => x.GetAttribute<SettingsAnnotationAttribute>() ?? new SettingsAnnotationAttribute(x.ToString(), string.Empty));
|
||||
|
||||
if (!descriptions.ContainsKey(idx))
|
||||
{
|
||||
idx = (Enum)this.fallbackValue ?? throw new Exception("No fallback value for enum");
|
||||
this.valueBacking = idx;
|
||||
}
|
||||
|
||||
if (ImGui.BeginCombo($"###{this.Id.ToString()}", descriptions[idx].FriendlyName))
|
||||
{
|
||||
foreach (Enum value in values)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue