summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/newview/llfolderview.cpp124
-rw-r--r--indra/newview/llfolderviewitem.cpp5
-rw-r--r--indra/newview/llinventorybridge.cpp47
-rw-r--r--indra/newview/llinventorybridge.h3
-rw-r--r--indra/newview/llinventorypanel.cpp37
-rw-r--r--indra/newview/llinventorypanel.h18
-rw-r--r--indra/newview/llpanelmarketplaceinboxinventory.cpp1
-rw-r--r--indra/newview/llpanelmarketplaceoutboxinventory.cpp1
-rw-r--r--indra/newview/llplacesinventorybridge.cpp5
-rw-r--r--indra/newview/llplacesinventorybridge.h1
-rw-r--r--indra/newview/llplacesinventorypanel.cpp1
11 files changed, 135 insertions, 108 deletions
diff --git a/indra/newview/llfolderview.cpp b/indra/newview/llfolderview.cpp
index a37fc7714b..0f7809d4b4 100644
--- a/indra/newview/llfolderview.cpp
+++ b/indra/newview/llfolderview.cpp
@@ -182,7 +182,6 @@ LLFolderView::LLFolderView(const Params& p)
mAutoSelectOverride(FALSE),
mNeedsAutoRename(FALSE),
mSortOrder(LLInventoryFilter::SO_FOLDERS_BY_NAME), // This gets overridden by a pref immediately
- mFilter(new LLInventoryFilter(LLInventoryFilter::Params().name(p.title))),
mShowSelectionContext(FALSE),
mShowSingleSelection(FALSE),
mArrangeGeneration(0),
@@ -288,9 +287,6 @@ LLFolderView::~LLFolderView( void )
mItems.clear();
mFolders.clear();
- delete mFilter;
- mFilter = NULL;
-
delete mViewModel;
mViewModel = NULL;
}
@@ -302,6 +298,9 @@ BOOL LLFolderView::canFocusChildren() const
BOOL LLFolderView::addFolder( LLFolderViewFolder* folder)
{
+ LLFolderViewFolder::addFolder(folder);
+
+ mFolders.remove(folder);
// enforce sort order of My Inventory followed by Library
if (((LLFolderViewModelItemInventory*)folder->getViewModelItem())->getUUID() == gInventory.getLibraryRootFolderID())
{
@@ -311,12 +310,7 @@ BOOL LLFolderView::addFolder( LLFolderViewFolder* folder)
{
mFolders.insert(mFolders.begin(), folder);
}
- folder->setOrigin(0, 0);
- folder->reshape(getRect().getWidth(), 0);
- folder->setVisible(FALSE);
- addChild( folder );
- folder->getViewModelItem()->dirtyFilter();
- folder->requestArrange();
+
return TRUE;
}
@@ -717,7 +711,7 @@ void LLFolderView::draw()
}
else if (mShowEmptyMessage)
{
- if (!mViewModel->contentsReady() || getLastFilterGeneration() < mFilter->getFirstSuccessGeneration())
+ if (!mViewModel->contentsReady() || getLastFilterGeneration() < getFolderViewModel()->getFilter()->getFirstSuccessGeneration())
{
// TODO RN: Get this from filter
mStatusText = LLTrans::getString("Searching");
@@ -952,37 +946,36 @@ void LLFolderView::openSelectedItems( void )
{
if(getVisible() && getEnabled())
{
- // TODO RN: move to LLFolderViewModelInventory
- //if (mSelectedItems.size() == 1)
- //{
- // mSelectedItems.front()->openItem();
- //}
- //else
- //{
- // LLMultiPreview* multi_previewp = new LLMultiPreview();
- // LLMultiProperties* multi_propertiesp = new LLMultiProperties();
-
- // selected_items_t::iterator item_it;
- // for (item_it = mSelectedItems.begin(); item_it != mSelectedItems.end(); ++item_it)
- // {
- // // IT_{OBJECT,ATTACHMENT} creates LLProperties
- // // floaters; others create LLPreviews. Put
- // // each one in the right type of container.
- // LLFolderViewModelItemInventory* listener = (*item_it)->getViewModelItem();
- // bool is_prop = listener && (listener->getInventoryType() == LLInventoryType::IT_OBJECT || listener->getInventoryType() == LLInventoryType::IT_ATTACHMENT);
- // if (is_prop)
- // LLFloater::setFloaterHost(multi_propertiesp);
- // else
- // LLFloater::setFloaterHost(multi_previewp);
- // (*item_it)->openItem();
- // }
-
- // LLFloater::setFloaterHost(NULL);
- // // *NOTE: LLMulti* will safely auto-delete when open'd
- // // without any children.
- // multi_previewp->openFloater(LLSD());
- // multi_propertiesp->openFloater(LLSD());
- //}
+ if (mSelectedItems.size() == 1)
+ {
+ mSelectedItems.front()->openItem();
+ }
+ else
+ {
+ LLMultiPreview* multi_previewp = new LLMultiPreview();
+ LLMultiProperties* multi_propertiesp = new LLMultiProperties();
+
+ selected_items_t::iterator item_it;
+ for (item_it = mSelectedItems.begin(); item_it != mSelectedItems.end(); ++item_it)
+ {
+ // IT_{OBJECT,ATTACHMENT} creates LLProperties
+ // floaters; others create LLPreviews. Put
+ // each one in the right type of container.
+ LLFolderViewModelItemInventory* listener = static_cast<LLFolderViewModelItemInventory*>((*item_it)->getViewModelItem());
+ bool is_prop = listener && (listener->getInventoryType() == LLInventoryType::IT_OBJECT || listener->getInventoryType() == LLInventoryType::IT_ATTACHMENT);
+ if (is_prop)
+ LLFloater::setFloaterHost(multi_propertiesp);
+ else
+ LLFloater::setFloaterHost(multi_previewp);
+ listener->openItem();
+ }
+
+ LLFloater::setFloaterHost(NULL);
+ // *NOTE: LLMulti* will safely auto-delete when open'd
+ // without any children.
+ multi_previewp->openFloater(LLSD());
+ multi_propertiesp->openFloater(LLSD());
+ }
}
}
@@ -990,28 +983,27 @@ void LLFolderView::propertiesSelectedItems( void )
{
if(getVisible() && getEnabled())
{
- // TODO RN: move to LLFolderViewModelInventory
- //if (mSelectedItems.size() == 1)
- //{
- // LLFolderViewItem* folder_item = mSelectedItems.front();
- // if(!folder_item) return;
- // folder_item->getViewModelItem()->showProperties();
- //}
- //else
- //{
- // LLMultiProperties* multi_propertiesp = new LLMultiProperties();
+ if (mSelectedItems.size() == 1)
+ {
+ LLFolderViewItem* folder_item = mSelectedItems.front();
+ if(!folder_item) return;
+ folder_item->getViewModelItem()->showProperties();
+ }
+ else
+ {
+ LLMultiProperties* multi_propertiesp = new LLMultiProperties();
- // LLFloater::setFloaterHost(multi_propertiesp);
+ LLFloater::setFloaterHost(multi_propertiesp);
- // selected_items_t::iterator item_it;
- // for (item_it = mSelectedItems.begin(); item_it != mSelectedItems.end(); ++item_it)
- // {
- // (*item_it)->getViewModelItem()->showProperties();
- // }
+ selected_items_t::iterator item_it;
+ for (item_it = mSelectedItems.begin(); item_it != mSelectedItems.end(); ++item_it)
+ {
+ (*item_it)->getViewModelItem()->showProperties();
+ }
- // LLFloater::setFloaterHost(NULL);
- // multi_propertiesp->openFloater(LLSD());
- //}
+ LLFloater::setFloaterHost(NULL);
+ multi_propertiesp->openFloater(LLSD());
+ }
}
}
@@ -1943,11 +1935,11 @@ void LLFolderView::doIdle()
LLFastTimer t2(FTM_INVENTORY);
- if (mFilter->isModified() && mFilter->isNotDefault())
+ if (getFolderViewModel()->getFilter()->isModified() && getFolderViewModel()->getFilter()->isNotDefault())
{
mNeedsAutoSelect = TRUE;
}
- mFilter->clearModified();
+ getFolderViewModel()->getFilter()->clearModified();
// filter to determine visibility before arranging
filter(*(getFolderViewModel()->getFilter()));
@@ -1958,7 +1950,7 @@ void LLFolderView::doIdle()
LLFastTimer t3(FTM_AUTO_SELECT);
// select new item only if a filtered item not currently selected
LLFolderViewItem* selected_itemp = mSelectedItems.empty() ? NULL : mSelectedItems.back();
- if (!mAutoSelectOverride && (!selected_itemp || selected_itemp->passedFilter()))
+ if (!mAutoSelectOverride && (!selected_itemp || !selected_itemp->getViewModelItem()->potentiallyVisible()))
{
// these are named variables to get around gcc not binding non-const references to rvalues
// and functor application is inherently non-const to allow for stateful functors
@@ -1968,7 +1960,7 @@ void LLFolderView::doIdle()
// Open filtered folders for folder views with mAutoSelectOverride=TRUE.
// Used by LLPlacesFolderView.
- if (mFilter->showAllResults())
+ if (getFolderViewModel()->getFilter()->showAllResults())
{
// these are named variables to get around gcc not binding non-const references to rvalues
// and functor application is inherently non-const to allow for stateful functors
@@ -1979,7 +1971,7 @@ void LLFolderView::doIdle()
scrollToShowSelection();
}
- BOOL filter_finished = getLastFilterGeneration() >= mFilter->getCurrentGeneration()
+ BOOL filter_finished = getLastFilterGeneration() >= getFolderViewModel()->getFilter()->getCurrentGeneration()
&& mViewModel->contentsReady();
if (filter_finished
|| gFocusMgr.childHasKeyboardFocus(inventory_panel)
diff --git a/indra/newview/llfolderviewitem.cpp b/indra/newview/llfolderviewitem.cpp
index f65a13be1e..685a4cbf49 100644
--- a/indra/newview/llfolderviewitem.cpp
+++ b/indra/newview/llfolderviewitem.cpp
@@ -123,7 +123,10 @@ LLFolderViewItem::LLFolderViewItem(const LLFolderViewItem::Params& p)
mListener(p.listener),
mIsMouseOverTitle(false)
{
- mListener->setFolderViewItem(this);
+ if (mListener)
+ {
+ mListener->setFolderViewItem(this);
+ }
}
BOOL LLFolderViewItem::postBuild()
diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp
index 45a2bffa6b..002278601a 100644
--- a/indra/newview/llinventorybridge.cpp
+++ b/indra/newview/llinventorybridge.cpp
@@ -1026,6 +1026,7 @@ LLInvFVBridge* LLInvFVBridge::createBridge(LLAssetType::EType asset_type,
LLAssetType::EType actual_asset_type,
LLInventoryType::EType inv_type,
LLInventoryPanel* inventory,
+ LLFolderViewModelInventory* view_model,
LLFolderView* root,
const LLUUID& uuid,
U32 flags)
@@ -1151,12 +1152,13 @@ LLInvFVBridge* LLInvFVBridge::createBridge(LLAssetType::EType asset_type,
default:
llinfos << "Unhandled asset type (llassetstorage.h): "
<< (S32)asset_type << " (" << LLAssetType::lookup(asset_type) << ")" << llendl;
- break;
+ break;
}
if (new_listener)
{
new_listener->mInvType = inv_type;
+ new_listener->setRootViewModel(view_model);
}
return new_listener;
@@ -1332,6 +1334,7 @@ LLInvFVBridge* LLInventoryFVBridgeBuilder::createBridge(LLAssetType::EType asset
LLAssetType::EType actual_asset_type,
LLInventoryType::EType inv_type,
LLInventoryPanel* inventory,
+ LLFolderViewModelInventory* view_model,
LLFolderView* root,
const LLUUID& uuid,
U32 flags /* = 0x00 */) const
@@ -1340,6 +1343,7 @@ LLInvFVBridge* LLInventoryFVBridgeBuilder::createBridge(LLAssetType::EType asset
actual_asset_type,
inv_type,
inventory,
+ view_model,
root,
uuid,
flags);
@@ -6472,41 +6476,30 @@ LLInvFVBridge* LLRecentInventoryBridgeBuilder::createBridge(
LLAssetType::EType actual_asset_type,
LLInventoryType::EType inv_type,
LLInventoryPanel* inventory,
+ LLFolderViewModelInventory* view_model,
LLFolderView* root,
const LLUUID& uuid,
U32 flags /*= 0x00*/ ) const
{
LLInvFVBridge* new_listener = NULL;
- switch(asset_type)
+ if (asset_type == LLAssetType::AT_CATEGORY
+ && actual_asset_type != LLAssetType::AT_LINK_FOLDER)
{
- case LLAssetType::AT_CATEGORY:
- if (actual_asset_type == LLAssetType::AT_LINK_FOLDER)
- {
- // *TODO: Create a link folder handler instead if it is necessary
- new_listener = LLInventoryFVBridgeBuilder::createBridge(
- asset_type,
- actual_asset_type,
- inv_type,
- inventory,
- root,
- uuid,
- flags);
- break;
- }
new_listener = new LLRecentItemsFolderBridge(inv_type, inventory, root, uuid);
- break;
- default:
- new_listener = LLInventoryFVBridgeBuilder::createBridge(
- asset_type,
- actual_asset_type,
- inv_type,
- inventory,
- root,
- uuid,
- flags);
+ new_listener->setRootViewModel(view_model);
+ }
+ else
+ {
+ new_listener = LLInventoryFVBridgeBuilder::createBridge(asset_type,
+ actual_asset_type,
+ inv_type,
+ inventory,
+ view_model,
+ root,
+ uuid,
+ flags);
}
return new_listener;
-
}
// EOF
diff --git a/indra/newview/llinventorybridge.h b/indra/newview/llinventorybridge.h
index b0582d003d..e235d9cf5f 100644
--- a/indra/newview/llinventorybridge.h
+++ b/indra/newview/llinventorybridge.h
@@ -66,6 +66,7 @@ public:
LLAssetType::EType actual_asset_type,
LLInventoryType::EType inv_type,
LLInventoryPanel* inventory,
+ LLFolderViewModelInventory* view_model,
LLFolderView* root,
const LLUUID& uuid,
U32 flags = 0x00);
@@ -196,6 +197,7 @@ public:
LLAssetType::EType actual_asset_type,
LLInventoryType::EType inv_type,
LLInventoryPanel* inventory,
+ LLFolderViewModelInventory* view_model,
LLFolderView* root,
const LLUUID& uuid,
U32 flags = 0x00) const;
@@ -645,6 +647,7 @@ public:
LLAssetType::EType actual_asset_type,
LLInventoryType::EType inv_type,
LLInventoryPanel* inventory,
+ LLFolderViewModelInventory* view_model,
LLFolderView* root,
const LLUUID& uuid,
U32 flags = 0x00) const;
diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp
index aba4c088ab..73e20fc684 100644
--- a/indra/newview/llinventorypanel.cpp
+++ b/indra/newview/llinventorypanel.cpp
@@ -234,6 +234,7 @@ void LLInventoryPanel::buildFolderView(const LLInventoryPanel::Params& params)
LLAssetType::AT_CATEGORY,
LLInventoryType::IT_CATEGORY,
this,
+ &mInventoryViewModel,
NULL,
root_id);
@@ -672,7 +673,7 @@ LLFolderView * LLInventoryPanel::createFolderView(LLInvFVBridge * bridge, bool u
p.parent_panel = this;
p.tool_tip = p.name;
p.listener = bridge;
- p.view_model = new LLFolderViewModelInventory();
+ p.view_model = &mInventoryViewModel;
p.use_label_suffix = useLabelSuffix;
p.allow_multiselect = mAllowMultiSelect;
p.show_empty_message = mShowEmptyMessage;
@@ -736,6 +737,7 @@ LLFolderViewItem* LLInventoryPanel::buildNewViews(const LLUUID& id)
objectp->getType(),
LLInventoryType::IT_CATEGORY,
this,
+ &mInventoryViewModel,
mFolderRoot,
objectp->getUUID());
if (new_listener)
@@ -751,6 +753,7 @@ LLFolderViewItem* LLInventoryPanel::buildNewViews(const LLUUID& id)
item->getActualType(),
item->getInventoryType(),
this,
+ &mInventoryViewModel,
mFolderRoot,
item->getUUID(),
item->getFlags());
@@ -1130,7 +1133,6 @@ LLInventoryPanel* LLInventoryPanel::getActiveInventoryPanel(BOOL auto_open)
if (!floater_inventory)
{
llwarns << "Could not find My Inventory floater" << llendl;
-
return FALSE;
}
@@ -1347,25 +1349,27 @@ LLInventoryRecentItemsPanel::LLInventoryRecentItemsPanel( const Params& params)
void LLFolderViewModelItemInventory::requestSort()
{
LLFolderViewModelItemCommon::requestSort();
- //TODO RN: need better way to get to root viewmodel, also consider reflecting hierarchy in viewmodel space as well
- if (static_cast<LLFolderViewModelInventory*>(mFolderViewItem->getRoot()->getFolderViewModel())->getSorter().isByDate())
+ if (mRootViewModel->getSorter().isByDate())
{
// sort by date potentially affects parent folders which use a date
// derived from newest item in them
- mFolderViewItem->getParentFolder()->getViewModelItem()->requestSort();
+ if (mParent)
+ {
+ mParent->requestSort();
+ }
}
}
bool LLFolderViewModelItemInventory::potentiallyVisible()
{
return passedFilter() // we've passed the filter
- || getLastFilterGeneration() < mFolderViewItem->getRoot()->getFolderViewModel()->getFilter()->getFirstSuccessGeneration() // or we don't know yet
+ || getLastFilterGeneration() < mRootViewModel->getFilter()->getFirstSuccessGeneration() // or we don't know yet
|| descendantsPassedFilter();
}
bool LLFolderViewModelItemInventory::passedFilter(S32 filter_generation)
{
- if (filter_generation < 0) filter_generation = mFolderViewItem->getRoot()->getFolderViewModel()->getFilter()->getFirstSuccessGeneration();
+ if (filter_generation < 0) filter_generation = mRootViewModel->getFilter()->getFirstSuccessGeneration();
return mPassedFolderFilter
&& mLastFilterGeneration >= filter_generation
&& (mPassedFilter || descendantsPassedFilter(filter_generation));
@@ -1373,7 +1377,7 @@ bool LLFolderViewModelItemInventory::passedFilter(S32 filter_generation)
bool LLFolderViewModelItemInventory::descendantsPassedFilter(S32 filter_generation)
{
- if (filter_generation < 0) filter_generation = mFolderViewItem->getRoot()->getFolderViewModel()->getFilter()->getFirstSuccessGeneration();
+ if (filter_generation < 0) filter_generation = mRootViewModel->getFilter()->getFirstSuccessGeneration();
return mMostFilteredDescendantGeneration >= filter_generation;
}
@@ -1419,8 +1423,9 @@ void LLFolderViewModelItemInventory::filterChildItem( LLFolderViewModelItem* ite
void LLFolderViewModelItemInventory::filter( LLFolderViewFilter& filter)
{
- if(getLastFilterGeneration() < filter.getFirstRequiredGeneration() // haven't checked descendants against minimum required generation to pass
- || descendantsPassedFilter(filter.getFirstRequiredGeneration())) // or at least one descendant has passed the minimum requirement
+ if(!mChildren.empty()
+ && (getLastFilterGeneration() < filter.getFirstRequiredGeneration() // haven't checked descendants against minimum required generation to pass
+ || descendantsPassedFilter(filter.getFirstRequiredGeneration()))) // or at least one descendant has passed the minimum requirement
{
// now query children
for (child_list_t::iterator iter = mChildren.begin();
@@ -1456,3 +1461,15 @@ void LLFolderViewModelItemInventory::filter( LLFolderViewFilter& filter)
filter.decrementFilterCount();
}
}
+
+LLFolderViewModelInventory* LLInventoryPanel::getFolderViewModel()
+{
+ return &mInventoryViewModel;
+}
+
+
+const LLFolderViewModelInventory* LLInventoryPanel::getFolderViewModel() const
+{
+ return &mInventoryViewModel;
+}
+
diff --git a/indra/newview/llinventorypanel.h b/indra/newview/llinventorypanel.h
index 35a3f9b5e1..55edf386d5 100644
--- a/indra/newview/llinventorypanel.h
+++ b/indra/newview/llinventorypanel.h
@@ -42,11 +42,19 @@
class LLInvFVBridge;
class LLInventoryFVBridgeBuilder;
class LLInvPanelComplObserver;
+class LLFolderViewModelInventory;
class LLFolderViewModelItemInventory
: public LLFolderViewModelItemCommon
{
public:
+ LLFolderViewModelItemInventory()
+ : mRootViewModel(NULL)
+ {}
+ void setRootViewModel(LLFolderViewModelInventory* root_view_model)
+ {
+ mRootViewModel = root_view_model;
+ }
virtual const LLUUID& getUUID() const = 0;
virtual time_t getCreationDate() const = 0; // UTC seconds
virtual void setCreationDate(time_t creation_date_utc) = 0;
@@ -68,6 +76,8 @@ public:
virtual void setPassedFilter(bool filtered, bool filtered_folder, S32 filter_generation);
virtual void filter( LLFolderViewFilter& filter);
virtual void filterChildItem( LLFolderViewModelItem* item, LLFolderViewFilter& filter);
+protected:
+ LLFolderViewModelInventory* mRootViewModel;
};
class LLInventorySort
@@ -243,8 +253,8 @@ public:
void setSelectionByID(const LLUUID& obj_id, BOOL take_keyboard_focus);
void updateSelection();
- LLFolderViewModelInventory* getFolderViewModel() { return &mViewModel; }
- const LLFolderViewModelInventory* getFolderViewModel() const { return &mViewModel; }
+ LLFolderViewModelInventory* getFolderViewModel();
+ const LLFolderViewModelInventory* getFolderViewModel() const;
protected:
void openStartFolderOrMyInventory(); // open the first level of inventory
@@ -262,8 +272,8 @@ protected:
LLFolderView* mFolderRoot;
LLScrollContainer* mScroller;
- LLFolderViewModelInventory mViewModel;
-
+ LLFolderViewModelInventory mInventoryViewModel;
+
std::map<LLUUID, LLFolderViewItem*> mItemMap;
/**
* Pointer to LLInventoryFVBridgeBuilder.
diff --git a/indra/newview/llpanelmarketplaceinboxinventory.cpp b/indra/newview/llpanelmarketplaceinboxinventory.cpp
index f3096e862d..6e5a522297 100644
--- a/indra/newview/llpanelmarketplaceinboxinventory.cpp
+++ b/indra/newview/llpanelmarketplaceinboxinventory.cpp
@@ -111,6 +111,7 @@ void LLInboxInventoryPanel::buildFolderView(const LLInventoryPanel::Params& para
LLAssetType::AT_CATEGORY,
LLInventoryType::IT_CATEGORY,
this,
+ &mInventoryViewModel,
NULL,
root_id);
diff --git a/indra/newview/llpanelmarketplaceoutboxinventory.cpp b/indra/newview/llpanelmarketplaceoutboxinventory.cpp
index 783eeb11b8..2885dd6266 100644
--- a/indra/newview/llpanelmarketplaceoutboxinventory.cpp
+++ b/indra/newview/llpanelmarketplaceoutboxinventory.cpp
@@ -77,6 +77,7 @@ void LLOutboxInventoryPanel::buildFolderView(const LLInventoryPanel::Params& par
LLAssetType::AT_CATEGORY,
LLInventoryType::IT_CATEGORY,
this,
+ &mInventoryViewModel,
NULL,
root_id);
diff --git a/indra/newview/llplacesinventorybridge.cpp b/indra/newview/llplacesinventorybridge.cpp
index 97c5d531d2..af29ab7ea9 100644
--- a/indra/newview/llplacesinventorybridge.cpp
+++ b/indra/newview/llplacesinventorybridge.cpp
@@ -151,6 +151,7 @@ LLInvFVBridge* LLPlacesInventoryBridgeBuilder::createBridge(
LLAssetType::EType actual_asset_type,
LLInventoryType::EType inv_type,
LLInventoryPanel* inventory,
+ LLFolderViewModelInventory* view_model,
LLFolderView* root,
const LLUUID& uuid,
U32 flags/* = 0x00*/) const
@@ -164,6 +165,7 @@ LLInvFVBridge* LLPlacesInventoryBridgeBuilder::createBridge(
llwarns << LLAssetType::lookup(asset_type) << " asset has inventory type " << LLInventoryType::lookupHumanReadable(inv_type) << " on uuid " << uuid << llendl;
}
new_listener = new LLPlacesLandmarkBridge(inv_type, inventory, root, uuid, flags);
+ new_listener->setRootViewModel(view_model);
break;
case LLAssetType::AT_CATEGORY:
if (actual_asset_type == LLAssetType::AT_LINK_FOLDER)
@@ -174,12 +176,14 @@ LLInvFVBridge* LLPlacesInventoryBridgeBuilder::createBridge(
actual_asset_type,
inv_type,
inventory,
+ view_model,
root,
uuid,
flags);
break;
}
new_listener = new LLPlacesFolderBridge(inv_type, inventory, root, uuid);
+ new_listener->setRootViewModel(view_model);
break;
default:
new_listener = LLInventoryFVBridgeBuilder::createBridge(
@@ -187,6 +191,7 @@ LLInvFVBridge* LLPlacesInventoryBridgeBuilder::createBridge(
actual_asset_type,
inv_type,
inventory,
+ view_model,
root,
uuid,
flags);
diff --git a/indra/newview/llplacesinventorybridge.h b/indra/newview/llplacesinventorybridge.h
index 52beacef9c..791502990b 100644
--- a/indra/newview/llplacesinventorybridge.h
+++ b/indra/newview/llplacesinventorybridge.h
@@ -89,6 +89,7 @@ public:
LLAssetType::EType actual_asset_type,
LLInventoryType::EType inv_type,
LLInventoryPanel* inventory,
+ LLFolderViewModelInventory* view_model,
LLFolderView* root,
const LLUUID& uuid,
U32 flags = 0x00) const;
diff --git a/indra/newview/llplacesinventorypanel.cpp b/indra/newview/llplacesinventorypanel.cpp
index 1c2d75d88c..d95d5eac19 100644
--- a/indra/newview/llplacesinventorypanel.cpp
+++ b/indra/newview/llplacesinventorypanel.cpp
@@ -87,6 +87,7 @@ void LLPlacesInventoryPanel::buildFolderView(const LLInventoryPanel::Params& par
LLAssetType::AT_CATEGORY,
LLInventoryType::IT_CATEGORY,
this,
+ &mInventoryViewModel,
NULL,
root_id);
p.parent_panel = this;