diff options
author | Nicolas Werner <nicolas.werner@hotmail.de> | 2021-12-13 00:43:05 +0100 |
---|---|---|
committer | Nicolas Werner <nicolas.werner@hotmail.de> | 2021-12-13 00:43:05 +0100 |
commit | dae032172d9280facec9538e38fefc3231205cc8 (patch) | |
tree | a0069d2443696e53021117a8346b843969f89448 /resources/qml | |
parent | Vertically align message input (diff) | |
download | nheko-dae032172d9280facec9538e38fefc3231205cc8.tar.xz |
Add recently used reactions
fixes #435
Diffstat (limited to 'resources/qml')
-rw-r--r-- | resources/qml/MessageView.qml | 22 | ||||
-rw-r--r-- | resources/qml/components/TextButton.qml | 48 |
2 files changed, 69 insertions, 1 deletions
diff --git a/resources/qml/MessageView.qml b/resources/qml/MessageView.qml index 375b4017..62f7735b 100644 --- a/resources/qml/MessageView.qml +++ b/resources/qml/MessageView.qml @@ -2,6 +2,7 @@ // // SPDX-License-Identifier: GPL-3.0-or-later +import "./components" import "./delegates" import "./emoji" import "./ui" @@ -49,7 +50,7 @@ ScrollView { property alias model: row.model // use comma to update on scroll property var attachedPos: chat.contentY, attached ? chat.mapFromItem(attached, attached ? attached.width - width : 0, -height) : null - readonly property int padding: 4 + readonly property int padding: Nheko.paddingSmall visible: Settings.buttonsInTimeline && !!attached && (attached.hovered || messageActionHover.hovered) x: attached ? attachedPos.x : 0 @@ -76,6 +77,25 @@ ScrollView { anchors.centerIn: parent spacing: messageActions.padding + Repeater { + model: Settings.recentReactions + + delegate: TextButton { + required property string modelData + + visible: chat.model ? chat.model.permissions.canSend(MtxEvent.Reaction) : false + + height: fontMetrics.height + font.family: Settings.emojiFont + + text: modelData + onClicked: { + room.input.reaction(row.model.eventId, modelData); + TimelineManager.focusMessageInput(); + } + } + } + ImageButton { id: editButton diff --git a/resources/qml/components/TextButton.qml b/resources/qml/components/TextButton.qml new file mode 100644 index 00000000..5dc946e7 --- /dev/null +++ b/resources/qml/components/TextButton.qml @@ -0,0 +1,48 @@ +// SPDX-FileCopyrightText: 2021 Nheko Contributors +// +// SPDX-License-Identifier: GPL-3.0-or-later + +import "../ui" +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import im.nheko 1.0 // for cursor shape + +AbstractButton { + id: button + + property alias cursor: mouseArea.cursorShape + property color highlightColor: Nheko.colors.highlight + property color buttonTextColor: Nheko.colors.buttonText + + focusPolicy: Qt.NoFocus + width: buttonText.implicitWidth + height: buttonText.implicitHeight + implicitWidth: buttonText.implicitWidth + implicitHeight: buttonText.implicitHeight + + Label { + id: buttonText + + anchors.centerIn: parent + padding: 0 + text: button.text + color: button.hovered ? highlightColor : buttonTextColor + font: button.font + verticalAlignment: Text.AlignVCenter + horizontalAlignment: Text.AlignHCenter + } + + CursorShape { + id: mouseArea + + anchors.fill: parent + cursorShape: Qt.PointingHandCursor + } + + Ripple { + color: Qt.rgba(buttonTextColor.r, buttonTextColor.g, buttonTextColor.b, 0.5) + clip: false + rippleTarget: button + } + +} |