Files
HellionChat/ChatTwo/Ui/SettingsTabs/Database.cs
T

68 lines
2.2 KiB
C#
Executable File

using ChatTwo.Resources;
using ChatTwo.Util;
using ImGuiNET;
namespace ChatTwo.Ui.SettingsTabs;
internal sealed class Database : ISettingsTab {
private Configuration Mutable { get; }
private Store Store { get; }
public string Name => Language.Options_Database_Tab + "###tabs-database";
internal Database(Configuration mutable, Store store) {
Store = store;
Mutable = mutable;
}
private bool _showAdvanced;
public void Draw(bool changed) {
if (changed) {
_showAdvanced = ImGui.GetIO().KeyShift;
}
ImGuiUtil.OptionCheckbox(ref Mutable.DatabaseBattleMessages, Language.Options_DatabaseBattleMessages_Name, Language.Options_DatabaseBattleMessages_Description);
ImGui.Spacing();
if (ImGuiUtil.OptionCheckbox(ref Mutable.LoadPreviousSession, Language.Options_LoadPreviousSession_Name, Language.Options_LoadPreviousSession_Description)) {
if (Mutable.LoadPreviousSession) {
Mutable.FilterIncludePreviousSessions = true;
}
}
ImGui.Spacing();
if (ImGuiUtil.OptionCheckbox(ref Mutable.FilterIncludePreviousSessions, Language.Options_FilterIncludePreviousSessions_Name, Language.Options_FilterIncludePreviousSessions_Description)) {
if (!Mutable.FilterIncludePreviousSessions) {
Mutable.LoadPreviousSession = false;
}
}
ImGuiUtil.OptionCheckbox(
ref Mutable.SharedMode,
Language.Options_SharedMode_Name,
string.Format(Language.Options_SharedMode_Description, Plugin.PluginName)
);
ImGuiUtil.WarningText(string.Format(Language.Options_SharedMode_Warning, Plugin.PluginName));
ImGui.Spacing();
if (_showAdvanced && ImGui.TreeNodeEx(Language.Options_Database_Advanced)) {
ImGui.PushTextWrapPos();
ImGuiUtil.WarningText(Language.Options_Database_Advanced_Warning);
if (ImGui.Button("Checkpoint")) {
Store.Database.Checkpoint();
}
if (ImGui.Button("Rebuild")) {
Store.Database.Rebuild();
}
ImGui.PopTextWrapPos();
ImGui.TreePop();
}
}
}