From cfb7aa4343e17fc810e0be72da1c965e72bd9673 Mon Sep 17 00:00:00 2001 From: gugus Date: Fri, 11 May 2012 12:50:30 +0200 Subject: [PATCH] Drag and drop works. There is a bug with item count when doing d&d. Clean-up time :p --- apps/openmw/mwgui/container.cpp | 11 ++++++----- apps/openmw/mwgui/container.hpp | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/apps/openmw/mwgui/container.cpp b/apps/openmw/mwgui/container.cpp index b4f38b4e17..fd69e1a658 100644 --- a/apps/openmw/mwgui/container.cpp +++ b/apps/openmw/mwgui/container.cpp @@ -203,6 +203,7 @@ void ContainerWindow::onSelectedItem(MyGUI::Widget* _sender) count++; if(count == item->mPos) { + mDragAndDrop->mStore.add(*iter); iter->getRefData().setCount(0); break; } @@ -232,16 +233,16 @@ void ContainerWindow::onContainerClicked(MyGUI::Widget* _sender) if(mDragAndDrop->mIsOnDragAndDrop) //drop widget here { ItemWidget* item = static_cast(mDragAndDrop->mDraggedWidget); - std::cout << item->mPos << item->mPtr.getTypeName(); + std::cout << item->mPos << (*mDragAndDrop->mStore.begin()).getTypeName(); if(item->mPtr.getContainerStore() == 0) std::cout << "nocontainer!"; - std::cout << item->mPtr.getContainerStore()->getType(item->mPtr); - MWWorld::Ptr ptr = item->mPtr; - //MWWorld::World - //mContainer.getContainerStore()->add(item->mPtr); + MWWorld::ContainerStore& containerStore = MWWorld::Class::get(mContainer).getContainerStore(mContainer); + containerStore.add(*mDragAndDrop->mStore.begin()); + mDragAndDrop->mStore.clear(); mDragAndDrop->mIsOnDragAndDrop = false; mDragAndDrop->mDraggedWidget->detachFromWidget(); mDragAndDrop->mDraggedWidget->attachToWidget(mContainerWidget); mDragAndDrop->mDraggedWidget = 0; mDragAndDrop->mContainerWindow = 0; + drawItems(); } } \ No newline at end of file diff --git a/apps/openmw/mwgui/container.hpp b/apps/openmw/mwgui/container.hpp index 08ac7eba24..0d047bacff 100644 --- a/apps/openmw/mwgui/container.hpp +++ b/apps/openmw/mwgui/container.hpp @@ -39,7 +39,7 @@ namespace MWGui ContainerWindow* mContainerWindow; MyGUI::Widget* mDraggedWidget; MyGUI::Widget* mDragAndDropWidget; - + MWWorld::ContainerStore mStore; MWWorld::Ptr mItem; };