Remove usage of HScrollableTextArea

This commit is contained in:
miruka 2020-05-29 16:35:27 -04:00
parent a91a0c18f7
commit 01d3b6b489
4 changed files with 19 additions and 132 deletions

View File

@ -29,6 +29,7 @@
- Catch server 5xx errors when sending message and retry
- Popups and room settings can't be scrolled when not enough height to show all
- `TextArea`s in Popups grow past window height instead of being scrollable
- Handle cases where a known account's access token is invalid
- If an account is gone from the user's config, discard UI state last page

View File

@ -1,120 +0,0 @@
// SPDX-License-Identifier: LGPL-3.0-or-later
import QtQuick 2.12
import QtQuick.Controls 2.12
ScrollView {
id: scrollView
opacity: enabled ? 1 : theme.disabledElementsOpacity
clip: true
ScrollBar.vertical.visible: contentHeight > height
// Set it only on component creation to avoid binding loops
Component.onCompleted: if (! text) {
text = window.getState(this, "text", "")
textArea.cursorPosition = text.length
}
onTextChanged: window.saveState(this)
default property alias textAreaData: textArea.data
property string saveName: ""
property var saveId: "ALL"
property var saveProperties: ["text"]
property alias placeholderText: textArea.placeholderText
property alias placeholderTextColor: textArea.placeholderTextColor
property alias area: textArea
property alias text: textArea.text
property var focusItemOnTab: null
property var disabledText: null
property string defaultText: ""
readonly property bool changed: text !== defaultText
function reset() { area.clear(); text = defaultText }
Behavior on opacity { HNumberAnimation {} }
TextArea {
id: textArea
text: defaultText
enabled: parent.enabled
leftPadding: theme.spacing
rightPadding: leftPadding
topPadding: theme.spacing / 1.5
bottomPadding: topPadding
readOnly: ! visible
selectByMouse: true
wrapMode: TextEdit.Wrap
font.family: theme.fontFamily.sans
font.pixelSize: theme.fontSize.normal
font.pointSize: -1
placeholderTextColor: theme.controls.textArea.placeholderText
color: theme.controls.textArea.text
background: Rectangle {
id: textAreaBackground
color: theme.controls.textArea.background
radius: theme.radius
}
Keys.onPressed: if (
event.modifiers & Qt.AltModifier ||
event.modifiers & Qt.MetaModifier
) event.accepted = true
KeyNavigation.priority: KeyNavigation.BeforeItem
KeyNavigation.tab: focusItemOnTab
Binding on color {
value: "transparent"
when: disabledText !== null && ! textArea.enabled
}
Binding on placeholderTextColor {
value: "transparent"
when: disabledText !== null && ! textArea.enabled
}
Binding on implicitHeight {
value: disabledTextLabel.implicitHeight
when: disabledText !== null && ! textArea.enabled
}
Behavior on color { HColorAnimation {} }
Behavior on placeholderTextColor { HColorAnimation {} }
HLabel {
id: disabledTextLabel
anchors.fill: parent
visible: opacity > 0
opacity: disabledText !== null && parent.enabled ? 0 : 1
text: disabledText || ""
leftPadding: parent.leftPadding
rightPadding: parent.rightPadding
topPadding: parent.topPadding
bottomPadding: parent.bottomPadding
wrapMode:
parent.wrapMode === TextEdit.Wrap ? Text.Wrap :
parent.wrapMode === TextEdit.WordWrap ? Text.WordWrap :
parent.wrapMode === TextEdit.WrapAnywhere ? Text.WrapAnywhere :
Text.NoWrap
font.family: parent.font.family
font.pixelSize: parent.font.pixelSize
Behavior on opacity { HNumberAnimation {} }
}
}
}

View File

@ -1,6 +1,7 @@
// SPDX-License-Identifier: LGPL-3.0-or-later
import QtQuick 2.12
import QtQuick.Controls 2.12
import QtQuick.Layouts 1.12
import "../Base"
@ -12,7 +13,7 @@ BoxPopup {
okText: qsTr("Invite")
okEnabled: invitingAllowed && Boolean(inviteArea.text.trim())
onOpened: inviteArea.area.forceActiveFocus()
onOpened: inviteArea.forceActiveFocus()
onInvitingAllowedChanged:
if (! invitingAllowed && inviteFuture) inviteFuture.cancel()
@ -60,14 +61,16 @@ BoxPopup {
property var failedInvites: []
HScrollableTextArea {
id: inviteArea
focusItemOnTab: box.firstButton
area.placeholderText:
qsTr("User IDs (e.g. @bob:matrix.org @alice:localhost)")
ScrollView {
Layout.fillWidth: true
Layout.fillHeight: true
HTextArea {
id: inviteArea
focusItemOnTab: box.firstButton
placeholderText:
qsTr("User IDs (e.g. @bob:matrix.org @alice:localhost)")
}
}
HLabel {

View File

@ -1,6 +1,7 @@
// SPDX-License-Identifier: LGPL-3.0-or-later
import QtQuick 2.12
import QtQuick.Controls 2.12
import QtQuick.Layouts 1.12
import "../Base"
@ -20,12 +21,14 @@ BoxPopup {
property string traceback: ""
HScrollableTextArea {
text: [message, traceback].join("\n\n") || qsTr("No info available")
area.readOnly: true
area.font.family: theme.fontFamily.mono
ScrollView {
Layout.fillWidth: true
HTextArea {
text: [message, traceback].join("\n\n") || qsTr("No info available")
readOnly: true
font.family: theme.fontFamily.mono
}
}
HCheckBox {