[vlc-devel] [PATCH 2/5] qml: Add aspect ratio widget

Rohan Rajpal rohan17089 at iiitd.ac.in
Fri Jun 28 13:13:47 CEST 2019


Add the aspect ratio combobox for
the player controller
---
 modules/gui/qt/adapters/var_choice_model.cpp |  5 +++++
 modules/gui/qt/adapters/var_choice_model.hpp |  3 +++
 modules/gui/qt/qml/player/ControlBar.qml     |  1 -
 modules/gui/qt/qml/player/ControlButtons.qml | 15 +++++++++++++++
 4 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/modules/gui/qt/adapters/var_choice_model.cpp b/modules/gui/qt/adapters/var_choice_model.cpp
index ed3e9bf2b6..a58f67961a 100644
--- a/modules/gui/qt/adapters/var_choice_model.cpp
+++ b/modules/gui/qt/adapters/var_choice_model.cpp
@@ -225,3 +225,8 @@ bool VLCVarChoiceModel::hasCurrent() const
 {
     return m_current != -1;
 }
+
+void VLCVarChoiceModel::toggleIndex(int index)
+{
+    setData(QAbstractItemModel::createIndex(index,0),true,Qt::CheckStateRole);
+}
diff --git a/modules/gui/qt/adapters/var_choice_model.hpp b/modules/gui/qt/adapters/var_choice_model.hpp
index 837a8f06b8..3eb2b91e5b 100644
--- a/modules/gui/qt/adapters/var_choice_model.hpp
+++ b/modules/gui/qt/adapters/var_choice_model.hpp
@@ -71,6 +71,9 @@ public:
     static int on_variable_callback( vlc_object_t * object, char const * , vlc_value_t oldvalue, vlc_value_t newvalue, void * data);
     static int on_variable_list_callback( vlc_object_t * object, char const * , int action, vlc_value_t* value, void * data);
 
+public slots:
+    Q_INVOKABLE void toggleIndex(int index);
+
 private slots:
     void onDataUpdated(const vlc_object_t* object, QVariant oldvalue, QVariant newvalue);
     void onListUpdated(const vlc_object_t* object, int action, QVariant newvalue);
diff --git a/modules/gui/qt/qml/player/ControlBar.qml b/modules/gui/qt/qml/player/ControlBar.qml
index 76399d488d..e561d1bba8 100644
--- a/modules/gui/qt/qml/player/ControlBar.qml
+++ b/modules/gui/qt/qml/player/ControlBar.qml
@@ -91,7 +91,6 @@ Utils.NavigableFocusScope {
                     property bool _focusGiven: false
                     focus: true
                     anchors.fill: parent
-                    spacing: 0
 
                     Repeater{
                         model: PlayerControlBarModel{
diff --git a/modules/gui/qt/qml/player/ControlButtons.qml b/modules/gui/qt/qml/player/ControlButtons.qml
index a293d8d386..2a32d401a5 100644
--- a/modules/gui/qt/qml/player/ControlButtons.qml
+++ b/modules/gui/qt/qml/player/ControlButtons.qml
@@ -56,6 +56,7 @@ Item{
         case PlayerControlBarModel.SKIP_BACK_BUTTON: return stepBackBtnDelegate
         case PlayerControlBarModel.QUIT_BUTTON: return quitBtnDelegate
         case PlayerControlBarModel.VOLUME: return volumeBtnDelegate
+        case PlayerControlBarModel.ASPECT_RATIO_COMBOBOX: return aspectRatioDelegate
         }
         console.log("button delegate id " + inpID +  " doesn't exists")
         return spacerDelegate
@@ -390,6 +391,20 @@ Item{
         }
     }
 
+    Component{
+        id: aspectRatioDelegate
+        Utils.ComboBoxExt {
+            id: combo
+            Layout.alignment: Qt.AlignVCenter
+            height: 28 * scale
+            width: 100 * scale
+            textRole: "display"
+            model: player.aspectRatio
+            onCurrentIndexChanged: model.toggleIndex(currentIndex)
+            property bool acceptFocus: true
+        }
+    }
+
     Component{
         id: volumeBtnDelegate
         VolumeWidget{}
-- 
2.17.1



More information about the vlc-devel mailing list