Route stuff back into llfolderview until we're ready for the full update.

This commit is contained in:
Inusaito Sayori
2015-07-30 20:59:59 -04:00
committed by Lirusaito
parent e38615d15b
commit 4b04bc573b

View File

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