mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-08-02 03:28:28 -04:00
cava: more optimizations for visualizer
related #2863
(cherry picked from commit c3fa7b2e1d)
This commit is contained in:
@@ -50,10 +50,15 @@ Item {
|
||||
return;
|
||||
const n = i => {
|
||||
const x = v[i];
|
||||
return x <= 0 ? 0 : x >= 100 ? 1 : Math.sqrt(x * 0.01);
|
||||
const level = x <= 0 ? 0 : x >= 100 ? 1 : Math.sqrt(x * 0.01);
|
||||
return Math.round(level * 32) / 32;
|
||||
};
|
||||
bars.bandsA = Qt.vector4d(n(0), n(1), n(2), n(3));
|
||||
bars.bandsB = Qt.vector2d(n(4), n(5));
|
||||
const a = Qt.vector4d(n(0), n(1), n(2), n(3));
|
||||
const b = Qt.vector2d(n(4), n(5));
|
||||
if (a == bars.bandsA && b == bars.bandsB)
|
||||
return;
|
||||
bars.bandsA = a;
|
||||
bars.bandsB = b;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -342,6 +342,7 @@ BasePill {
|
||||
|
||||
StyledText {
|
||||
id: mediaText
|
||||
readonly property bool onScreen: Window.window?.visible ?? false
|
||||
property bool needsScrolling: implicitWidth > textContainer.width && SettingsData.scrollTitleEnabled
|
||||
property real scrollOffset: 0
|
||||
property real textShift: 0
|
||||
@@ -351,20 +352,20 @@ BasePill {
|
||||
font.pixelSize: Theme.barTextSize(root.barThickness, root.barConfig?.fontScale, root.barConfig?.maximizeWidgetText)
|
||||
color: Theme.widgetTextColor
|
||||
wrapMode: Text.NoWrap
|
||||
x: (needsScrolling ? -scrollOffset : 0) + textShift
|
||||
x: Math.round((needsScrolling ? -scrollOffset : 0) + textShift)
|
||||
opacity: 1
|
||||
|
||||
onTextChanged: {
|
||||
scrollOffset = 0;
|
||||
textShift = 0;
|
||||
scrollAnimation.restart();
|
||||
textChangeAnimation.restart();
|
||||
}
|
||||
|
||||
SequentialAnimation {
|
||||
id: scrollAnimation
|
||||
running: mediaText.needsScrolling && textContainer.visible
|
||||
running: mediaText.needsScrolling && textContainer.visible && mediaText.onScreen && root._isPlaying
|
||||
loops: Animation.Infinite
|
||||
onStopped: mediaText.scrollOffset = 0
|
||||
|
||||
PauseAnimation {
|
||||
duration: 2000
|
||||
|
||||
Reference in New Issue
Block a user