From 2538267ce30c5cfe3bbf23442e7c3a80e647f260 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Thu, 7 Apr 2016 17:12:59 +0300 Subject: For commands in links in chat ask before executing command. --- src/gui/widgets/itemlinkhandler.cpp | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'src/gui/widgets/itemlinkhandler.cpp') diff --git a/src/gui/widgets/itemlinkhandler.cpp b/src/gui/widgets/itemlinkhandler.cpp index a8e90acd7..47314ca5c 100644 --- a/src/gui/widgets/itemlinkhandler.cpp +++ b/src/gui/widgets/itemlinkhandler.cpp @@ -42,6 +42,7 @@ #include "resources/db/itemdb.h" +#include "listeners/inputactionremotelistener.h" #include "listeners/openurllistener.h" #include "debug.h" @@ -52,7 +53,8 @@ namespace } // namespace ItemLinkHandler::ItemLinkHandler() : - LinkHandler() + LinkHandler(), + mAllowCommands(true) { } @@ -72,7 +74,22 @@ void ItemLinkHandler::handleCommandLink(const std::string &link, cmd = cmdStr; args.clear(); } - inputManager.executeRemoteChatCommand(cmd, args, nullptr); + if (mAllowCommands) + { + inputManager.executeRemoteChatCommand(cmd, args, nullptr); + } + else + { + inputActionRemoteListener.setCommand(cmd, args); + ConfirmDialog *const confirmDlg = CREATEWIDGETR(ConfirmDialog, + // TRANSLATORS: dialog message + _("Run command"), + strprintf("/%s %s", cmd.c_str(), args.c_str()), + SOUND_REQUEST, + false, + Modal_true); + confirmDlg->addActionListener(&inputActionRemoteListener); + } } void ItemLinkHandler::handleHelpLink(const std::string &link) -- cgit v1.2.3-60-g2f50