Possible fix the freeze found in NeoChat

I looked at Tok code and found this as architectural difference in their
ListView.
This commit is contained in:
Carl Schwan
2021-05-05 16:56:05 +02:00
parent ccb12e1bed
commit 472490f257

View File

@@ -13,6 +13,7 @@ import NeoChat.Component 1.0
import NeoChat.Dialog 1.0 import NeoChat.Dialog 1.0
QQC2.ItemDelegate { QQC2.ItemDelegate {
id: messageDelegate
default property alias innerObject : column.children default property alias innerObject : column.children
readonly property bool sentByMe: author.isLocalUser readonly property bool sentByMe: author.isLocalUser
readonly property bool darkBackground: !sentByMe readonly property bool darkBackground: !sentByMe
@@ -71,6 +72,7 @@ QQC2.ItemDelegate {
Layout.rightMargin: Kirigami.Units.smallSpacing Layout.rightMargin: Kirigami.Units.smallSpacing
Layout.bottomMargin: 0 Layout.bottomMargin: 0
Layout.topMargin: model.showAuthor ? Kirigami.Units.smallSpacing : 0 Layout.topMargin: model.showAuthor ? Kirigami.Units.smallSpacing : 0
Layout.fillWidth: true
Kirigami.Avatar { Kirigami.Avatar {
Layout.minimumWidth: Kirigami.Units.gridUnit * 2 Layout.minimumWidth: Kirigami.Units.gridUnit * 2
@@ -104,15 +106,15 @@ QQC2.ItemDelegate {
visible: !model.showAuthor && Config.showAvatarInTimeline visible: !model.showAuthor && Config.showAvatarInTimeline
} }
QQC2.ItemDelegate { QQC2.Control {
id: bubble id: bubble
Layout.maximumWidth: mainColumn.width - Kirigami.Units.gridUnit * 2 - Kirigami.Units.largeSpacing * 2
implicitHeight: contentItem.implicitHeight + topPadding implicitHeight: contentItem.implicitHeight + topPadding
topPadding: Kirigami.Units.largeSpacing topPadding: Kirigami.Units.largeSpacing
bottomPadding: 0 bottomPadding: 0
leftPadding: 0 leftPadding: 0
rightPadding: 0 rightPadding: 0
hoverEnabled: true hoverEnabled: true
Layout.maximumWidth: mainColumn.width - Kirigami.Units.gridUnit * 2 - Kirigami.Units.largeSpacing * 2
contentItem: ColumnLayout { contentItem: ColumnLayout {
id: column id: column
@@ -173,6 +175,9 @@ QQC2.ItemDelegate {
border.width: Kirigami.Units.devicePixelRatio border.width: Kirigami.Units.devicePixelRatio
} }
} }
Item {
Layout.fillWidth: true
}
} }
Loader { Loader {
id: loader id: loader