Steve Lhomme pushed to branch master at VideoLAN / VLC


Commits:
86db4cad by Fatih Uzunoglu at 2024-05-16T14:26:26+00:00
qt: add `empty` property to PlayerControlbarModel

- - - - -
c2bd5559 by Fatih Uzunoglu at 2024-05-16T14:26:26+00:00
qml: hide PlayerControlLayout when the model is empty

- - - - -
5a5cd550 by Fatih Uzunoglu at 2024-05-16T14:26:26+00:00
qml: consider `loaderLeftRight` in PlayerControlLayout implicit height 
calculation

- - - - -


4 changed files:

- modules/gui/qt/player/player_controlbar_model.cpp
- modules/gui/qt/player/player_controlbar_model.hpp
- modules/gui/qt/player/qml/ControlBar.qml
- modules/gui/qt/player/qml/PlayerControlLayout.qml


Changes:

=====================================
modules/gui/qt/player/player_controlbar_model.cpp
=====================================
@@ -92,6 +92,11 @@ bool PlayerControlbarModel::dirty() const
     return m_dirty;
 }
 
+bool PlayerControlbarModel::empty() const
+{
+    return m_empty;
+}
+
 std::array<QVector<int>, 3> PlayerControlbarModel::serializeModels() const
 {
     return { left()->getControls(),
@@ -134,5 +139,19 @@ void PlayerControlbarModel::contentChanged()
 {
     setDirty(true);
 
+    {
+        bool empty = true;
+        if ((m_left && m_left->rowCount() > 0) ||
+            (m_center && m_center->rowCount() > 0) ||
+            (m_right && m_right->rowCount() > 0))
+            empty = false;
+
+        if (empty != m_empty)
+        {
+            m_empty = empty;
+            emit emptyChanged(empty);
+        }
+    }
+
     emit controlListChanged();
 }


=====================================
modules/gui/qt/player/player_controlbar_model.hpp
=====================================
@@ -34,6 +34,7 @@ class PlayerControlbarModel : public QObject
     Q_OBJECT
 
     Q_PROPERTY(bool dirty READ dirty WRITE setDirty NOTIFY dirtyChanged FINAL)
+    Q_PROPERTY(bool empty READ empty NOTIFY emptyChanged FINAL)
 
     Q_PROPERTY(ControlListModel* left READ left CONSTANT FINAL)
     Q_PROPERTY(ControlListModel* center READ center CONSTANT FINAL)
@@ -70,6 +71,7 @@ public:
     ~PlayerControlbarModel();
 
     bool dirty() const;
+    bool empty() const;
 
     std::array<QVector<int>, 3> serializeModels() const;
     void loadModels(const std::array<QVector<int>, 3>& array);
@@ -83,10 +85,12 @@ public slots:
 
 signals:
     void dirtyChanged(bool dirty);
+    void emptyChanged(bool);
     void controlListChanged();
 
 private:
     bool m_dirty = false;
+    bool m_empty = true;
 
     ControlListModel* m_left = nullptr;
     ControlListModel* m_center = nullptr;


=====================================
modules/gui/qt/player/qml/ControlBar.qml
=====================================
@@ -246,6 +246,8 @@ T.Pane {
             implicitHeight: MainCtx.pinVideoControls ? 
VLCStyle.controlLayoutHeightPinned
                                                      : 
VLCStyle.controlLayoutHeight
 
+            visible: !model?.empty ?? false
+
             Navigation.upItem: trackPositionSlider.enabled ? 
trackPositionSlider : root.Navigation.upItem
 
             onRequestLockUnlockAutoHide: (lock) => 
root.requestLockUnlockAutoHide(lock)


=====================================
modules/gui/qt/player/qml/PlayerControlLayout.qml
=====================================
@@ -59,7 +59,8 @@ FocusScope {
     implicitWidth: loaderLeftRight.active ? loaderLeftRight.implicitWidth
                                           : (loaderLeft.implicitWidth + 
loaderCenter.implicitWidth + loaderRight.implicitWidth)
 
-    implicitHeight: Math.max(loaderLeft.implicitHeight, 
loaderCenter.implicitHeight, loaderRight.implicitHeight)
+    implicitHeight: loaderLeftRight.active ? loaderLeftRight.implicitHeight
+                                           : 
Math.max(loaderLeft.implicitHeight, loaderCenter.implicitHeight, 
loaderRight.implicitHeight)
 
     // Events
 



View it on GitLab: 
https://code.videolan.org/videolan/vlc/-/compare/10cee7560668590a59715d0b1bd769350e713a9d...5a5cd5505644d3765ab966b055374ad15e16a58e

-- 
This project does not include diff previews in email notifications.
View it on GitLab: 
https://code.videolan.org/videolan/vlc/-/compare/10cee7560668590a59715d0b1bd769350e713a9d...5a5cd5505644d3765ab966b055374ad15e16a58e
You're receiving this email because of your account on code.videolan.org.


VideoLAN code repository instance
_______________________________________________
vlc-commits mailing list
[email protected]
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to