Implement text reactions
Makes reacting with text possible by adding a /react command
This commit is contained in:
@@ -121,6 +121,11 @@ QVariantList ActionsHandler::commands() const
|
|||||||
QStringLiteral("parameter"), i18nc("@label Parameter of a command", "<user-id>"),
|
QStringLiteral("parameter"), i18nc("@label Parameter of a command", "<user-id>"),
|
||||||
QStringLiteral("help"), i18n("Invites user with given id to current room")
|
QStringLiteral("help"), i18n("Invites user with given id to current room")
|
||||||
});
|
});
|
||||||
|
commands.append({
|
||||||
|
QStringLiteral("prefix"), QStringLiteral("/react "),
|
||||||
|
QStringLiteral("parameter"), i18nc("@label Parameter of a command", "<reaction text>"),
|
||||||
|
QStringLiteral("help"), i18n("React to this message with a text")
|
||||||
|
});
|
||||||
|
|
||||||
// TODO more see elements /help action
|
// TODO more see elements /help action
|
||||||
|
|
||||||
@@ -204,6 +209,7 @@ void ActionsHandler::postMessage(const QString &text,
|
|||||||
static const QString unignorePrefix = QStringLiteral("/unignore ");
|
static const QString unignorePrefix = QStringLiteral("/unignore ");
|
||||||
static const QString queryPrefix = QStringLiteral("/query "); // TODO
|
static const QString queryPrefix = QStringLiteral("/query "); // TODO
|
||||||
static const QString msgPrefix = QStringLiteral("/msg "); // TODO
|
static const QString msgPrefix = QStringLiteral("/msg "); // TODO
|
||||||
|
static const QString reactPrefix = QStringLiteral("/react ");
|
||||||
|
|
||||||
// Admin commands
|
// Admin commands
|
||||||
|
|
||||||
@@ -324,6 +330,15 @@ void ActionsHandler::postMessage(const QString &text,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(rawText.indexOf(reactPrefix) == 0) {
|
||||||
|
if(replyEventId.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
rawText = rawText.remove(0, reactPrefix.length());
|
||||||
|
m_room->toggleReaction(replyEventId, rawText);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (cleanedText.indexOf(mePrefix) == 0) {
|
if (cleanedText.indexOf(mePrefix) == 0) {
|
||||||
cleanedText = cleanedText.remove(0, mePrefix.length());
|
cleanedText = cleanedText.remove(0, mePrefix.length());
|
||||||
messageEventType = RoomMessageEvent::MsgType::Emote;
|
messageEventType = RoomMessageEvent::MsgType::Emote;
|
||||||
|
|||||||
Reference in New Issue
Block a user