diff --git a/resources/qml/Reactions.qml b/resources/qml/Reactions.qml
new file mode 100644
index 00000000..86f0071b
--- /dev/null
+++ b/resources/qml/Reactions.qml
@@ -0,0 +1,74 @@
+import QtQuick 2.6
+import QtQuick.Controls 2.2
+
+Flow {
+ anchors.left: parent.left
+ anchors.right: parent.right
+ spacing: 4
+ Repeater {
+ model: ListModel {
+ id: nameModel
+ ListElement { key: "😊"; count: 5; reactedBySelf: true; users: "Nico, RedSky, AAA, BBB, CCC" }
+ ListElement { key: "🤠"; count: 6; reactedBySelf: false; users: "Nico, AAA, BBB, CCC" }
+ ListElement { key: "💘"; count: 1; reactedBySelf: true; users: "Nico" }
+ ListElement { key: "🙈"; count: 7; reactedBySelf: false; users: "Nico, RedSky, AAA, BBB, CCC, DDD" }
+ ListElement { key: "👻"; count: 6; reactedBySelf: false; users: "Nico, RedSky, BBB, CCC" }
+ }
+ Button {
+ id: reaction
+ //border.width: 1
+ text: model.key
+ hoverEnabled: true
+ implicitWidth: contentItem.childrenRect.width + contentItem.padding*2
+ implicitHeight: contentItem.childrenRect.height + contentItem.padding*2
+
+ ToolTip.visible: hovered
+ ToolTip.text: model.users
+
+ contentItem: Row {
+ anchors.centerIn: parent
+ spacing: 2
+ padding: 4
+
+ Text {
+ id: reactionText
+ text: reaction.text
+ font: reaction.font
+ opacity: enabled ? 1.0 : 0.3
+ color: reaction.hovered ? colors.highlight : colors.buttonText
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ elide: Text.ElideRight
+ }
+
+ Rectangle {
+ height: reactionText.implicitHeight
+ width: 1
+ color: reaction.hovered ? colors.highlight : colors.buttonText
+ }
+
+ Text {
+ text: model.count
+ font: reaction.font
+ opacity: enabled ? 1.0 : 0.3
+ color: reaction.hovered ? colors.highlight : colors.buttonText
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ elide: Text.ElideRight
+ }
+ }
+
+ background: Rectangle {
+ anchors.centerIn: parent
+ implicitWidth: reaction.implicitWidth
+ implicitHeight: reaction.implicitHeight
+ opacity: enabled ? 1 : 0.3
+ border.color: (reaction.hovered || model.reactedBySelf )? colors.highlight : colors.buttonText
+ color: colors.dark
+ border.width: 1
+ radius: reaction.height / 2.0
+ }
+ }
+ }
+}
+
diff --git a/resources/qml/TimelineRow.qml b/resources/qml/TimelineRow.qml
index 05c69112..f3262fbd 100644
--- a/resources/qml/TimelineRow.qml
+++ b/resources/qml/TimelineRow.qml
@@ -52,6 +52,9 @@ MouseArea {
modelData: model
}
+
+ Reactions {
+ }
}
StatusIndicator {
diff --git a/resources/res.qrc b/resources/res.qrc
index c6daaa80..64a5b3cb 100644
--- a/resources/res.qrc
+++ b/resources/res.qrc
@@ -117,8 +117,9 @@
qml/MatrixText.qml
qml/StatusIndicator.qml
qml/EncryptionIndicator.qml
- qml/TimelineRow.qml
+ qml/Reactions.qml
qml/ScrollHelper.qml
+ qml/TimelineRow.qml
qml/delegates/MessageDelegate.qml
qml/delegates/TextMessage.qml
qml/delegates/NoticeMessage.qml