Skip to content

Commit 62d12dd

Browse files
sync: from linuxdeepin/dtkdeclarative
Synchronize source files from linuxdeepin/dtkdeclarative. Source-pull-request: linuxdeepin/dtkdeclarative#521
1 parent 14e2f12 commit 62d12dd

3 files changed

Lines changed: 23 additions & 4 deletions

File tree

qt6/src/qml/ArrowListView.qml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,18 @@ FocusScope {
6262
highlightFollowsCurrentItem: true
6363
highlightMoveDuration: -1
6464
highlightMoveVelocity: 400
65+
66+
onCountChanged: refreshContentItemWidth()
67+
onWidthChanged: refreshContentItemWidth()
68+
69+
function refreshContentItemWidth() {
70+
for (var i = 0; i < itemsView.count; ++i) {
71+
var item = itemsView.itemAtIndex(i)
72+
if (item) {
73+
item.width = itemsView.width
74+
}
75+
}
76+
}
6577
}
6678

6779
P.ArrowListViewButton {

qt6/src/qml/ComboBox.qml

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ T.ComboBox {
3030
rightPadding: padding + (control.mirrored || !indicator || !indicator.visible ? 0 : indicator.width + spacing)
3131

3232
delegate: MenuItem {
33-
implicitWidth: ListView.view.width
33+
implicitWidth: Math.max(DS.Style.control.implicitWidth(control), popup.implicitWidth - DS.Style.popup.margin * 2)
3434
useIndicatorPadding: true
3535
text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole] : (model[control.textRole] === undefined ? modelData[control.textRole] : model[control.textRole])) : modelData
3636
icon.name: (control.iconNameRole && model[control.iconNameRole] !== undefined) ? model[control.iconNameRole] : null
@@ -103,8 +103,10 @@ T.ComboBox {
103103
}
104104

105105
T.TextField {
106-
Layout.fillWidth: true
106+
Layout.fillWidth: !control.flat
107107
Layout.fillHeight: true
108+
implicitWidth: control.flat ? contentWidth : implicitBackgroundWidth + leftInset + rightInset
109+
|| contentWidth + leftPadding + rightPadding
108110
Layout.rightMargin: DS.Style.comboBox.spacing
109111
text: control.editable ? control.editText : control.displayText
110112

@@ -124,7 +126,8 @@ T.ComboBox {
124126
}
125127

126128
background: Item {
127-
implicitWidth: DS.Style.comboBox.width
129+
implicitWidth: control.flat ? control.implicitContentWidth + control.leftPadding + control.rightPadding
130+
: DS.Style.comboBox.width
128131
implicitHeight: DS.Style.comboBox.height
129132
Loader {
130133
anchors.fill: parent
@@ -156,8 +159,11 @@ T.ComboBox {
156159
}
157160

158161
popup: Popup {
162+
id: popup
163+
leftMargin: DS.Style.popup.margin
164+
rightMargin: DS.Style.popup.margin
159165
palette: control.palette
160-
implicitWidth: control.width
166+
implicitWidth: control.flat ? Math.max(contentItem.implicitWidth, control.width) : control.width
161167
contentItem: ArrowListView {
162168
clip: true
163169
maxVisibleItems: control.maxVisibleItems

qt6/src/qml/FlowStyle.qml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -565,6 +565,7 @@ QtObject {
565565
property int height: 180
566566
property int radius: 18
567567
property int padding: 10
568+
property int margin: 10
568569
}
569570

570571
property QtObject floatingMessage: QtObject {

0 commit comments

Comments
 (0)