diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-01-24 16:48:14 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-01-24 16:48:14 +0300 |
commit | 7dc4dea6109eb8592db5bfc2ab81a6b59fdd83f7 (patch) | |
tree | 523ee84b12297a855e31f1b7456c0379c384f071 /src/gui/widgets | |
parent | 5de322cf706004227fd0ebec59e0ebb50631df3a (diff) | |
download | manaplus-7dc4dea6109eb8592db5bfc2ab81a6b59fdd83f7.tar.gz manaplus-7dc4dea6109eb8592db5bfc2ab81a6b59fdd83f7.tar.bz2 manaplus-7dc4dea6109eb8592db5bfc2ab81a6b59fdd83f7.tar.xz manaplus-7dc4dea6109eb8592db5bfc2ab81a6b59fdd83f7.zip |
Add support for drag and drop from/to cart.
Diffstat (limited to 'src/gui/widgets')
-rw-r--r-- | src/gui/widgets/itemcontainer.cpp | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/src/gui/widgets/itemcontainer.cpp b/src/gui/widgets/itemcontainer.cpp index 528e751fb..0ca5231e1 100644 --- a/src/gui/widgets/itemcontainer.cpp +++ b/src/gui/widgets/itemcontainer.cpp @@ -423,6 +423,9 @@ void ItemContainer::mousePressed(MouseEvent &event) case InventoryType::NPC: src = DRAGDROP_SOURCE_NPC; break; + case InventoryType::CART: + src = DRAGDROP_SOURCE_CART; + break; default: break; } @@ -518,6 +521,9 @@ void ItemContainer::mouseReleased(MouseEvent &event) case InventoryType::NPC: dst = DRAGDROP_SOURCE_NPC; break; + case InventoryType::CART: + dst = DRAGDROP_SOURCE_CART; + break; default: break; } @@ -540,6 +546,34 @@ void ItemContainer::mouseReleased(MouseEvent &event) inventory = PlayerInfo::getStorageInventory(); } if (src == DRAGDROP_SOURCE_INVENTORY + && dst == DRAGDROP_SOURCE_CART) + { + srcContainer = InventoryType::INVENTORY; + dstContainer = InventoryType::CART; + inventory = PlayerInfo::getInventory(); + } + else if (src == DRAGDROP_SOURCE_CART + && dst == DRAGDROP_SOURCE_INVENTORY) + { + srcContainer = InventoryType::CART; + dstContainer = InventoryType::INVENTORY; + inventory = PlayerInfo::getCartInventory(); + } + else if (src == DRAGDROP_SOURCE_CART + && dst == DRAGDROP_SOURCE_STORAGE) + { + srcContainer = InventoryType::CART; + dstContainer = InventoryType::STORAGE; + inventory = PlayerInfo::getCartInventory(); + } + else if (src == DRAGDROP_SOURCE_STORAGE + && dst == DRAGDROP_SOURCE_CART) + { + srcContainer = InventoryType::STORAGE; + dstContainer = InventoryType::CART; + inventory = PlayerInfo::getStorageInventory(); + } + if (src == DRAGDROP_SOURCE_INVENTORY && dst == DRAGDROP_SOURCE_TRADE) { checkProtection = true; @@ -575,7 +609,7 @@ void ItemContainer::mouseReleased(MouseEvent &event) if (item) { if (srcContainer != -1) - { // inventory <--> storage + { // inventory <--> storage, cart inventoryHandler->moveItem2(srcContainer, item->getInvIndex(), item->getQuantity(), dstContainer); |