From daa4dd7b0fddaf8edd6420dac1994ff7433bffcd Mon Sep 17 00:00:00 2001 From: end-4 <97237370+end-4@users.noreply.github.com> Date: Fri, 7 Nov 2025 20:33:54 +0100 Subject: [PATCH] overlay: fps limiter: fix weird container and button size --- .../ii/modules/common/Persistent.qml | 4 +- .../common/widgets/IconToolbarButton.qml | 1 + .../modules/overlay/fpsLimiter/FpsLimiter.qml | 4 +- .../overlay/fpsLimiter/FpsLimiterContent.qml | 71 +++++++------------ 4 files changed, 31 insertions(+), 49 deletions(-) diff --git a/dots/.config/quickshell/ii/modules/common/Persistent.qml b/dots/.config/quickshell/ii/modules/common/Persistent.qml index c4c0b2f1a..3d75d11ef 100644 --- a/dots/.config/quickshell/ii/modules/common/Persistent.qml +++ b/dots/.config/quickshell/ii/modules/common/Persistent.qml @@ -109,8 +109,8 @@ Singleton { property JsonObject fpsLimiter: JsonObject { property bool pinned: false property bool clickthrough: false - property real x: 100 - property real y: 100 + property real x: 1600 + property real y: 630 } } diff --git a/dots/.config/quickshell/ii/modules/common/widgets/IconToolbarButton.qml b/dots/.config/quickshell/ii/modules/common/widgets/IconToolbarButton.qml index df87dcb0e..6e2fd4166 100644 --- a/dots/.config/quickshell/ii/modules/common/widgets/IconToolbarButton.qml +++ b/dots/.config/quickshell/ii/modules/common/widgets/IconToolbarButton.qml @@ -18,5 +18,6 @@ ToolbarButton { iconSize: 22 text: iconBtn.text color: iconBtn.colText + animateChange: true } } diff --git a/dots/.config/quickshell/ii/modules/overlay/fpsLimiter/FpsLimiter.qml b/dots/.config/quickshell/ii/modules/overlay/fpsLimiter/FpsLimiter.qml index 24cac5387..7628d58be 100644 --- a/dots/.config/quickshell/ii/modules/overlay/fpsLimiter/FpsLimiter.qml +++ b/dots/.config/quickshell/ii/modules/overlay/fpsLimiter/FpsLimiter.qml @@ -6,5 +6,7 @@ import qs.modules.overlay StyledOverlayWidget { id: root title: "MangoHud FPS" - contentItem: FpsLimiterContent {} + contentItem: FpsLimiterContent { + radius: root.contentRadius + } } diff --git a/dots/.config/quickshell/ii/modules/overlay/fpsLimiter/FpsLimiterContent.qml b/dots/.config/quickshell/ii/modules/overlay/fpsLimiter/FpsLimiterContent.qml index 74173db18..5857c5a21 100644 --- a/dots/.config/quickshell/ii/modules/overlay/fpsLimiter/FpsLimiterContent.qml +++ b/dots/.config/quickshell/ii/modules/overlay/fpsLimiter/FpsLimiterContent.qml @@ -12,8 +12,9 @@ Rectangle { color: Appearance.m3colors.m3surfaceContainer property real padding: 16 property string iconState: "normal" - implicitWidth: contentColumn.implicitWidth + padding * 2 - implicitHeight: contentColumn.implicitHeight + padding * 2 + anchors.fill: parent + implicitWidth: content.implicitWidth + (padding * 2) + implicitHeight: content.implicitHeight + (padding * 2) Timer { id: iconResetTimer @@ -54,57 +55,35 @@ Rectangle { fpsField.text = ""; } - ColumnLayout { - id: contentColumn + Process { + id: fpsSetter + } + + RowLayout { + id: content anchors.centerIn: parent - spacing: 15 + spacing: 4 - RowLayout { + ToolbarTextField { + id: fpsField Layout.fillWidth: true - spacing: 10 + Layout.preferredWidth: 200 + placeholderText: root.iconState === "error" ? Translation.tr("Insert a valid number") : Translation.tr("Set FPS limit (e.g. 80)") + inputMethodHints: Qt.ImhDigitsOnly + focus: true - ToolbarTextField { - id: fpsField - Layout.fillWidth: true - Layout.preferredWidth: 180 - placeholderText: root.iconState === "error" ? Translation.tr("Insert a valid number") : Translation.tr("Set FPS limit (e.g. 80)") - inputMethodHints: Qt.ImhDigitsOnly - focus: true - - onAccepted: { - root.applyLimit(); - } - } - - RippleButton { - id: applyButton - implicitWidth: 25 - implicitHeight: 25 - buttonRadius: Appearance.rounding.full - onClicked: { - root.applyLimit(); - } - contentItem: MaterialSymbol { - anchors.centerIn: parent - horizontalAlignment: Text.AlignHCenter - font.pixelSize: Appearance.font.pixelSize.title - text: root.iconState === "error" ? "close" : (root.iconState === "success" ? "check" : "save") - rotation: root.iconState !== "normal" ? 360 : 0 - color: root.iconState === "error" ? "#ef5350" : (root.iconState === "success" ? Appearance.m3colors.m3primary : Appearance.m3colors.m3onSurface) - - Behavior on rotation { - animation: Appearance.animation.elementMoveFast.numberAnimation.createObject(this) - } - - Behavior on color { - animation: Appearance.animation.elementMoveFast.colorAnimation.createObject(this) - } - } + onAccepted: { + root.applyLimit(); } } - Process { - id: fpsSetter + IconToolbarButton { + id: applyButton + text: root.iconState === "error" ? "close" : (root.iconState === "success" ? "check" : "save") + enabled: root.iconState === "normal" && fpsField.text.length > 0 + onClicked: { + root.applyLimit(); + } } } }