CHUI-236 : WIP : Modify the handling of FT_ROOT_INVENTORY which was creating havoc in LLInventoryModel instantiation. Still, some of those hack will have to come back on.

meow-7.2.2
merov_linden 2012-07-19 03:57:24 +01:00
parent be53b31fed
commit 15f6f877f9
2 changed files with 20 additions and 54 deletions

View File

@ -210,7 +210,7 @@ const LLViewerInventoryCategory *LLInventoryModel::getFirstNondefaultParent(cons
if (!cat) break;
const LLFolderType::EType folder_type = cat->getPreferredType();
if (folder_type != LLFolderType::FT_NONE &&
folder_type != LLFolderType::FT_ROOT_INVENTORY &&
// folder_type != LLFolderType::FT_ROOT_INVENTORY &&
!LLFolderType::lookupIsEnsembleType(folder_type))
{
return cat;
@ -380,11 +380,12 @@ const LLUUID LLInventoryModel::findCategoryUUIDForType(LLFolderType::EType prefe
LLUUID rv = LLUUID::null;
const LLUUID &root_id = (find_in_library) ? gInventory.getLibraryRootFolderID() : gInventory.getRootFolderID();
if(LLFolderType::FT_ROOT_INVENTORY == preferred_type)
{
rv = root_id;
}
else if (root_id.notNull())
// if(LLFolderType::FT_ROOT_INVENTORY == preferred_type)
// {
// rv = root_id;
// }
// else if (root_id.notNull())
if (root_id.notNull())
{
cat_array_t* cats = NULL;
cats = get_ptr_in_map(mParentChildCategoryTree, root_id);
@ -2026,11 +2027,11 @@ void LLInventoryModel::buildParentChildMap()
{
cat->setParent(findCategoryUUIDForType(LLFolderType::FT_LOST_AND_FOUND));
}
else if(LLFolderType::FT_ROOT_INVENTORY == pref)
{
// else if(LLFolderType::FT_ROOT_INVENTORY == pref)
// {
// it's the root
cat->setParent(LLUUID::null);
}
// cat->setParent(LLUUID::null);
// }
else
{
// it's a protected folder.
@ -2160,14 +2161,14 @@ void LLInventoryModel::buildParentChildMap()
if(category && category->getPreferredType() != LLFolderType::FT_ROOT_INVENTORY)
continue;
if ( category && 0 == LLStringUtil::compareInsensitive(name, category->getName()) )
{
if(category->getUUID()!=mRootFolderID)
{
LLUUID& new_inv_root_folder_id = const_cast<LLUUID&>(mRootFolderID);
new_inv_root_folder_id = category->getUUID();
}
}
// if ( category && 0 == LLStringUtil::compareInsensitive(name, category->getName()) )
// {
// if(category->getUUID()!=mRootFolderID)
// {
// LLUUID& new_inv_root_folder_id = const_cast<LLUUID&>(mRootFolderID);
// new_inv_root_folder_id = category->getUUID();
// }
// }
}
}

View File

@ -60,44 +60,9 @@ LLPlacesInventoryPanel::~LLPlacesInventoryPanel()
void LLPlacesInventoryPanel::buildFolderView(const LLInventoryPanel::Params& params)
{
// Determine the root folder in case specified, and
// build the views starting with that folder.
const LLFolderType::EType preferred_type = LLViewerFolderType::lookupTypeFromNewCategoryName(params.start_folder);
LLUUID root_id;
if ("LIBRARY" == params.start_folder())
{
root_id = gInventory.getLibraryRootFolderID();
}
else
{
root_id = (preferred_type != LLFolderType::FT_NONE ? gInventory.findCategoryUUIDForType(preferred_type) : LLUUID::null);
}
LLRect folder_rect(0,
0,
getRect().getWidth(),
0);
LLPlacesFolderView::Params p;
p.name = getName();
p.title = getLabel();
p.rect = folder_rect;
p.listener = mInvFVBridgeBuilder->createBridge(LLAssetType::AT_CATEGORY,
LLAssetType::AT_CATEGORY,
LLInventoryType::IT_CATEGORY,
this,
&mInventoryViewModel,
NULL,
root_id);
p.parent_panel = this;
p.allow_multiselect = mAllowMultiSelect;
p.use_ellipses = true; // truncate inventory item text so remove horizontal scroller
p.view_model = &mInventoryViewModel;
mFolderRoot = LLUICtrlFactory::create<LLPlacesFolderView>(p);
LLInventoryPanel::buildFolderView(params);
}
// save current folder open state
void LLPlacesInventoryPanel::saveFolderState()
{