From c6ff6617f3973d201c70248b43596264e7f086a4 Mon Sep 17 00:00:00 2001 From: deepin-ci-robot Date: Tue, 26 Aug 2025 05:18:09 +0000 Subject: [PATCH] sync: from linuxdeepin/dtkdeclarative Synchronize source files from linuxdeepin/dtkdeclarative. Source-pull-request: https://github.com/linuxdeepin/dtkdeclarative/pull/521 --- qt6/src/qml/ArrowListView.qml | 12 ++++++++++++ qt6/src/qml/ComboBox.qml | 15 +++++++++++---- qt6/src/qml/FlowStyle.qml | 1 + 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/qt6/src/qml/ArrowListView.qml b/qt6/src/qml/ArrowListView.qml index 92dca6a8..2385f2a9 100644 --- a/qt6/src/qml/ArrowListView.qml +++ b/qt6/src/qml/ArrowListView.qml @@ -62,6 +62,18 @@ FocusScope { highlightFollowsCurrentItem: true highlightMoveDuration: -1 highlightMoveVelocity: 400 + + onCountChanged: refreshContentItemWidth() + onWidthChanged: refreshContentItemWidth() + + function refreshContentItemWidth() { + for (var i = 0; i < itemsView.count; ++i) { + var item = itemsView.itemAtIndex(i) + if (item) { + item.width = itemsView.width + } + } + } } P.ArrowListViewButton { diff --git a/qt6/src/qml/ComboBox.qml b/qt6/src/qml/ComboBox.qml index 701479b0..f8f46483 100644 --- a/qt6/src/qml/ComboBox.qml +++ b/qt6/src/qml/ComboBox.qml @@ -30,7 +30,7 @@ T.ComboBox { rightPadding: padding + (control.mirrored || !indicator || !indicator.visible ? 0 : indicator.width + spacing) delegate: MenuItem { - implicitWidth: ListView.view.width + implicitWidth: Math.max(DS.Style.control.implicitWidth(control), popup.implicitWidth - DS.Style.popup.margin * 2) useIndicatorPadding: true text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole] : (model[control.textRole] === undefined ? modelData[control.textRole] : model[control.textRole])) : modelData icon.name: (control.iconNameRole && model[control.iconNameRole] !== undefined) ? model[control.iconNameRole] : null @@ -103,9 +103,12 @@ T.ComboBox { } T.TextField { - Layout.fillWidth: true + Layout.fillWidth: !control.flat Layout.fillHeight: true + implicitWidth: control.flat ? contentWidth : implicitBackgroundWidth + leftInset + rightInset + || contentWidth + leftPadding + rightPadding Layout.rightMargin: DS.Style.comboBox.spacing + Layout.alignment: control.flat ? Qt.AlignVCenter | Qt.AlignRight : Qt.AlignVCenter | Qt.AlignLeft text: control.editable ? control.editText : control.displayText enabled: control.editable @@ -124,7 +127,8 @@ T.ComboBox { } background: Item { - implicitWidth: DS.Style.comboBox.width + implicitWidth: control.flat ? control.implicitContentWidth + control.leftPadding + control.rightPadding + : DS.Style.comboBox.width implicitHeight: DS.Style.comboBox.height Loader { anchors.fill: parent @@ -156,8 +160,11 @@ T.ComboBox { } popup: Popup { + id: popup + leftMargin: DS.Style.popup.margin + rightMargin: DS.Style.popup.margin palette: control.palette - implicitWidth: control.width + implicitWidth: control.flat ? Math.max(contentItem.implicitWidth, control.width) : control.width contentItem: ArrowListView { clip: true maxVisibleItems: control.maxVisibleItems diff --git a/qt6/src/qml/FlowStyle.qml b/qt6/src/qml/FlowStyle.qml index 6a461a79..f4d529ab 100644 --- a/qt6/src/qml/FlowStyle.qml +++ b/qt6/src/qml/FlowStyle.qml @@ -565,6 +565,7 @@ QtObject { property int height: 180 property int radius: 18 property int padding: 10 + property int margin: 10 } property QtObject floatingMessage: QtObject {