diff options
author | Andrei Karas <akaras@inbox.ru> | 2016-09-21 18:43:26 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2016-09-21 18:43:26 +0300 |
commit | d8a7eaa14ef0fad24e19f6363db708a397f7f98b (patch) | |
tree | fdf3f32c4c300be74c3371bd47a60d84fdd70ff8 /src/gui | |
parent | 529d5ac21229ba7678bba9832f69448898b159b9 (diff) | |
download | manaplus-d8a7eaa14ef0fad24e19f6363db708a397f7f98b.tar.gz manaplus-d8a7eaa14ef0fad24e19f6363db708a397f7f98b.tar.bz2 manaplus-d8a7eaa14ef0fad24e19f6363db708a397f7f98b.tar.xz manaplus-d8a7eaa14ef0fad24e19f6363db708a397f7f98b.zip |
Allow copy items from outfit into chat.
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/popups/popupmenu.cpp | 4 | ||||
-rw-r--r-- | src/gui/windows/outfitwindow.cpp | 24 | ||||
-rw-r--r-- | src/gui/windows/outfitwindow.h | 2 |
3 files changed, 30 insertions, 0 deletions
diff --git a/src/gui/popups/popupmenu.cpp b/src/gui/popups/popupmenu.cpp index 5eb9d5813..2284e4cda 100644 --- a/src/gui/popups/popupmenu.cpp +++ b/src/gui/popups/popupmenu.cpp @@ -783,6 +783,10 @@ void PopupMenu::showOutfitsWindowPopup(const int x, const int y) // TRANSLATORS: popup menu header mBrowserBox->addRow(_("Outfits")); // TRANSLATORS: popup menu item + // TRANSLATORS: copy selected outfit to chat input + mBrowserBox->addRow("/outfittochat", _("Add to chat")); + mBrowserBox->addRow("##3---"); + // TRANSLATORS: popup menu item // TRANSLATORS: clear selected outfit mBrowserBox->addRow("clear outfit", _("Clear outfit")); mBrowserBox->addRow("##3---"); diff --git a/src/gui/windows/outfitwindow.cpp b/src/gui/windows/outfitwindow.cpp index 290cf924c..2a6ba3d6e 100644 --- a/src/gui/windows/outfitwindow.cpp +++ b/src/gui/windows/outfitwindow.cpp @@ -722,3 +722,27 @@ void OutfitWindow::clearCurrentOutfit() } save(); } + +std::string OutfitWindow::getOutfitString() const +{ + std::string str; + for (unsigned int i = 0; i < OUTFIT_ITEM_COUNT; i++) + { + const int id = mItems[mCurrentOutfit][i]; + if (id < 0) + continue; + + const ItemColor color = mItemColors[mCurrentOutfit][i]; + std::vector<int> ids; + ids.push_back(id); + ids.push_back(CAST_S32(color)); + + const std::string name = ItemDB::getNamesStr(ids); + if (name.empty()) + continue; + str.append("["); + str.append(name); + str.append("] "); + } + return str; +} diff --git a/src/gui/windows/outfitwindow.h b/src/gui/windows/outfitwindow.h index a6d31d3be..227a16737 100644 --- a/src/gui/windows/outfitwindow.h +++ b/src/gui/windows/outfitwindow.h @@ -97,6 +97,8 @@ class OutfitWindow final : public Window, void clearCurrentOutfit(); + std::string getOutfitString() const; + private: int getIndexFromGrid(const int pointX, const int pointY) const A_WARN_UNUSED; |