From 308c2207359c8e6c0d90b81a06b98f9782012817 Mon Sep 17 00:00:00 2001 From: cake Date: Tue, 30 Dec 2025 02:08:54 +0100 Subject: [PATCH] Fixed auto prune options locked --- LightlessSync/UI/SyncshellAdminUI.cs | 50 +++++++++++++++------------- 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/LightlessSync/UI/SyncshellAdminUI.cs b/LightlessSync/UI/SyncshellAdminUI.cs index 0458c05..526b5ae 100644 --- a/LightlessSync/UI/SyncshellAdminUI.cs +++ b/LightlessSync/UI/SyncshellAdminUI.cs @@ -116,7 +116,7 @@ public class SyncshellAdminUI : WindowMediatorSubscriberBase var drawList = ImGui.GetWindowDrawList(); var purple = UIColors.Get("LightlessPurple"); - var gradLeft = purple.WithAlpha(0.0f); + var gradLeft = purple.WithAlpha(0.0f); var gradRight = purple.WithAlpha(0.85f); uint colTopLeft = ImGui.ColorConvertFloat4ToU32(gradLeft); @@ -162,7 +162,7 @@ public class SyncshellAdminUI : WindowMediatorSubscriberBase var subtitlePos = new Vector2( pMin.X + 12f * scale, - titlePos.Y + titleHeight - 2f * scale); + titlePos.Y + titleHeight - 2f * scale); ImGui.SetCursorScreenPos(subtitlePos); ImGui.PushStyleColor(ImGuiCol.Text, ImGuiColors.DalamudGrey); @@ -392,25 +392,27 @@ public class SyncshellAdminUI : WindowMediatorSubscriberBase } UiSharedService.AttachToolTip("When enabled, inactive non-pinned, non-moderator users will be pruned automatically on the server."); - ImGui.SameLine(); - ImGui.SetNextItemWidth(150); - - using (ImRaii.Disabled(!_autoPruneEnabled)) - { - _uiSharedService.DrawCombo( - "Day(s) of inactivity", - [1, 3, 7, 14, 30, 90], - days => $"{days} day(s)", - selected => - { - _autoPruneDays = selected; - SavePruneSettings(); - }, - _autoPruneDays); - } if (!_autoPruneEnabled) { + ImGui.BeginDisabled(); + } + ImGui.SameLine(); + ImGui.SetNextItemWidth(150); + _uiSharedService.DrawCombo( + "Day(s) of inactivity (gets checked hourly)", + [0, 1, 3, 7, 14, 30, 90], + (count) => count == 0 ? "2 hours(s)" : count + " day(s)", + selected => + { + _autoPruneDays = selected; + SavePruneSettings(); + }, + _autoPruneDays); + + if (!_autoPruneEnabled) + { + ImGui.EndDisabled(); UiSharedService.ColorTextWrapped( "Automatic prune is currently disabled. Enable it and choose an inactivity threshold to let the server clean up inactive users automatically.", ImGuiColors.DalamudGrey); @@ -593,7 +595,7 @@ public class SyncshellAdminUI : WindowMediatorSubscriberBase _uiSharedService.DrawCombo( "Day(s) of inactivity", [0, 1, 3, 7, 14, 30, 90], - (count) => count == 0 ? "15 minute(s)" : count + " day(s)", + (count) => count == 0 ? "2 hours(s)" : count + " day(s)", (selected) => { _pruneDays = selected; @@ -663,8 +665,8 @@ public class SyncshellAdminUI : WindowMediatorSubscriberBase var style = ImGui.GetStyle(); float fullW = ImGui.GetContentRegionAvail().X; - float colIdentity = fullW * 0.45f; - float colMeta = fullW * 0.35f; + float colIdentity = fullW * 0.45f; + float colMeta = fullW * 0.35f; float colActions = fullW - colIdentity - colMeta - style.ItemSpacing.X * 2.0f; // Header @@ -873,7 +875,7 @@ public class SyncshellAdminUI : WindowMediatorSubscriberBase var boolcolor = UiSharedService.GetBoolColor(pair.IsOnline); UiSharedService.ColorText(text, boolcolor); - + if (ImGui.IsItemClicked()) ImGui.SetClipboardText(pair.UserData.AliasOrUID); @@ -1093,6 +1095,7 @@ public class SyncshellAdminUI : WindowMediatorSubscriberBase ImGui.Dummy(new Vector2(0, 4 * ImGuiHelpers.GlobalScale)); } + private void SavePruneSettings() { if (_autoPruneDays <= 0) @@ -1100,8 +1103,7 @@ public class SyncshellAdminUI : WindowMediatorSubscriberBase _autoPruneEnabled = false; } - var enabled = _autoPruneEnabled && _autoPruneDays > 0; - var dto = new GroupPruneSettingsDto(Group: GroupFullInfo.Group, AutoPruneEnabled: enabled, AutoPruneDays: enabled ? _autoPruneDays : 0); + var dto = new GroupPruneSettingsDto(Group: GroupFullInfo.Group, AutoPruneEnabled: _autoPruneEnabled, AutoPruneDays: _autoPruneDays); try {