From 7d7f1b3bea6f6f63f36d13844598c5c011485195 Mon Sep 17 00:00:00 2001 From: Mm2PL Date: Fri, 26 Jan 2024 22:25:11 +0000 Subject: [PATCH] Add support for `input.text` in commands run with hotkeys (#5130) --- CHANGELOG.md | 1 + src/widgets/splits/Split.cpp | 19 +++++++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9b95dc200..b91e9e3d7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,7 @@ - Minor: Normalized the input padding between light & dark themes. (#5095) - Minor: Add `--activate ` (or `-a`) command line option to activate or add a Twitch channel. (#5111) - Minor: Chatters from recent-messages are now added to autocompletion. (#5116) +- Minor: Added support for the `{input.text}` placeholder in the **Split** -> **Run a command** hotkey. (#5130) - Bugfix: Fixed an issue where certain emojis did not send to Twitch chat correctly. (#4840) - Bugfix: Fixed capitalized channel names in log inclusion list not being logged. (#4848) - Bugfix: Trimmed custom streamlink paths on all platforms making sure you don't accidentally add spaces at the beginning or end of its path. (#4834) diff --git a/src/widgets/splits/Split.cpp b/src/widgets/splits/Split.cpp index eb0367209..780d0998d 100644 --- a/src/widgets/splits/Split.cpp +++ b/src/widgets/splits/Split.cpp @@ -6,6 +6,7 @@ #include "common/network/NetworkResult.hpp" #include "common/QLogging.hpp" #include "controllers/accounts/AccountController.hpp" +#include "controllers/commands/Command.hpp" #include "controllers/commands/CommandController.hpp" #include "controllers/hotkeys/HotkeyController.hpp" #include "controllers/notifications/NotificationController.hpp" @@ -684,15 +685,25 @@ void Split::addShortcuts() }}, {"runCommand", [this](std::vector arguments) -> QString { - if (arguments.size() == 0) + if (arguments.empty()) { qCWarning(chatterinoHotkeys) << "runCommand hotkey called without arguments!"; return "runCommand hotkey called without arguments!"; } - QString command = getIApp()->getCommands()->execCommand( - arguments.at(0).replace('\n', ' '), this->getChannel(), false); - this->getChannel()->sendMessage(command); + QString requestedText = arguments.at(0).replace('\n', ' '); + + QString inputText = this->getInput().getInputText(); + QString message = getIApp()->getCommands()->execCustomCommand( + requestedText.split(' '), Command{"(hotkey)", requestedText}, + true, this->getChannel(), nullptr, + { + {"input.text", inputText}, + }); + + message = getIApp()->getCommands()->execCommand( + message, this->getChannel(), false); + this->getChannel()->sendMessage(message); return ""; }}, {"setChannelNotification",