diff options
author | Tofu Linden <tofu.linden@lindenlab.com> | 2010-05-14 10:22:24 +0100 |
---|---|---|
committer | Tofu Linden <tofu.linden@lindenlab.com> | 2010-05-14 10:22:24 +0100 |
commit | a5f365c331149b03366be421aa1597dfbcb1bb33 (patch) | |
tree | d792c599804e87f892cfcca12e8260e68be3855a /indra/newview/llinventoryitemslist.h | |
parent | 3ce4cecd681f3f95c7b1fe04db75c384d0b0854e (diff) | |
parent | 07678ad2db9ffca1cacdab4f28c63e01e8e6f514 (diff) |
merge from PE's viewer-trunk
Diffstat (limited to 'indra/newview/llinventoryitemslist.h')
-rw-r--r-- | indra/newview/llinventoryitemslist.h | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/indra/newview/llinventoryitemslist.h b/indra/newview/llinventoryitemslist.h index bc04eb6f5b..60cccc0f4f 100644 --- a/indra/newview/llinventoryitemslist.h +++ b/indra/newview/llinventoryitemslist.h @@ -42,6 +42,7 @@ // newview #include "llflatlistview.h" +#include "llviewerinventory.h" class LLIconCtrl; class LLTextBox; @@ -120,6 +121,9 @@ public: /* Removes item highlight */ /*virtual*/ void onMouseLeave(S32 x, S32 y, MASK mask); + /** Get the name of a corresponding inventory item */ + const std::string& getItemName() const { return mItem->getName(); } + virtual ~LLPanelInventoryListItemBase(){} protected: @@ -208,14 +212,23 @@ public: void refreshList(const LLDynamicArray<LLPointer<LLViewerInventoryItem> > item_array); + boost::signals2::connection setRefreshCompleteCallback(const commit_signal_t::slot_type& cb); + /** - * Let list know items need to be refreshed in next draw() + * Let list know items need to be refreshed in next doIdle() */ void setNeedsRefresh(bool needs_refresh){ mNeedsRefresh = needs_refresh; } bool getNeedsRefresh(){ return mNeedsRefresh; } - /*virtual*/ void draw(); + /** + * Idle routine used to refresh the list regardless of the current list + * visibility, unlike draw() which is called only for the visible list. + * This is needed for example to filter items of the list hidden by closed + * accordion tab. + */ + void doIdle(); // Real idle routine + static void idle(void* user_data); // static glue to doIdle() protected: friend class LLUICtrlFactory; @@ -225,7 +238,7 @@ protected: /** * Refreshes list items, adds new items and removes deleted items. - * Called from draw() until all new items are added, , + * Called from doIdle() until all new items are added, * maximum 50 items can be added during single call. */ void refresh(); @@ -245,6 +258,10 @@ private: uuid_vec_t mIDs; // IDs of items that were added in refreshList(). // Will be used in refresh() to determine added and removed ids bool mNeedsRefresh; + + bool mPrevVisibility; + + commit_signal_t mRefreshCompleteSignal; }; #endif //LL_LLINVENTORYITEMSLIST_H |