From fd18c95c5f812ff86009b8833db23aae3385adf4 Mon Sep 17 00:00:00 2001 From: scrawl Date: Sat, 12 May 2012 20:35:50 +0200 Subject: [PATCH] implemented filters (no gui yet) --- apps/openmw/mwgui/container.cpp | 9 ++++++++- apps/openmw/mwgui/container.hpp | 3 +++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/apps/openmw/mwgui/container.cpp b/apps/openmw/mwgui/container.cpp index 84b1582cbd..c4407152df 100644 --- a/apps/openmw/mwgui/container.cpp +++ b/apps/openmw/mwgui/container.cpp @@ -29,6 +29,7 @@ using namespace Widgets; ContainerBase::ContainerBase(WindowManager& parWindowManager,DragAndDrop* dragAndDrop,std::string guiFile) : WindowBase(guiFile, parWindowManager), mDragAndDrop(dragAndDrop), + mFilter(MWWorld::ContainerStore::Type_All), mContainer() { getWidget(mContainerWidget, "Items"); @@ -95,6 +96,12 @@ void ContainerBase::setName(std::string contName) adjustWindowCaption(); } +void ContainerBase::setFilter(int filter) +{ + mFilter = filter; + drawItems(); +} + void ContainerBase::open(MWWorld::Ptr container) { mContainer = container; @@ -117,7 +124,7 @@ void ContainerBase::drawItems() int index = 0; - for (MWWorld::ContainerStoreIterator iter (containerStore.begin()); iter!=containerStore.end(); ++iter) + for (MWWorld::ContainerStoreIterator iter (containerStore.begin(mFilter)); iter!=containerStore.end(); ++iter) { index++; if(iter->getRefData().getCount() > 0) diff --git a/apps/openmw/mwgui/container.hpp b/apps/openmw/mwgui/container.hpp index 2552922f86..a34d22c775 100644 --- a/apps/openmw/mwgui/container.hpp +++ b/apps/openmw/mwgui/container.hpp @@ -52,6 +52,7 @@ namespace MWGui void open(MWWorld::Ptr container); void setName(std::string contName); + void setFilter(int filter); ///< set category filter void Update(); protected: @@ -61,6 +62,8 @@ namespace MWGui DragAndDrop* mDragAndDrop; MWWorld::Ptr mContainer; + int mFilter; + void onSelectedItem(MyGUI::Widget* _sender); void onContainerClicked(MyGUI::Widget* _sender);