[vlc-devel] [PATCH 6/7] qml: collapse the central banner tab buttons when there is not enough space

Pierre Lamot pierre at videolabs.io
Wed Sep 30 18:21:58 CEST 2020


---
 modules/gui/qt/maininterface/qml/BannerSources.qml | 5 +++++
 modules/gui/qt/style/VLCStyle.qml                  | 3 +++
 modules/gui/qt/widgets/qml/BannerTabButton.qml     | 5 +++--
 3 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/modules/gui/qt/maininterface/qml/BannerSources.qml b/modules/gui/qt/maininterface/qml/BannerSources.qml
index f5c7fe3ae0..c8810e18c1 100644
--- a/modules/gui/qt/maininterface/qml/BannerSources.qml
+++ b/modules/gui/qt/maininterface/qml/BannerSources.qml
@@ -105,6 +105,9 @@ Widgets.NavigableFocusScope {
                 width: parent.width
                 height: VLCStyle.globalToolbar_height
 
+                property bool colapseTabButtons: globalToolbar.width  > (Math.max(globalToolbarLeft.width, globalToolbarRight.width) + VLCStyle.applicationHorizontalMargin)* 2
+                                                 + globalMenuGroup.model.count * VLCStyle.bannerTabButton_width_large
+
                 //drag and dbl click the titlebar in CSD mode
                 Loader {
                     anchors.fill: parent
@@ -113,6 +116,7 @@ Widgets.NavigableFocusScope {
                 }
 
                 RowLayout {
+                    id: globalToolbarLeft
                     anchors.verticalCenter: parent.verticalCenter
                     anchors.left: parent.left
                     anchors.leftMargin: VLCStyle.applicationHorizontalMargin
@@ -155,6 +159,7 @@ Widgets.NavigableFocusScope {
 
                     delegate: Widgets.BannerTabButton {
                         iconTxt: model.icon
+                        showText: globalToolbar.colapseTabButtons
                         selected: model.index === selectedIndex
                         onClicked: root.itemClicked(model.index)
                         height: globalMenuGroup.height
diff --git a/modules/gui/qt/style/VLCStyle.qml b/modules/gui/qt/style/VLCStyle.qml
index df3a3c072e..648076c947 100644
--- a/modules/gui/qt/style/VLCStyle.qml
+++ b/modules/gui/qt/style/VLCStyle.qml
@@ -187,6 +187,9 @@ Item {
     property int localToolbar_height: dp(40, scale)
     property int banner_icon_size: dp(38, scale)
 
+    property int bannerTabButton_width_small: banner_icon_size
+    property int bannerTabButton_width_large: column_width
+
     //timings
     property int delayToolTipAppear: 500;
     property int timingPlaylistClose: 1000;
diff --git a/modules/gui/qt/widgets/qml/BannerTabButton.qml b/modules/gui/qt/widgets/qml/BannerTabButton.qml
index 66e288ffaf..fba705e033 100644
--- a/modules/gui/qt/widgets/qml/BannerTabButton.qml
+++ b/modules/gui/qt/widgets/qml/BannerTabButton.qml
@@ -29,10 +29,11 @@ T.TabButton {
 
     property color color: VLCStyle.colors.banner
     property color colorSelected: VLCStyle.colors.bg
+    property bool showText: true
 
     text: model.displayText
     padding: 0
-    width: VLCStyle.colWidth(1)
+    width: control.showText ? VLCStyle.bannerTabButton_width_large : VLCStyle.banner_icon_size
     height: implicitHeight
     implicitWidth: contentItem.implicitWidth
     implicitHeight: contentItem.implicitHeight
@@ -73,7 +74,7 @@ T.TabButton {
 
             Widgets.MenuLabel {
                 id: txt
-
+                visible: showText
                 font.weight: (control.activeFocus || control.hovered || control.selected) ? Font.DemiBold : Font.Normal
                 color: (control.activeFocus || control.hovered || control.selected) ? VLCStyle.colors.text : VLCStyle.colors.menuCaption
                 text: control.text
-- 
2.25.1



More information about the vlc-devel mailing list