summaryrefslogtreecommitdiff
path: root/src/gui/widgets/itemlinkhandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/widgets/itemlinkhandler.cpp')
-rw-r--r--src/gui/widgets/itemlinkhandler.cpp223
1 files changed, 0 insertions, 223 deletions
diff --git a/src/gui/widgets/itemlinkhandler.cpp b/src/gui/widgets/itemlinkhandler.cpp
deleted file mode 100644
index 403573daf..000000000
--- a/src/gui/widgets/itemlinkhandler.cpp
+++ /dev/null
@@ -1,223 +0,0 @@
-/*
- * The ManaPlus Client
- * Copyright (C) 2009 The Mana World Development Team
- * Copyright (C) 2009-2010 The Mana Developers
- * Copyright (C) 2011-2017 The ManaPlus Developers
- *
- * This file is part of The ManaPlus Client.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "gui/widgets/itemlinkhandler.h"
-
-#include "itemcolormanager.h"
-#include "settings.h"
-
-#include "gui/viewport.h"
-
-#include "gui/popups/itempopup.h"
-#include "gui/popups/popupmenu.h"
-
-#include "gui/widgets/createwidget.h"
-
-#include "gui/windows/confirmdialog.h"
-#include "gui/windows/helpwindow.h"
-#include "gui/windows/questswindow.h"
-
-#include "input/inputmanager.h"
-
-#include "utils/gettext.h"
-#include "utils/stringutils.h"
-
-#include "resources/db/itemdb.h"
-
-#include "listeners/inputactionremotelistener.h"
-#include "listeners/openurllistener.h"
-
-#include "debug.h"
-
-namespace
-{
- OpenUrlListener listener;
-} // namespace
-
-ItemLinkHandler::ItemLinkHandler() :
- LinkHandler(),
- mAllowCommands(true)
-{
-}
-
-ItemLinkHandler::~ItemLinkHandler()
-{
-}
-
-void ItemLinkHandler::handleCommandLink(const std::string &link,
- const std::string &prefix)
-{
- std::string cmd;
- std::string args;
-
- const std::string cmdStr = link.substr(prefix.size());
- if (!parse2Str(cmdStr, cmd, args))
- {
- cmd = cmdStr;
- args.clear();
- }
- 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)
-{
- if (helpWindow != nullptr)
- {
- helpWindow->loadHelp(link.substr(7));
- helpWindow->requestMoveToTop();
- }
-}
-
-void ItemLinkHandler::handleHttpLink(const std::string &link,
- const MouseEvent *const event)
-{
- if (event == nullptr)
- return;
- std::string url = link;
- replaceAll(url, " ", "");
- listener.url = url;
- const MouseButtonT button = event->getButton();
- if (button == MouseButton::LEFT)
- {
- ConfirmDialog *const confirmDlg = CREATEWIDGETR(ConfirmDialog,
- // TRANSLATORS: dialog message
- _("Open url"),
- url,
- SOUND_REQUEST,
- false,
- Modal_true);
- confirmDlg->addActionListener(&listener);
- }
- else if (button == MouseButton::RIGHT)
- {
- if (popupMenu != nullptr)
- popupMenu->showLinkPopup(url);
- }
-}
-
-void ItemLinkHandler::handleItemLink(const std::string &link)
-{
- if ((itemPopup == nullptr) || link.empty())
- return;
-
- const char ch = link[0];
- if (ch < '0' || ch > '9')
- return;
-
- STD_VECTOR<int> str;
- splitToIntVector(str, link, ',');
- if (str.empty())
- return;
-
- const int id = str[0];
-
- if (id > 0)
- {
- str.erase(str.begin());
- while (str.size() < maxCards)
- str.push_back(0);
- const ItemColor color =
- ItemColorManager::getColorFromCards(&str[0]);
-
- const ItemInfo &itemInfo = ItemDB::get(id);
- // +++ need add support for options.
- itemPopup->setItem(itemInfo, color, true, -1, &str[0], nullptr);
- if (itemPopup->isPopupVisible())
- {
- itemPopup->setVisible(Visible_false);
- }
- else if (viewport != nullptr)
- {
- itemPopup->position(viewport->mMouseX,
- viewport->mMouseY);
- }
- }
-}
-
-void ItemLinkHandler::handleSearchLink(const std::string &link)
-{
- if (helpWindow != nullptr)
- {
- helpWindow->search(link.substr(1));
- helpWindow->requestMoveToTop();
- }
-}
-
-void ItemLinkHandler::handleLink(const std::string &link,
- MouseEvent *const event)
-{
- if (link.empty())
- return;
-
- if (strStartWith(link, "http://") || strStartWith(link, "https://"))
- {
- handleHttpLink(link, event);
- }
- else if (link[0] == '?')
- {
- handleSearchLink(link);
- }
- else if (strStartWith(link, "help://"))
- {
- handleHelpLink(link);
- }
- else if (strStartWith(link, settings.linkCommandSymbol))
- {
- handleCommandLink(link, settings.linkCommandSymbol);
- }
- else if (strStartWith(link, "="))
- {
- handleCommandLink(link, "=");
- }
- else if (link == "news")
- {
- if (helpWindow != nullptr)
- helpWindow->loadHelpSimple("news");
- }
- else if (link == "copyright")
- {
- inputManager.executeAction(InputAction::WINDOW_ABOUT);
- }
- else if (link[0] == 'q')
- {
- questsWindow->selectQuest(atoi(link.substr(1).c_str()));
- }
- else
- {
- handleItemLink(link);
- }
-}