From 8b41ae72ae2733fc8bf33627698c75d9a79e1d7b Mon Sep 17 00:00:00 2001 From: Philipp Sehmisch Date: Sun, 20 May 2007 14:28:48 +0000 Subject: Fixed the amount-not-reset-when-using-scrollwheel bug in sell dialog. --- ChangeLog | 9 ++++++++- src/gui/buy.cpp | 2 +- src/gui/sell.cpp | 39 ++++++++++++++++++++++++++++----------- 3 files changed, 37 insertions(+), 13 deletions(-) diff --git a/ChangeLog b/ChangeLog index dcf6030b..ba5d6ce9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,11 @@ -2007-05-08 Philipp Sehmisch +2007-05-20 Philipp Sehmisch + + * src/gui/buy.cpp, src/gui/sell.cpp: Unified some differences between buy + and sell dialog. Money label now shows money after transaction instead of + current money. + * src/gui/sell.cpp: Fixed the amount-not-reset-when-using-scrollwheel bug. + +2007-05-08 Philipp Sehmisch * data/graphics/sprites/monster-bat.png, data/graphics/sprites/monster-bat.xml, diff --git a/src/gui/buy.cpp b/src/gui/buy.cpp index a8a1ea7e..8b9e8d8e 100644 --- a/src/gui/buy.cpp +++ b/src/gui/buy.cpp @@ -230,7 +230,7 @@ void BuyDialog::action(const gcn::ActionEvent &event) int price = mAmountItems * mShopItems->at(selectedItem).price; mMoneyLabel->setCaption("Price: " + toString(price) + " GP / " - + toString(mMoney) + " GP" ); + + toString(mMoney - price) + " GP" ); mMoneyLabel->adjustSize(); } } diff --git a/src/gui/sell.cpp b/src/gui/sell.cpp index c9ac84c3..5de2a9e6 100644 --- a/src/gui/sell.cpp +++ b/src/gui/sell.cpp @@ -202,7 +202,6 @@ void SellDialog::action(const gcn::ActionEvent &event) if (event.getId() == "mSlider") { mAmountItems = (int)(mSlider->getValue() * mMaxItems); - updateButtonsAndLabels = true; } else if (event.getId() == "+") @@ -255,39 +254,57 @@ void SellDialog::action(const gcn::ActionEvent &event) // If anything changed, we need to update the buttons and labels if (updateButtonsAndLabels) { + // Update Buttons + mSellButton->setEnabled(mAmountItems > 0); + mDecreaseButton->setEnabled(mAmountItems > 0); + mIncreaseButton->setEnabled(mAmountItems < mMaxItems); + // Update labels mQuantityLabel->setCaption(toString(mAmountItems) + " / " + toString(mMaxItems)); mQuantityLabel->adjustSize(); - int price = mAmountItems * mShopItems->at(selectedItem).price; - mMoneyLabel->setCaption("Money: " + toString(price) + " GP / Total: " - + toString(price + mPlayerMoney) + " GP"); + int sellSum = mAmountItems * mShopItems->at(selectedItem).price; + mMoneyLabel->setCaption("Money: " + toString(sellSum) + " GP / Total: " + + toString(mPlayerMoney + sellSum) + " GP"); mMoneyLabel->adjustSize(); - - // Update Buttons - mSellButton->setEnabled(mAmountItems > 0); - mDecreaseButton->setEnabled(mAmountItems > 0); - mIncreaseButton->setEnabled(mAmountItems < mMaxItems); } } void SellDialog::selectionChanged(const SelectionEvent &event) { + // Reset amount of items and update labels + mAmountItems = 0; + mSlider->setValue(0); + mSlider->setEnabled(true); + mMoneyLabel->setCaption("Money: 0 GP / Total: " + + toString(mPlayerMoney) + " GP"); + mMoneyLabel->adjustSize(); + + // Disable buttons for selling and decreasing, enable button for increasing + mIncreaseButton->setEnabled(true); + mSellButton->setEnabled(false); + mDecreaseButton->setEnabled(false); + int selectedItem = mShopItemList->getSelected(); if (selectedItem > -1) { - const ItemInfo &info = - ItemDB::get(mShopItems->at(selectedItem).id); + mMaxItems = mShopItems->at(selectedItem).quantity; + + const ItemInfo &info = ItemDB::get(mShopItems->at(selectedItem).id); mItemDescLabel->setCaption("Description: " + info.getDescription()); mItemEffectLabel->setCaption("Effect: " + info.getEffect()); } else { + mMaxItems = 0; mItemDescLabel->setCaption("Description"); mItemEffectLabel->setCaption("Effect"); } + + mQuantityLabel->setCaption("0 / " + toString(mMaxItems)); + mQuantityLabel->adjustSize(); } void SellDialog::setMoney(int amount) -- cgit v1.2.3-70-g09d2