SL-13178 Improve initial opening time of the landmarks floater

master
Mnikolenko Productengine 2020-05-05 19:08:55 +03:00
parent 3053f62483
commit 9c3368bbf6
5 changed files with 46 additions and 39 deletions

View File

@ -831,6 +831,7 @@ Khyota Wulluf
Kimar Coba
Kithrak Kirkorian
Kitty Barnett
BUG-228665
VWR-19699
STORM-288
STORM-799

View File

@ -1850,41 +1850,7 @@ void LLInventoryFavoriteItemsPanel::updateFavoritesRootFolder()
}
/************************************************************************/
/* 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;
};
void LLAssetFilteredInventoryPanel::initFromParams(const Params& p)
{

View File

@ -359,4 +359,43 @@ protected:
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

View File

@ -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();

View File

@ -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);