From d557ce63e240960746e48c678b4a08ba66f7fe40 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Mon, 6 Feb 2017 16:58:18 +0300 Subject: Add custom currency also into shop items list. --- src/gui/models/shopitems.cpp | 28 ++++++++++++++++++++++++---- src/gui/models/shopitems.h | 5 ++++- src/gui/widgets/selldialog.cpp | 5 ++++- src/gui/windows/buydialog.cpp | 3 ++- src/gui/windows/shopwindow.cpp | 7 ++++--- 5 files changed, 38 insertions(+), 10 deletions(-) (limited to 'src/gui') diff --git a/src/gui/models/shopitems.cpp b/src/gui/models/shopitems.cpp index 061da5110..94bba3be4 100644 --- a/src/gui/models/shopitems.cpp +++ b/src/gui/models/shopitems.cpp @@ -28,10 +28,12 @@ #include "debug.h" -ShopItems::ShopItems(const bool mergeDuplicates) : +ShopItems::ShopItems(const bool mergeDuplicates, + const std::string ¤cy) : ListModel(), mAllShopItems(), mShopItems(), + mCurrency(currency), mMergeDuplicates(mergeDuplicates) { } @@ -58,7 +60,13 @@ ShopItem *ShopItems::addItem(const int id, const int amount, const int price) { - ShopItem *const item = new ShopItem(-1, id, type, color, amount, price); + ShopItem *const item = new ShopItem(-1, + id, + type, + color, + amount, + price, + mCurrency); mShopItems.push_back(item); mAllShopItems.push_back(item); return item; @@ -73,7 +81,13 @@ ShopItem *ShopItems::addItemNoDup(const int id, ShopItem *item = findItem(id, color); if (!item) { - item = new ShopItem(-1, id, type, color, amount, price); + item = new ShopItem(-1, + id, + type, + color, + amount, + price, + mCurrency); mShopItems.push_back(item); mAllShopItems.push_back(item); } @@ -97,7 +111,13 @@ ShopItem *ShopItems::addItem2(const int inventoryIndex, } else { - item = new ShopItem(inventoryIndex, id, type, color, quantity, price); + item = new ShopItem(inventoryIndex, + id, + type, + color, + quantity, + price, + mCurrency); mShopItems.push_back(item); mAllShopItems.push_back(item); } diff --git a/src/gui/models/shopitems.h b/src/gui/models/shopitems.h index 42594a7c6..3b6d611cb 100644 --- a/src/gui/models/shopitems.h +++ b/src/gui/models/shopitems.h @@ -53,7 +53,8 @@ class ShopItems final : public ListModel * @param mergeDuplicates lets the Shop look for duplicate entries and * merges them to one item. */ - explicit ShopItems(const bool mergeDuplicates = false); + ShopItems(const bool mergeDuplicates, + const std::string ¤cy); A_DELETE_COPY(ShopItems) @@ -159,6 +160,8 @@ class ShopItems final : public ListModel std::vector mShopItems; + std::string mCurrency; + /** Look for duplicate entries on addition. */ bool mMergeDuplicates; }; diff --git a/src/gui/widgets/selldialog.cpp b/src/gui/widgets/selldialog.cpp index 7f96e14ff..b455597a2 100644 --- a/src/gui/widgets/selldialog.cpp +++ b/src/gui/widgets/selldialog.cpp @@ -22,6 +22,8 @@ #include "gui/widgets/selldialog.h" +#include "const/resources/currency.h" + #include "enums/gui/layouttype.h" #include "gui/windows/setupwindow.h" @@ -89,7 +91,8 @@ void SellDialog::postInit() setupWindow->registerWindowForReset(this); // Create a ShopItems instance, that is aware of duplicate entries. - mShopItems = new ShopItems(true); + mShopItems = new ShopItems(true, + DEFAULT_CURRENCY); if (mAdvanced == Advanced_true) mShopItems->setMergeDuplicates(false); diff --git a/src/gui/windows/buydialog.cpp b/src/gui/windows/buydialog.cpp index a0ec8d05c..bddd8bba6 100644 --- a/src/gui/windows/buydialog.cpp +++ b/src/gui/windows/buydialog.cpp @@ -296,7 +296,8 @@ void BuyDialog::init() if (setupWindow) setupWindow->registerWindowForReset(this); - mShopItems = new ShopItems; + mShopItems = new ShopItems(false, + mCurrency); CREATEWIDGETV(mShopItemList, ShopListBox, this, mShopItems, mShopItems, ShopListBoxType::Unknown); diff --git a/src/gui/windows/shopwindow.cpp b/src/gui/windows/shopwindow.cpp index b09b44a46..f308cb5b5 100644 --- a/src/gui/windows/shopwindow.cpp +++ b/src/gui/windows/shopwindow.cpp @@ -107,8 +107,8 @@ ShopWindow::ShopWindow() : SelectionListener(), // TRANSLATORS: shop window button mCloseButton(new Button(this, _("Close"), "close", this)), - mBuyShopItems(new ShopItems), - mSellShopItems(new ShopItems), + mBuyShopItems(new ShopItems(false, DEFAULT_CURRENCY)), + mSellShopItems(new ShopItems(false, DEFAULT_CURRENCY)), mTradeItem(nullptr), mBuyShopItemList(CREATEWIDGETR(ShopListBox, this, mBuyShopItems, mBuyShopItems, ShopListBoxType::BuyShop)), @@ -952,7 +952,8 @@ void ShopWindow::processRequest(const std::string &nick, std::string data, ItemType::Unknown, ItemColor_one, amount, - price); + price, + DEFAULT_CURRENCY); if (mode == BUY) { -- cgit v1.2.3-70-g09d2