performance notifcation addition, with some regular bugfixes regarding the flexing of the notifications
This commit is contained in:
@@ -1990,7 +1990,7 @@ public class SettingsUi : WindowMediatorSubscriberBase
|
||||
("LightlessBlue", "Secondary Blue", "Secondary title colors, visable pairs"),
|
||||
("LightlessGreen", "Success Green", "Join buttons and success messages"),
|
||||
("LightlessYellow", "Warning Yellow", "Warning colors"),
|
||||
("LightlessYellow2", "Warning Yellow (Alt)", "Warning colors"),
|
||||
("LightlessOrange", "Performance Orange", "Performance notifications and warnings"),
|
||||
("PairBlue", "Syncshell Blue", "Syncshell headers, toggle highlights, and moderator actions"),
|
||||
("DimRed", "Error Red", "Error and offline colors")
|
||||
};
|
||||
@@ -3640,6 +3640,36 @@ public class SettingsUi : WindowMediatorSubscriberBase
|
||||
}
|
||||
UiSharedService.AttachToolTip("Test download progress notification");
|
||||
|
||||
ImGui.TableNextRow();
|
||||
ImGui.TableSetColumnIndex(0);
|
||||
ImGui.AlignTextToFramePadding();
|
||||
ImGui.TextUnformatted("Performance Notifications");
|
||||
ImGui.TableSetColumnIndex(1);
|
||||
ImGui.SetNextItemWidth(-1);
|
||||
_uiShared.DrawCombo("###enhanced_performance", lightlessLocations, GetNotificationLocationLabel,
|
||||
(location) =>
|
||||
{
|
||||
_configService.Current.LightlessPerformanceNotification = location;
|
||||
_configService.Save();
|
||||
}, _configService.Current.LightlessPerformanceNotification);
|
||||
ImGui.TableSetColumnIndex(2);
|
||||
availableWidth = ImGui.GetContentRegionAvail().X;
|
||||
using (ImRaii.PushFont(UiBuilder.IconFont))
|
||||
{
|
||||
if (ImGui.Button($"{FontAwesomeIcon.Play.ToIconString()}##test_performance", new Vector2(availableWidth, 0)))
|
||||
{
|
||||
var testUserData = new UserData("TEST123", "TestUser", false, false, false, null, null);
|
||||
Mediator.Publish(new PerformanceNotificationMessage(
|
||||
"Test Player (TestUser) exceeds performance threshold(s)",
|
||||
"Player Test Player (TestUser) exceeds your configured VRAM warning threshold (500 MB/300 MB).",
|
||||
testUserData,
|
||||
false,
|
||||
"Test Player"
|
||||
));
|
||||
}
|
||||
}
|
||||
UiSharedService.AttachToolTip("Test performance notification");
|
||||
|
||||
ImGui.EndTable();
|
||||
}
|
||||
|
||||
@@ -3974,6 +4004,20 @@ public class SettingsUi : WindowMediatorSubscriberBase
|
||||
if (ImGui.IsItemHovered())
|
||||
ImGui.SetTooltip("Right click to reset to default (300).");
|
||||
|
||||
int performanceDuration = _configService.Current.PerformanceNotificationDurationSeconds;
|
||||
if (ImGui.SliderInt("Performance Duration (seconds)", ref performanceDuration, 5, 60))
|
||||
{
|
||||
_configService.Current.PerformanceNotificationDurationSeconds = Math.Clamp(performanceDuration, 5, 60);
|
||||
_configService.Save();
|
||||
}
|
||||
if (ImGui.IsItemClicked(ImGuiMouseButton.Right))
|
||||
{
|
||||
_configService.Current.PerformanceNotificationDurationSeconds = 20;
|
||||
_configService.Save();
|
||||
}
|
||||
if (ImGui.IsItemHovered())
|
||||
ImGui.SetTooltip("Right click to reset to default (20).");
|
||||
|
||||
_uiShared.ColoredSeparator(UIColors.Get("LightlessPurple"), 1.5f);
|
||||
ImGui.TreePop();
|
||||
}
|
||||
@@ -4041,6 +4085,22 @@ public class SettingsUi : WindowMediatorSubscriberBase
|
||||
ImGui.TreePop();
|
||||
}
|
||||
|
||||
if (_uiShared.MediumTreeNode("Performance Notifications", UIColors.Get("LightlessOrange")))
|
||||
{
|
||||
var showPerformanceActions = _configService.Current.ShowPerformanceNotificationActions;
|
||||
if (ImGui.Checkbox("Show action buttons on performance warnings", ref showPerformanceActions))
|
||||
{
|
||||
_configService.Current.ShowPerformanceNotificationActions = showPerformanceActions;
|
||||
_configService.Save();
|
||||
}
|
||||
|
||||
_uiShared.DrawHelpText(
|
||||
"When a player exceeds performance thresholds or is auto-paused, show Pause/Unpause buttons in the notification.");
|
||||
|
||||
_uiShared.ColoredSeparator(UIColors.Get("LightlessOrange"), 1.5f);
|
||||
ImGui.TreePop();
|
||||
}
|
||||
|
||||
if (_uiShared.MediumTreeNode("System Notifications", UIColors.Get("LightlessYellow")))
|
||||
{
|
||||
var disableOptionalPluginWarnings = _configService.Current.DisableOptionalPluginWarnings;
|
||||
@@ -4074,8 +4134,7 @@ public class SettingsUi : WindowMediatorSubscriberBase
|
||||
{
|
||||
return new[]
|
||||
{
|
||||
NotificationLocation.LightlessUi, NotificationLocation.ChatAndLightlessUi,
|
||||
NotificationLocation.TextOverlay, NotificationLocation.Nowhere
|
||||
NotificationLocation.LightlessUi, NotificationLocation.TextOverlay, NotificationLocation.Nowhere
|
||||
};
|
||||
}
|
||||
|
||||
@@ -4138,7 +4197,7 @@ public class SettingsUi : WindowMediatorSubscriberBase
|
||||
("Warning", 1, _configService.Current.CustomWarningSoundId, _configService.Current.DisableWarningSound, 16u),
|
||||
("Error", 2, _configService.Current.CustomErrorSoundId, _configService.Current.DisableErrorSound, 16u),
|
||||
("Pair Request", 3, _configService.Current.PairRequestSoundId, _configService.Current.DisablePairRequestSound, 5u),
|
||||
("Download", 4, _configService.Current.DownloadSoundId, _configService.Current.DisableDownloadSound, 15u)
|
||||
("Performance", 4, _configService.Current.PerformanceSoundId, _configService.Current.DisablePerformanceSound, 16u)
|
||||
};
|
||||
|
||||
foreach (var (typeName, typeIndex, currentSoundId, isDisabled, defaultSoundId) in soundTypes)
|
||||
@@ -4168,7 +4227,7 @@ public class SettingsUi : WindowMediatorSubscriberBase
|
||||
case 1: _configService.Current.CustomWarningSoundId = newSoundId; break;
|
||||
case 2: _configService.Current.CustomErrorSoundId = newSoundId; break;
|
||||
case 3: _configService.Current.PairRequestSoundId = newSoundId; break;
|
||||
case 4: _configService.Current.DownloadSoundId = newSoundId; break;
|
||||
case 4: _configService.Current.PerformanceSoundId = newSoundId; break;
|
||||
}
|
||||
|
||||
_configService.Save();
|
||||
@@ -4222,7 +4281,7 @@ public class SettingsUi : WindowMediatorSubscriberBase
|
||||
case 1: _configService.Current.DisableWarningSound = newDisabled; break;
|
||||
case 2: _configService.Current.DisableErrorSound = newDisabled; break;
|
||||
case 3: _configService.Current.DisablePairRequestSound = newDisabled; break;
|
||||
case 4: _configService.Current.DisableDownloadSound = newDisabled; break;
|
||||
case 4: _configService.Current.DisablePerformanceSound = newDisabled; break;
|
||||
}
|
||||
_configService.Save();
|
||||
}
|
||||
@@ -4248,7 +4307,7 @@ public class SettingsUi : WindowMediatorSubscriberBase
|
||||
case 1: _configService.Current.CustomWarningSoundId = defaultSoundId; break;
|
||||
case 2: _configService.Current.CustomErrorSoundId = defaultSoundId; break;
|
||||
case 3: _configService.Current.PairRequestSoundId = defaultSoundId; break;
|
||||
case 4: _configService.Current.DownloadSoundId = defaultSoundId; break;
|
||||
case 4: _configService.Current.PerformanceSoundId = defaultSoundId; break;
|
||||
}
|
||||
_configService.Save();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user