[vlc-commits] [Git][videolan/vlc][master] 2 commits: qml: do not show mini player when ui is scaled

Jean-Baptiste Kempf (@jbk) gitlab at videolan.org
Sat Mar 23 11:52:17 UTC 2024



Jean-Baptiste Kempf pushed to branch master at VideoLAN / VLC


Commits:
9f933942 by Fatih Uzunoglu at 2024-03-23T11:23:19+00:00
qml: do not show mini player when ui is scaled

- - - - -
4ef63e2a by Fatih Uzunoglu at 2024-03-23T11:23:19+00:00
qml: simplify logic in MiniPlayer.qml

- - - - -


1 changed file:

- modules/gui/qt/player/qml/MiniPlayer.qml


Changes:

=====================================
modules/gui/qt/player/qml/MiniPlayer.qml
=====================================
@@ -25,17 +25,9 @@ import "qrc:///style/"
 ControlBar {
     id: root
 
-    // Binding evaluation order:
-    // state -> implicitHeight OR visible -> anchors.bottomMargin
-    // Care must be taken to not cause binding loops.
-    visible: {
-        if (state === "inViewport")
-            return true
-        else if ((anchors.bottomMargin + implicitHeight) > Number.EPSILON)
-            return true
-        else
-            return false
-    }
+    visible: animation.running || (state === "inViewport")
+
+    anchors.bottomMargin: (state === "outViewport") ? -_delayedImplicitHeight : 0
 
     state: (Player.playingState === Player.PLAYING_STATE_STOPPED) ? "outViewport"
                                                                   : "inViewport"
@@ -51,27 +43,34 @@ ControlBar {
 
     identifier: PlayerControlbarModel.Miniplayer
 
-    Component.onCompleted: {
-        // Enable the behavior only when everything is resolved:
-        Qt.callLater(() => { behavior.enabled = true })
-    }
+    property real _delayedImplicitHeight
 
-    BindingCompat on anchors.bottomMargin {
-        id: binding
+    onImplicitHeightChanged: {
+        if (!animation.running) {
+            // Animation should not be based on the implicit height change
+            // but rather the visibility state:
+            behavior.enabled = false
+            Qt.callLater(() => { behavior.enabled = true })
+        }
+    }
 
+    BindingCompat on _delayedImplicitHeight {
         // eliminate intermediate adjustments until implicit height is calculated fully
         // we can not delay on component load because we do not want twitching
         // NOTE: The delay here can be removed, as long as a direct height is set
         //       for the whole control instead of implicit height.
         delayed: behavior.enabled
-
-        value: (root.state === "outViewport") ? -root.implicitHeight : 0
+        value: root.implicitHeight
     }
 
     Behavior on anchors.bottomMargin {
         id: behavior
         enabled: false
-        NumberAnimation { easing.type: Easing.InOutSine; duration: VLCStyle.duration_long; }
+        NumberAnimation {
+            id: animation
+            easing.type: Easing.InOutSine
+            duration: VLCStyle.duration_long
+        }
     }
 }
 



View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/3e45f73735fce77b4ac2e9804151a1669461cabe...4ef63e2aca61cb20db56ee8a200751e08335f9dc

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/3e45f73735fce77b4ac2e9804151a1669461cabe...4ef63e2aca61cb20db56ee8a200751e08335f9dc
You're receiving this email because of your account on code.videolan.org.


VideoLAN code repository instance


More information about the vlc-commits mailing list