summaryrefslogtreecommitdiff
path: root/indra/newview/llinventorypanel.h
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llinventorypanel.h')
-rw-r--r--indra/newview/llinventorypanel.h71
1 files changed, 62 insertions, 9 deletions
diff --git a/indra/newview/llinventorypanel.h b/indra/newview/llinventorypanel.h
index 2c782a5ea7..fb2419ada7 100644
--- a/indra/newview/llinventorypanel.h
+++ b/indra/newview/llinventorypanel.h
@@ -159,22 +159,23 @@ public:
LLFolderViewModelInventory& getRootViewModel() { return mInventoryViewModel; }
// LLView methods
- /*virtual*/ void onVisibilityChange(BOOL new_visibility);
- void draw();
- /*virtual*/ BOOL handleKeyHere( KEY key, MASK mask );
- BOOL handleHover(S32 x, S32 y, MASK mask);
+ /*virtual*/ void onVisibilityChange(BOOL new_visibility) override;
+ void draw() override;
+ /*virtual*/ BOOL handleKeyHere( KEY key, MASK mask ) override;
+ BOOL handleHover(S32 x, S32 y, MASK mask) override;
/*virtual*/ BOOL handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
EDragAndDropType cargo_type,
void* cargo_data,
EAcceptance* accept,
- std::string& tooltip_msg);
+ std::string& tooltip_msg) override;
+ BOOL handleToolTip(S32 x, S32 y, MASK mask) override;
// LLUICtrl methods
- /*virtual*/ void onFocusLost();
- /*virtual*/ void onFocusReceived();
+ /*virtual*/ void onFocusLost() override;
+ /*virtual*/ void onFocusReceived() override;
void onFolderOpening(const LLUUID &id);
// LLBadgeHolder methods
- bool addBadge(LLBadge * badge);
+ bool addBadge(LLBadge * badge) override;
// Call this method to set the selection.
void openAllFolders();
@@ -221,6 +222,7 @@ public:
void doCreate(const LLSD& userdata);
bool beginIMSession();
void fileUploadLocation(const LLSD& userdata);
+ void openSingleViewInventory(LLUUID folder_id = LLUUID());
void purgeSelectedItems();
bool attachObject(const LLSD& userdata);
static void idle(void* user_data);
@@ -244,7 +246,7 @@ public:
BOOL main_panel = FALSE,
BOOL take_keyboard_focus = TAKE_FOCUS_YES,
BOOL reset_filter = FALSE);
-
+ static void setSFViewAndOpenFolder(const LLInventoryPanel* panel, const LLUUID& folder_id);
void addItemID(const LLUUID& id, LLFolderViewItem* itemp);
void removeItemID(const LLUUID& id);
LLFolderViewItem* getItemByID(const LLUUID& id);
@@ -262,6 +264,8 @@ public:
static void callbackPurgeSelectedItems(const LLSD& notification, const LLSD& response, const std::vector<LLUUID> inventory_selected);
+ void changeFolderRoot(const LLUUID& new_id) {};
+
protected:
void openStartFolderOrMyInventory(); // open the first level of inventory
void onItemsCompletion(); // called when selected items are complete
@@ -381,6 +385,55 @@ private:
std::deque<LLUUID> mBuildViewsQueue;
};
+
+class LLInventorySingleFolderPanel : public LLInventoryPanel
+{
+public:
+ struct Params : public LLInitParam::Block<Params, LLInventoryPanel::Params>
+ {};
+
+ void initFromParams(const Params& p);
+ bool isSelectionRemovable() { return false; }
+
+ void openInCurrentWindow(const LLSD& userdata);
+ void changeFolderRoot(const LLUUID& new_id);
+ void onForwardFolder();
+ void onBackwardFolder();
+ void clearNavigationHistory();
+ LLUUID getSingleFolderRoot() { return mFolderID; }
+
+ void doCreate(const LLSD& userdata);
+
+ bool isBackwardAvailable();
+ bool isForwardAvailable();
+
+ bool hasVisibleItems();
+
+ void setNavBackwardList(std::list<LLUUID> backward_list) { mBackwardFolders = backward_list; }
+ void setNavForwardList(std::list<LLUUID> forward_list) { mForwardFolders = forward_list; }
+ std::list<LLUUID> getNavBackwardList() { return mBackwardFolders; }
+ std::list<LLUUID> getNavForwardList() { return mForwardFolders; }
+
+ void setSelectCallback(const boost::function<void (const std::deque<LLFolderViewItem*>& items, BOOL user_action)>& cb);
+
+ typedef boost::function<void()> root_changed_callback_t;
+ boost::signals2::connection setRootChangedCallback(root_changed_callback_t cb);
+
+protected:
+ LLInventorySingleFolderPanel(const Params& params);
+ ~LLInventorySingleFolderPanel();
+ void updateSingleFolderRoot();
+
+ boost::function<void(const std::deque<LLFolderViewItem*>& items, BOOL user_action)> mSelectionCallback;
+ friend class LLUICtrlFactory;
+
+ LLUUID mFolderID;
+ std::list<LLUUID> mBackwardFolders;
+ std::list<LLUUID> mForwardFolders;
+
+ boost::signals2::signal<void()> mRootChangedSignal;
+};
+
/************************************************************************/
/* Asset Pre-Filtered Inventory Panel related class */
/* Exchanges filter's flexibility for speed of generation and */