Compare commits

..

1 Commits

Author SHA1 Message Date
James Graham
6d2fda878c Fix the Timeline Feezes.
This was caused whe TextComponent was changed from a TextEdit to a TextArea for the rich chat bar. This causes freezing for ..... reasons. Changin it back fixes the freezes.

The upshot of this is we now have to implement placeholder text ourselves. So I copied how it is done in TestArea in QQC2 desktop style with some minor logic changes for us.
2026-02-28 17:06:30 +00:00
2 changed files with 24 additions and 13 deletions

View File

@@ -490,7 +490,6 @@
<content_attribute id="social-chat">intense</content_attribute>
</content_rating>
<releases>
<release version="25.12.3" date="2026-03-05"/>
<release version="25.12.2" date="2026-02-05"/>
<release version="25.12.1" date="2026-01-08"/>
<release version="25.12.0" date="2025-12-11"/>

View File

@@ -13,7 +13,7 @@ import org.kde.neochat
/**
* @brief A component to show rich text from a message.
*/
QQC2.TextArea {
TextEdit {
id: root
/**
@@ -106,15 +106,6 @@ QQC2.TextArea {
readOnly: !root.editable
wrapMode: Text.Wrap
textFormat: Text.RichText
placeholderText: if (!editable || index !== (Message.contentModel?.hasAttachment ? 1 : 0)) {
return "";
} else if (Message.contentModel?.hasAttachment) {
i18nc("@placeholder", "Set an attachment caption…")
} else if (Message.room?.usesEncryption) {
i18nc("@placeholder", "Send an encrypted message…")
} else {
i18nc("@placeholder", "Send a message…")
}
onLinkActivated: link => {
if (!root.editable) {
@@ -129,6 +120,29 @@ QQC2.TextArea {
Component.onCompleted: manageDefaultMenus()
QQC2.Label {
id: placeholder
x: root.leftPadding
y: root.topPadding
width: root.width - (root.leftPadding + root.rightPadding)
height: root.height - (root.topPadding + root.bottomPadding)
text: if (root.Message.contentModel?.hasAttachment) {
i18nc("@placeholder", "Set an attachment caption…")
} else if (root.Message.room?.usesEncryption) {
i18nc("@placeholder", "Send an encrypted message…")
} else {
i18nc("@placeholder", "Send a message…")
}
font: root.font
color: Kirigami.Theme.disabledTextColor
horizontalAlignment: root.horizontalAlignment
verticalAlignment: root.verticalAlignment
visible: root.editable && root.index === (root.Message.contentModel?.hasAttachment ? 1 : 0) && (root.Message.contentModel?.rowCount() ?? 0) <= 1 && !root.length && !root.preeditText && (!root.activeFocus || root.horizontalAlignment !== Qt.AlignHCenter)
elide: Text.ElideRight
wrapMode: Text.WordWrap
}
HoverHandler {
cursorShape: root.hoveredLink || (!(root.componentAttributes?.spoilerRevealed ?? false) && root.hasSpoiler) ? Qt.PointingHandCursor : Qt.IBeamCursor
}
@@ -169,6 +183,4 @@ QQC2.TextArea {
}
}
}
background: null
}