OpenMW
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
sortfilteritemmodel.hpp
Go to the documentation of this file.
1 #ifndef MWGUI_SORT_FILTER_ITEM_MODEL_H
2 #define MWGUI_SORT_FILTER_ITEM_MODEL_H
3 
4 #include "itemmodel.hpp"
5 
6 namespace MWGui
7 {
8 
10  {
11  public:
12  SortFilterItemModel (ItemModel* sourceModel);
13 
14  virtual void update();
15 
16  bool filterAccepts (const ItemStack& item);
17 
18  bool allowedToUseItems() const;
19  virtual ItemStack getItem (ModelIndex index);
20  virtual size_t getItemCount();
21 
23  void addDragItem (const MWWorld::Ptr& dragItem, size_t count);
24  void clearDragItems();
25 
26  void setCategory (int category);
27  void setFilter (int filter);
28 
30  void setSortByType(bool sort) { mSortByType = sort; }
31 
32  void onClose();
33  bool onDropItem(const MWWorld::Ptr &item, int count);
34  bool onTakeItem(const MWWorld::Ptr &item, int count);
35 
36  static const int Category_Weapon = (1<<1);
37  static const int Category_Apparel = (1<<2);
38  static const int Category_Misc = (1<<3);
39  static const int Category_Magic = (1<<4);
40  static const int Category_All = 255;
41 
42  static const int Filter_OnlyIngredients = (1<<0);
43  static const int Filter_OnlyEnchanted = (1<<1);
44  static const int Filter_OnlyEnchantable = (1<<2);
45  static const int Filter_OnlyChargedSoulstones = (1<<3);
46  static const int Filter_OnlyUsableItems = (1<<4); // Only items with a Use action
47  static const int Filter_OnlyRepairable = (1<<5);
48  static const int Filter_OnlyRechargable = (1<<6);
49  static const int Filter_OnlyRepairTools = (1<<7);
50 
51 
52  private:
53  std::vector<ItemStack> mItems;
54 
55  std::vector<std::pair<MWWorld::Ptr, size_t> > mDragItems;
56 
57  int mCategory;
58  int mFilter;
60  };
61 
62 }
63 
64 #endif
virtual size_t getItemCount()
Definition: sortfilteritemmodel.cpp:267
static const int Filter_OnlyRepairable
Definition: sortfilteritemmodel.hpp:47
The base class that all item models should derive from.
Definition: itemmodel.hpp:43
std::vector< std::pair< MWWorld::Ptr, size_t > > mDragItems
Definition: sortfilteritemmodel.hpp:55
int mCategory
Definition: sortfilteritemmodel.hpp:57
static const int Filter_OnlyIngredients
Definition: sortfilteritemmodel.hpp:42
bool filterAccepts(const ItemStack &item)
Definition: sortfilteritemmodel.cpp:175
bool onTakeItem(const MWWorld::Ptr &item, int count)
Definition: sortfilteritemmodel.cpp:322
bool onDropItem(const MWWorld::Ptr &item, int count)
Definition: sortfilteritemmodel.cpp:317
A proxy item model can be used to filter or rearrange items from a source model (or even add new item...
Definition: itemmodel.hpp:88
A single item stack managed by an item model.
Definition: itemmodel.hpp:12
SortFilterItemModel(ItemModel *sourceModel)
Definition: sortfilteritemmodel.cpp:152
static const int Filter_OnlyEnchanted
Definition: sortfilteritemmodel.hpp:43
std::vector< ItemStack > mItems
Definition: sortfilteritemmodel.hpp:53
static const int Filter_OnlyRepairTools
Definition: sortfilteritemmodel.hpp:49
static const int Filter_OnlyUsableItems
Definition: sortfilteritemmodel.hpp:46
static const int Filter_OnlyEnchantable
Definition: sortfilteritemmodel.hpp:44
static const int Category_Weapon
Definition: sortfilteritemmodel.hpp:36
static const int Category_Misc
Definition: sortfilteritemmodel.hpp:38
static const int Category_Magic
Definition: sortfilteritemmodel.hpp:39
void addDragItem(const MWWorld::Ptr &dragItem, size_t count)
Dragged items are not displayed.
Definition: sortfilteritemmodel.cpp:165
void setFilter(int filter)
Definition: sortfilteritemmodel.cpp:277
virtual ItemStack getItem(ModelIndex index)
Throws for invalid index or out of range index.
Definition: sortfilteritemmodel.cpp:258
static const int Category_Apparel
Definition: sortfilteritemmodel.hpp:37
virtual void update()
Rebuild the item model, this will invalidate existing model indices.
Definition: sortfilteritemmodel.cpp:282
Definition: sortfilteritemmodel.hpp:9
int mFilter
Definition: sortfilteritemmodel.hpp:58
void setSortByType(bool sort)
Use ItemStack::Type for sorting?
Definition: sortfilteritemmodel.hpp:30
bool allowedToUseItems() const
Is the player allowed to use items from this item model? (default true)
Definition: sortfilteritemmodel.cpp:160
void setCategory(int category)
Definition: sortfilteritemmodel.cpp:272
static const int Filter_OnlyChargedSoulstones
Definition: sortfilteritemmodel.hpp:45
bool mSortByType
Definition: sortfilteritemmodel.hpp:59
void onClose()
Definition: sortfilteritemmodel.cpp:312
Pointer to a LiveCellRef.
Definition: ptr.hpp:19
static const int Category_All
Definition: sortfilteritemmodel.hpp:40
void clearDragItems()
Definition: sortfilteritemmodel.cpp:170
static const int Filter_OnlyRechargable
Definition: sortfilteritemmodel.hpp:48