diff options
author | Andrei Karas <akaras@inbox.ru> | 2016-04-04 22:49:50 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2016-04-05 15:56:48 +0300 |
commit | 011d05e7ff9abfc6052951fee954b1c193ea4fff (patch) | |
tree | 02ffbdad94063288d6809b0ae6db20f88a39099c | |
parent | 4f521dad0d3b06e07bb562f05e524c909b7fe878 (diff) | |
download | manaplus-011d05e7ff9abfc6052951fee954b1c193ea4fff.tar.gz manaplus-011d05e7ff9abfc6052951fee954b1c193ea4fff.tar.bz2 manaplus-011d05e7ff9abfc6052951fee954b1c193ea4fff.tar.xz manaplus-011d05e7ff9abfc6052951fee954b1c193ea4fff.zip |
Add into paths.xml option for set string for commands in links.
-rw-r--r-- | src/client.cpp | 3 | ||||
-rw-r--r-- | src/defaults.cpp | 1 | ||||
-rw-r--r-- | src/gui/widgets/itemlinkhandler.cpp | 16 | ||||
-rw-r--r-- | src/gui/widgets/itemlinkhandler.h | 3 | ||||
-rw-r--r-- | src/settings.h | 2 |
5 files changed, 19 insertions, 6 deletions
diff --git a/src/client.cpp b/src/client.cpp index f1c77f728..3259f2265 100644 --- a/src/client.cpp +++ b/src/client.cpp @@ -1819,6 +1819,9 @@ void Client::initPaths() { settings.gmCommandSymbol = paths.getStringValue("gmCommandSymbol"); settings.gmCharCommandSymbol = paths.getStringValue("gmCharCommandSymbol"); + settings.linkCommandSymbol = paths.getStringValue("linkCommandSymbol"); + if (settings.linkCommandSymbol.empty()) + settings.linkCommandSymbol = "="; } void Client::initTradeFilter() diff --git a/src/defaults.cpp b/src/defaults.cpp index 4bb76b435..a72008372 100644 --- a/src/defaults.cpp +++ b/src/defaults.cpp @@ -632,6 +632,7 @@ DefaultsData* getPathsDefaults() AddDEF("cutInsDir", "graphics/cutins"); AddDEF("gmCommandSymbol", "@"); AddDEF("gmCharCommandSymbol", "#"); + AddDEF("linkCommandSymbol", "="); AddDEF("palettesDir", ""); AddDEF("defaultPaletteFile", "palette.gpl"); diff --git a/src/gui/widgets/itemlinkhandler.cpp b/src/gui/widgets/itemlinkhandler.cpp index 86d0a5eec..a8e90acd7 100644 --- a/src/gui/widgets/itemlinkhandler.cpp +++ b/src/gui/widgets/itemlinkhandler.cpp @@ -23,6 +23,7 @@ #include "gui/widgets/itemlinkhandler.h" #include "itemcolormanager.h" +#include "settings.h" #include "gui/viewport.h" @@ -59,14 +60,16 @@ ItemLinkHandler::~ItemLinkHandler() { } -void ItemLinkHandler::handleCommandLink(const std::string &link) +void ItemLinkHandler::handleCommandLink(const std::string &link, + const std::string &prefix) { std::string cmd; std::string args; - if (!parse2Str(link.substr(1), cmd, args)) + const std::string cmdStr = link.substr(prefix.size()); + if (!parse2Str(cmdStr, cmd, args)) { - cmd = link.substr(1); + cmd = cmdStr; args.clear(); } inputManager.executeRemoteChatCommand(cmd, args, nullptr); @@ -158,7 +161,6 @@ void ItemLinkHandler::handleSearchLink(const std::string &link) void ItemLinkHandler::handleLink(const std::string &link, MouseEvent *const event) { - logger->log("link: " + link); if (strStartWith(link, "http://") || strStartWith(link, "https://")) { handleHttpLink(link, event); @@ -171,9 +173,13 @@ void ItemLinkHandler::handleLink(const std::string &link, { handleHelpLink(link); } + else if (strStartWith(link, settings.linkCommandSymbol)) + { + handleCommandLink(link, settings.linkCommandSymbol); + } else if (strStartWith(link, "=")) { - handleCommandLink(link); + handleCommandLink(link, "="); } else { diff --git a/src/gui/widgets/itemlinkhandler.h b/src/gui/widgets/itemlinkhandler.h index 25d6dbe41..6350b9fc3 100644 --- a/src/gui/widgets/itemlinkhandler.h +++ b/src/gui/widgets/itemlinkhandler.h @@ -40,7 +40,8 @@ class ItemLinkHandler final : public LinkHandler MouseEvent *event) override final; private: - static void handleCommandLink(const std::string &link); + static void handleCommandLink(const std::string &link, + const std::string &prefix); static void handleHelpLink(const std::string &link); diff --git a/src/settings.h b/src/settings.h index 81e01e2ae..50a8cb51c 100644 --- a/src/settings.h +++ b/src/settings.h @@ -52,6 +52,7 @@ class Settings final windowCaption(), gmCommandSymbol("@"), gmCharCommandSymbol("#"), + linkCommandSymbol("="), updateMirrors(), options(), guiAlpha(1.0F), @@ -102,6 +103,7 @@ class Settings final std::string windowCaption; std::string gmCommandSymbol; std::string gmCharCommandSymbol; + std::string linkCommandSymbol; std::vector<std::string> updateMirrors; Options options; float guiAlpha; |