summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorMnikolenko Productengine <mnikolenko@productengine.com>2020-05-05 19:08:55 +0300
committerAndrey Kleshchev <andreykproductengine@lindenlab.com>2020-05-05 21:09:42 +0300
commite1504d8c562d11d538bcbafc6ffd22d56ff38491 (patch)
treee4efb53f31c46092655bc96fecbb68cddf5afeb1 /indra
parent4b0a2463914e8228bc8797e6720b92c89f7949c1 (diff)
SL-13178 Improve initial opening time of the landmarks floater
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/llinventorypanel.cpp34
-rw-r--r--indra/newview/llinventorypanel.h59
-rw-r--r--indra/newview/llplacesinventorypanel.cpp3
-rw-r--r--indra/newview/llplacesinventorypanel.h8
4 files changed, 65 insertions, 39 deletions
diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp
index 689ce7e66b..277dfe9e28 100644
--- a/indra/newview/llinventorypanel.cpp
+++ b/indra/newview/llinventorypanel.cpp
@@ -1836,41 +1836,7 @@ LLInventoryRecentItemsPanel::LLInventoryRecentItemsPanel( const Params& params)
/************************************************************************/
/* Asset Pre-Filtered Inventory Panel related class */
-/* Exchanges filter's flexibility for speed of generation and */
-/* improved performance */
/************************************************************************/
-class LLAssetFilteredInventoryPanel : public LLInventoryPanel
-{
-public:
- struct Params
- : public LLInitParam::Block<Params, LLInventoryPanel::Params>
- {
- Mandatory<std::string> filter_asset_type;
-
- Params() : filter_asset_type("filter_asset_type") {}
- };
-
- void initFromParams(const Params& p);
-protected:
- LLAssetFilteredInventoryPanel(const Params& p) : LLInventoryPanel(p) {}
- friend class LLUICtrlFactory;
-public:
- ~LLAssetFilteredInventoryPanel() {}
-
- /*virtual*/ BOOL handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
- EDragAndDropType cargo_type,
- void* cargo_data,
- EAcceptance* accept,
- std::string& tooltip_msg) override;
-
-protected:
- /*virtual*/ bool typedViewsFilter(const LLUUID& id, LLInventoryObject const* objectp) override;
- /*virtual*/ void itemChanged(const LLUUID& item_id, U32 mask, const LLInventoryObject* model_item) override;
-
-private:
- LLAssetType::EType mAssetType;
-};
-
void LLAssetFilteredInventoryPanel::initFromParams(const Params& p)
{
diff --git a/indra/newview/llinventorypanel.h b/indra/newview/llinventorypanel.h
index adca8ad3e2..cd504392e6 100644
--- a/indra/newview/llinventorypanel.h
+++ b/indra/newview/llinventorypanel.h
@@ -353,4 +353,63 @@ private:
bool mViewsInitialized; // Views have been generated
};
+
+class LLInventoryFavoriteItemsPanel : public LLInventoryPanel
+{
+public:
+ struct Params : public LLInitParam::Block<Params, LLInventoryPanel::Params>
+ {};
+
+ void initFromParams(const Params& p);
+ bool isSelectionRemovable() { return false; }
+ void setSelectCallback(const boost::function<void(const std::deque<LLFolderViewItem*>& items, BOOL user_action)>& cb);
+
+protected:
+ LLInventoryFavoriteItemsPanel(const Params& params);
+ ~LLInventoryFavoriteItemsPanel() { mFolderChangedSignal.disconnect(); }
+ void updateFavoritesRootFolder();
+
+ boost::signals2::connection mFolderChangedSignal;
+ boost::function<void(const std::deque<LLFolderViewItem*>& items, BOOL user_action)> mSelectionCallback;
+ friend class LLUICtrlFactory;
+};
+
+/************************************************************************/
+/* Asset Pre-Filtered Inventory Panel related class */
+/* Exchanges filter's flexibility for speed of generation and */
+/* improved performance */
+/************************************************************************/
+
+class LLAssetFilteredInventoryPanel : public LLInventoryPanel
+{
+public:
+ struct Params
+ : public LLInitParam::Block<Params, LLInventoryPanel::Params>
+ {
+ Mandatory<std::string> filter_asset_type;
+
+ Params() : filter_asset_type("filter_asset_type") {}
+ };
+
+ void initFromParams(const Params& p);
+protected:
+ LLAssetFilteredInventoryPanel(const Params& p) : LLInventoryPanel(p) {}
+ friend class LLUICtrlFactory;
+public:
+ ~LLAssetFilteredInventoryPanel() {}
+
+ /*virtual*/ BOOL handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
+ EDragAndDropType cargo_type,
+ void* cargo_data,
+ EAcceptance* accept,
+ std::string& tooltip_msg) override;
+
+protected:
+ /*virtual*/ LLFolderViewItem* buildNewViews(const LLUUID& id) override;
+ /*virtual*/ void itemChanged(const LLUUID& item_id, U32 mask, const LLInventoryObject* model_item) override;
+
+private:
+ LLAssetType::EType mAssetType;
+};
+
#endif // LL_LLINVENTORYPANEL_H
diff --git a/indra/newview/llplacesinventorypanel.cpp b/indra/newview/llplacesinventorypanel.cpp
index a23830e8e1..1c14acd843 100644
--- a/indra/newview/llplacesinventorypanel.cpp
+++ b/indra/newview/llplacesinventorypanel.cpp
@@ -43,9 +43,8 @@ static LLDefaultChildRegistry::Register<LLPlacesInventoryPanel> r("places_invent
static const LLPlacesInventoryBridgeBuilder PLACES_INVENTORY_BUILDER;
LLPlacesInventoryPanel::LLPlacesInventoryPanel(const Params& p) :
- LLInventoryPanel(p),
+ LLAssetFilteredInventoryPanel(p),
mSavedFolderState(NULL)
-
{
mInvFVBridgeBuilder = &PLACES_INVENTORY_BUILDER;
mSavedFolderState = new LLSaveFolderState();
diff --git a/indra/newview/llplacesinventorypanel.h b/indra/newview/llplacesinventorypanel.h
index 27d9b83bd1..5629438415 100644
--- a/indra/newview/llplacesinventorypanel.h
+++ b/indra/newview/llplacesinventorypanel.h
@@ -32,14 +32,16 @@
class LLLandmarksPanel;
class LLFolderView;
-class LLPlacesInventoryPanel : public LLInventoryPanel
+class LLPlacesInventoryPanel : public LLAssetFilteredInventoryPanel
{
public:
struct Params
- : public LLInitParam::Block<Params, LLInventoryPanel::Params>
+ : public LLInitParam::Block<Params, LLAssetFilteredInventoryPanel::Params>
{
Params()
- {}
+ {
+ filter_asset_type = "landmark";
+ }
};
LLPlacesInventoryPanel(const Params& p);