[vlc-devel] [PATCH 1/2] qml: limit width of artwork info control when extra width is not needed

Fatih Uzunoglu fuzun54 at outlook.com
Thu Mar 18 20:59:59 UTC 2021


if extraWidth is greater than the implicitWidth (available width is more than what is needed), this patch makes the control limit its width to its implicitWidth
---
 modules/gui/qt/player/qml/ControlButtons.qml | 39 +++++++++-----------
 1 file changed, 17 insertions(+), 22 deletions(-)

diff --git a/modules/gui/qt/player/qml/ControlButtons.qml b/modules/gui/qt/player/qml/ControlButtons.qml
index 21c7d317b5..e04c00d45c 100644
--- a/modules/gui/qt/player/qml/ControlButtons.qml
+++ b/modules/gui/qt/player/qml/ControlButtons.qml
@@ -801,8 +801,8 @@ Item{
             readonly property real minimumWidth: cover.width
             property real extraWidth: 0
 
-            implicitWidth: paintOnly ? playingItemInfoRow.width : (minimumWidth + extraWidth)
-
+            width: playingItemInfoRow.width
+            implicitWidth: playingItemInfoRow.implicitWidth
             implicitHeight: playingItemInfoRow.implicitHeight
 
             Keys.onPressed: {
@@ -812,7 +812,7 @@ Item{
             }
             Keys.onReleased: {
                 if (!event.accepted && KeyHelper.matchOk(event))
-		    g_mainDisplay.showPlayer()
+                    g_mainDisplay.showPlayer()
             }
 
             MouseArea {
@@ -825,7 +825,9 @@ Item{
 
             Row {
                 id: playingItemInfoRow
-                width: (coverItem.width + infoColumn.width)
+                width: (coverItem.width + infoColumn.width + spacing)
+
+                spacing: VLCStyle.margin_xsmall
 
                 Item {
                     id: coverItem
@@ -869,11 +871,12 @@ Item{
                 Column {
                     id: infoColumn
                     anchors.verticalCenter: parent.verticalCenter
-                    leftPadding: VLCStyle.margin_xsmall
 
-                    width: (paintOnly ? Math.max(titleLabel.width, artistLabel.width, progressIndicator.width) : implicitWidth) + VLCStyle.margin_xsmall
+                    readonly property real preferredWidth: Math.max(titleLabel.implicitWidth, artistLabel.implicitWidth, progressIndicator.implicitWidth)
+                    width: ((artworkInfoItem.extraWidth > preferredWidth) || (paintOnly)) ? preferredWidth
+                                                                                          : artworkInfoItem.extraWidth
 
-                    visible: paintOnly || artworkInfoItem.extraWidth > 0
+                    visible: width > 0
 
                     ToolTip {
                         text: i18n.qtr("%1\n%2").arg(titleLabel.text).arg(artistLabel.text)
@@ -894,10 +897,7 @@ Item{
                     Widgets.MenuLabel {
                         id: titleLabel
 
-                        width: {
-                            if (!paintOnly)
-                                artworkInfoItem.implicitWidth - titleLabel.mapToItem(artworkInfoItem, titleLabel.x, titleLabel.y).x
-                        }
+                        width: parent.width
 
                         text: {
                             if (paintOnly)
@@ -905,39 +905,34 @@ Item{
                             else
                                 mainPlaylistController.currentItem.title
                         }
-                        visible: text !== ""
                         color: colors.text
                     }
 
                     Widgets.MenuCaption {
                         id: artistLabel
-                        width: {
-                            if (!paintOnly)
-                                artworkInfoItem.implicitWidth - artistLabel.mapToItem(artworkInfoItem, artistLabel.x, artistLabel.y).x
-                        }
+
+                        width: parent.width
+
                         text: {
                             if (paintOnly)
                                 i18n.qtr("Artist")
                             else
                                 mainPlaylistController.currentItem.artist
                         }
-                        visible: text !== ""
                         color: colors.menuCaption
                     }
 
                     Widgets.MenuCaption {
                         id: progressIndicator
-                        width: {
-                            if (!paintOnly)
-                                artworkInfoItem.implicitWidth - progressIndicator.mapToItem(artworkInfoItem, progressIndicator.x, progressIndicator.y).x
-                        }
+
+                        width: parent.width
+
                         text: {
                             if (paintOnly)
                                 " -- / -- "
                             else
                                 player.time.toString() + " / " + player.length.toString()
                         }
-                        visible: text !== ""
                         color: colors.menuCaption
                     }
                 }
-- 
2.27.0



More information about the vlc-devel mailing list