Route stuff back into llfolderview until we're ready for the full update.
This commit is contained in:
committed by
Lirusaito
parent
e38615d15b
commit
4b04bc573b
@@ -195,7 +195,7 @@ void LLInventoryPanel::buildFolderView()
|
|||||||
LLFolderView* folder_view = createFolderView(new_listener, true/*params.use_label_suffix()*/);
|
LLFolderView* folder_view = createFolderView(new_listener, true/*params.use_label_suffix()*/);
|
||||||
mFolderRoot = folder_view->getHandle();
|
mFolderRoot = folder_view->getHandle();
|
||||||
|
|
||||||
addItemID(root_id, mFolderRoot.get());
|
//addItemID(root_id, mFolderRoot.get());
|
||||||
}
|
}
|
||||||
BOOL LLInventoryPanel::postBuild()
|
BOOL LLInventoryPanel::postBuild()
|
||||||
{
|
{
|
||||||
@@ -374,7 +374,7 @@ LLView* LLInventoryPanel::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFac
|
|||||||
void LLInventoryPanel::draw()
|
void LLInventoryPanel::draw()
|
||||||
{
|
{
|
||||||
// Select the desired item (in case it wasn't loaded when the selection was requested)
|
// Select the desired item (in case it wasn't loaded when the selection was requested)
|
||||||
mFolderRoot.get()->updateSelection();
|
updateSelection();
|
||||||
|
|
||||||
LLPanel::draw();
|
LLPanel::draw();
|
||||||
}
|
}
|
||||||
@@ -392,7 +392,9 @@ const LLInventoryFilter& LLInventoryPanel::getFilter() const
|
|||||||
void LLInventoryPanel::setFilterTypes(U64 types, LLInventoryFilter::EFilterType filter_type)
|
void LLInventoryPanel::setFilterTypes(U64 types, LLInventoryFilter::EFilterType filter_type)
|
||||||
{
|
{
|
||||||
if (filter_type == LLInventoryFilter::FILTERTYPE_OBJECT)
|
if (filter_type == LLInventoryFilter::FILTERTYPE_OBJECT)
|
||||||
|
{
|
||||||
getFilter().setFilterObjectTypes(types);
|
getFilter().setFilterObjectTypes(types);
|
||||||
|
}
|
||||||
if (filter_type == LLInventoryFilter::FILTERTYPE_CATEGORY)
|
if (filter_type == LLInventoryFilter::FILTERTYPE_CATEGORY)
|
||||||
getFilter().setFilterCategoryTypes(types);
|
getFilter().setFilterCategoryTypes(types);
|
||||||
}
|
}
|
||||||
@@ -510,6 +512,7 @@ LLInventoryFilter::EFolderShow LLInventoryPanel::getShowFolderState()
|
|||||||
return getFilter().getShowFolderState();
|
return getFilter().getShowFolderState();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Called when something changed in the global model (new item, item coming through the wire, rename, move, etc...) (CHUI-849)
|
||||||
void LLInventoryPanel::modelChanged(U32 mask)
|
void LLInventoryPanel::modelChanged(U32 mask)
|
||||||
{
|
{
|
||||||
static LLTrace::BlockTimerStatHandle FTM_REFRESH("Inventory Refresh");
|
static LLTrace::BlockTimerStatHandle FTM_REFRESH("Inventory Refresh");
|
||||||
@@ -529,7 +532,7 @@ void LLInventoryPanel::modelChanged(U32 mask)
|
|||||||
{
|
{
|
||||||
const LLUUID& item_id = (*items_iter);
|
const LLUUID& item_id = (*items_iter);
|
||||||
const LLInventoryObject* model_item = model->getObject(item_id);
|
const LLInventoryObject* model_item = model->getObject(item_id);
|
||||||
LLFolderViewItem* view_item = mFolderRoot.get()->getItemByID(item_id);
|
LLFolderViewItem* view_item = getItemByID(item_id);
|
||||||
|
|
||||||
// LLFolderViewFolder is derived from LLFolderViewItem so dynamic_cast from item
|
// LLFolderViewFolder is derived from LLFolderViewItem so dynamic_cast from item
|
||||||
// to folder is the fast way to get a folder without searching through folders tree.
|
// to folder is the fast way to get a folder without searching through folders tree.
|
||||||
@@ -573,9 +576,9 @@ void LLInventoryPanel::modelChanged(U32 mask)
|
|||||||
{
|
{
|
||||||
if (model_item && view_item)
|
if (model_item && view_item)
|
||||||
{
|
{
|
||||||
const LLUUID& idp = view_item->getListener()->getUUID();
|
//const LLUUID& idp = view_item->getListener()->getUUID();
|
||||||
view_item->destroyView();
|
view_item->destroyView();
|
||||||
removeItemID(idp);
|
//removeItemID(idp);
|
||||||
}
|
}
|
||||||
view_item = buildNewViews(item_id);
|
view_item = buildNewViews(item_id);
|
||||||
view_folder = dynamic_cast<LLFolderViewFolder *>(view_item);
|
view_folder = dynamic_cast<LLFolderViewFolder *>(view_item);
|
||||||
@@ -631,19 +634,20 @@ void LLInventoryPanel::modelChanged(U32 mask)
|
|||||||
// This item already exists in both memory and UI. It was probably reparented.
|
// This item already exists in both memory and UI. It was probably reparented.
|
||||||
else if (model_item && view_item)
|
else if (model_item && view_item)
|
||||||
{
|
{
|
||||||
|
LLFolderViewFolder* old_parent = view_item->getParentFolder();
|
||||||
// Don't process the item if it is the root
|
// Don't process the item if it is the root
|
||||||
if (view_item->getRoot() != view_item)
|
if (view_item->getRoot() != view_item)
|
||||||
{
|
{
|
||||||
LLFolderViewFolder* new_parent = (LLFolderViewFolder*)mFolderRoot.get()->getItemByID(model_item->getParentUUID());
|
LLFolderViewFolder* new_parent = (LLFolderViewFolder*)getItemByID(model_item->getParentUUID());
|
||||||
// Item has been moved.
|
// Item has been moved.
|
||||||
if (view_item->getParentFolder() != new_parent)
|
if (old_parent != new_parent)
|
||||||
{
|
{
|
||||||
if (new_parent != NULL)
|
if (new_parent != NULL)
|
||||||
{
|
{
|
||||||
// Item is to be moved and we found its new parent in the panel's directory, so move the item's UI.
|
// Item is to be moved and we found its new parent in the panel's directory, so move the item's UI.
|
||||||
view_item->getParentFolder()->extractItem(view_item);
|
view_item->getParentFolder()->extractItem(view_item);
|
||||||
view_item->addToFolder(new_parent, mFolderRoot.get());
|
view_item->addToFolder(new_parent, mFolderRoot.get());
|
||||||
addItemID(view_item->getListener()->getUUID(), view_item);
|
//addItemID(view_item->getListener()->getUUID(), view_item);
|
||||||
if (mInventory)
|
if (mInventory)
|
||||||
{
|
{
|
||||||
const LLUUID trash_id = mInventory->findCategoryUUIDForType(LLFolderType::FT_TRASH);
|
const LLUUID trash_id = mInventory->findCategoryUUIDForType(LLFolderType::FT_TRASH);
|
||||||
@@ -657,7 +661,7 @@ void LLInventoryPanel::modelChanged(U32 mask)
|
|||||||
{
|
{
|
||||||
// Remove the item ID before destroying the view because the view-model-item gets
|
// Remove the item ID before destroying the view because the view-model-item gets
|
||||||
// destroyed when the view is destroyed
|
// destroyed when the view is destroyed
|
||||||
removeItemID(view_item->getListener()->getUUID());
|
//removeItemID(view_item->getListener()->getUUID());
|
||||||
|
|
||||||
// Item is to be moved outside the panel's directory (e.g. moved to trash for a panel that
|
// Item is to be moved outside the panel's directory (e.g. moved to trash for a panel that
|
||||||
// doesn't include trash). Just remove the item's UI.
|
// doesn't include trash). Just remove the item's UI.
|
||||||
@@ -674,7 +678,7 @@ void LLInventoryPanel::modelChanged(U32 mask)
|
|||||||
{
|
{
|
||||||
// Remove the item's UI.
|
// Remove the item's UI.
|
||||||
LLFolderViewFolder* parent = view_item->getParentFolder();
|
LLFolderViewFolder* parent = view_item->getParentFolder();
|
||||||
removeItemID(view_item->getListener()->getUUID());
|
//removeItemID(view_item->getListener()->getUUID());
|
||||||
view_item->destroyView();
|
view_item->destroyView();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -734,14 +738,14 @@ void LLInventoryPanel::initializeViews()
|
|||||||
if (gAgent.isFirstLogin())
|
if (gAgent.isFirstLogin())
|
||||||
{
|
{
|
||||||
// Auto open the user's library
|
// Auto open the user's library
|
||||||
LLFolderViewFolder* lib_folder = mFolderRoot.get()->getFolderByID(gInventory.getLibraryRootFolderID());
|
LLFolderViewFolder* lib_folder = getFolderByID(gInventory.getLibraryRootFolderID());
|
||||||
if (lib_folder)
|
if (lib_folder)
|
||||||
{
|
{
|
||||||
lib_folder->setOpen(TRUE);
|
lib_folder->setOpen(TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Auto close the user's my inventory folder
|
// Auto close the user's my inventory folder
|
||||||
LLFolderViewFolder* my_inv_folder = mFolderRoot.get()->getFolderByID(gInventory.getRootFolderID());
|
LLFolderViewFolder* my_inv_folder = getFolderByID(gInventory.getRootFolderID());
|
||||||
if (my_inv_folder)
|
if (my_inv_folder)
|
||||||
{
|
{
|
||||||
my_inv_folder->setOpenArrangeRecursively(FALSE, LLFolderViewFolder::RECURSE_DOWN);
|
my_inv_folder->setOpenArrangeRecursively(FALSE, LLFolderViewFolder::RECURSE_DOWN);
|
||||||
@@ -810,10 +814,10 @@ LLFolderViewItem* LLInventoryPanel::buildNewViews(const LLUUID& id)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
LLFolderViewItem* folder_view_item = mFolderRoot.get()->getItemByID(id);
|
LLFolderViewItem* folder_view_item = getItemByID(id);
|
||||||
|
|
||||||
const LLUUID& parent_id = objectp->getParentUUID();
|
const LLUUID& parent_id = objectp->getParentUUID();
|
||||||
LLFolderViewFolder* parent_folder = (LLFolderViewFolder*)mFolderRoot.get()->getItemByID(parent_id);
|
LLFolderViewFolder* parent_folder = (LLFolderViewFolder*)getItemByID(parent_id);
|
||||||
LLUUID root_id = getRootFolderID();
|
LLUUID root_id = getRootFolderID();
|
||||||
|
|
||||||
// Force the creation of an extra root level folder item if required by the inventory panel (default is "false")
|
// Force the creation of an extra root level folder item if required by the inventory panel (default is "false")
|
||||||
@@ -893,7 +897,7 @@ LLFolderViewItem* LLInventoryPanel::buildNewViews(const LLUUID& id)
|
|||||||
{
|
{
|
||||||
llassert(parent_folder != NULL);
|
llassert(parent_folder != NULL);
|
||||||
folder_view_item->addToFolder(parent_folder, mFolderRoot.get());
|
folder_view_item->addToFolder(parent_folder, mFolderRoot.get());
|
||||||
addItemID(id, folder_view_item);
|
//addItemID(id, folder_view_item);
|
||||||
// In the case of the root folder been shown, open that folder by default once the widget is created
|
// In the case of the root folder been shown, open that folder by default once the widget is created
|
||||||
if (create_root)
|
if (create_root)
|
||||||
{
|
{
|
||||||
@@ -995,7 +999,8 @@ BOOL LLInventoryPanel::handleHover(S32 x, S32 y, MASK mask)
|
|||||||
BOOL handled = LLView::handleHover(x, y, mask);
|
BOOL handled = LLView::handleHover(x, y, mask);
|
||||||
if(handled)
|
if(handled)
|
||||||
{
|
{
|
||||||
if (LLInventoryModelBackgroundFetch::instance().folderFetchActive())
|
ECursorType cursor = getWindow()->getCursor();
|
||||||
|
if (LLInventoryModelBackgroundFetch::instance().folderFetchActive() && cursor == UI_CURSOR_ARROW)
|
||||||
{
|
{
|
||||||
// replace arrow cursor with arrow and hourglass cursor
|
// replace arrow cursor with arrow and hourglass cursor
|
||||||
getWindow()->setCursor(UI_CURSOR_WORKING);
|
getWindow()->setCursor(UI_CURSOR_WORKING);
|
||||||
@@ -1232,9 +1237,11 @@ void LLInventoryPanel::removeItemID(const LLUUID& id)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static LLFastTimer::DeclareTimer FTM_GET_ITEM_BY_ID("Get FolderViewItem by ID");
|
//static LLFastTimer::DeclareTimer FTM_GET_ITEM_BY_ID("Get FolderViewItem by ID");
|
||||||
LLFolderViewItem* LLInventoryPanel::getItemByID(const LLUUID& id)
|
LLFolderViewItem* LLInventoryPanel::getItemByID(const LLUUID& id)
|
||||||
{
|
{
|
||||||
|
return mFolderRoot.get()->getItemByID(id);
|
||||||
|
/*
|
||||||
LLFastTimer mew(FTM_GET_ITEM_BY_ID);
|
LLFastTimer mew(FTM_GET_ITEM_BY_ID);
|
||||||
|
|
||||||
std::map<LLUUID, LLFolderViewItem*>::iterator map_it;
|
std::map<LLUUID, LLFolderViewItem*>::iterator map_it;
|
||||||
@@ -1244,17 +1251,23 @@ LLFolderViewItem* LLInventoryPanel::getItemByID(const LLUUID& id)
|
|||||||
return map_it->second;
|
return map_it->second;
|
||||||
}
|
}
|
||||||
|
|
||||||
return NULL;
|
return NULL;*/
|
||||||
}
|
}
|
||||||
|
|
||||||
LLFolderViewFolder* LLInventoryPanel::getFolderByID(const LLUUID& id)
|
LLFolderViewFolder* LLInventoryPanel::getFolderByID(const LLUUID& id)
|
||||||
{
|
{
|
||||||
|
return mFolderRoot.get()->getFolderByID(id);
|
||||||
|
/*
|
||||||
LLFolderViewItem* item = getItemByID(id);
|
LLFolderViewItem* item = getItemByID(id);
|
||||||
return dynamic_cast<LLFolderViewFolder*>(item);
|
return dynamic_cast<LLFolderViewFolder*>(item);
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void LLInventoryPanel::setSelectionByID( const LLUUID& obj_id, BOOL take_keyboard_focus )
|
void LLInventoryPanel::setSelectionByID( const LLUUID& obj_id, BOOL take_keyboard_focus )
|
||||||
{
|
{
|
||||||
|
mFolderRoot.get()->setSelectionByID(obj_id, take_keyboard_focus);
|
||||||
|
/*
|
||||||
LLFolderViewItem* itemp = getItemByID(obj_id);
|
LLFolderViewItem* itemp = getItemByID(obj_id);
|
||||||
if(itemp && itemp->getListener())
|
if(itemp && itemp->getListener())
|
||||||
{
|
{
|
||||||
@@ -1266,15 +1279,18 @@ void LLInventoryPanel::setSelectionByID( const LLUUID& obj_id, BOOL take_keyb
|
|||||||
{
|
{
|
||||||
// save the desired item to be selected later (if/when ready)
|
// save the desired item to be selected later (if/when ready)
|
||||||
mSelectThisID = obj_id;
|
mSelectThisID = obj_id;
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
void LLInventoryPanel::updateSelection()
|
void LLInventoryPanel::updateSelection()
|
||||||
{
|
{
|
||||||
|
mFolderRoot.get()->updateSelection();
|
||||||
|
/*
|
||||||
if (mSelectThisID.notNull())
|
if (mSelectThisID.notNull())
|
||||||
{
|
{
|
||||||
setSelectionByID(mSelectThisID, false);
|
setSelectionByID(mSelectThisID, false);
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace LLInventoryAction
|
namespace LLInventoryAction
|
||||||
|
|||||||
Reference in New Issue
Block a user