diff options
-rw-r--r-- | indra/newview/llappearancemgr.cpp | 10 | ||||
-rw-r--r-- | indra/newview/llfolderviewitem.cpp | 40 | ||||
-rw-r--r-- | indra/newview/llpaneloutfitsinventory.cpp | 4 | ||||
-rw-r--r-- | indra/newview/llsidepanelappearance.cpp | 1 |
4 files changed, 36 insertions, 19 deletions
diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp index 60c6061e96..23ac49f047 100644 --- a/indra/newview/llappearancemgr.cpp +++ b/indra/newview/llappearancemgr.cpp @@ -530,6 +530,7 @@ void LLAppearanceManager::updateCOF(const LLUUID& category, bool append) linkAll(cof, obj_items, link_waiter); linkAll(cof, gest_items, link_waiter); + LLSidepanelAppearance* panel_appearance = dynamic_cast<LLSidepanelAppearance *>(LLSideTray::getInstance()->getPanel("sidepanel_appearance")); // Add link to outfit if category is an outfit. LLViewerInventoryCategory* catp = gInventory.getCategory(category); if (!append && catp && catp->getPreferredType() == LLFolderType::FT_OUTFIT) @@ -538,13 +539,18 @@ void LLAppearanceManager::updateCOF(const LLUUID& category, bool append) LLAssetType::AT_LINK_FOLDER, link_waiter); // Update the current outfit name of the appearance sidepanel. - LLSidepanelAppearance* panel_appearance = dynamic_cast<LLSidepanelAppearance *>(LLSideTray::getInstance()->getPanel("sidepanel_appearance")); if (panel_appearance) { panel_appearance->refreshCurrentOutfitName(catp->getName()); } } - + else + { + if (panel_appearance) + { + panel_appearance->refreshCurrentOutfitName(""); + } + } } void LLAppearanceManager::updateAgentWearables(LLWearableHoldingPattern* holder, bool append) diff --git a/indra/newview/llfolderviewitem.cpp b/indra/newview/llfolderviewitem.cpp index bf74c5c936..1096f25f0c 100644 --- a/indra/newview/llfolderviewitem.cpp +++ b/indra/newview/llfolderviewitem.cpp @@ -1253,6 +1253,10 @@ void LLFolderViewFolder::filter( LLInventoryFilter& filter) // filter self only on first pass through LLFolderViewItem::filter( filter ); } + if (mDontShowInHierarchy) + { + setOpen(); + } } if (getRoot()->getDebugFilters()) @@ -1286,9 +1290,10 @@ void LLFolderViewFolder::filter( LLInventoryFilter& filter) // now query children for (folders_t::iterator iter = mFolders.begin(); - iter != mFolders.end();) + iter != mFolders.end(); + ++iter) { - folders_t::iterator fit = iter++; + LLFolderViewFolder* folder = (*iter); // have we run out of iterations this frame? if (filter.getFilterCount() < 0) { @@ -1298,15 +1303,15 @@ void LLFolderViewFolder::filter( LLInventoryFilter& filter) // mMostFilteredDescendantGeneration might have been reset // in which case we need to update it even for folders that // don't need to be filtered anymore - if ((*fit)->getCompletedFilterGeneration() >= filter_generation) + if (folder->getCompletedFilterGeneration() >= filter_generation) { // track latest generation to pass any child items - if ((*fit)->getFiltered() || (*fit)->hasFilteredDescendants(filter.getMinRequiredGeneration())) + if (folder->getFiltered() || folder->hasFilteredDescendants(filter.getMinRequiredGeneration())) { mMostFilteredDescendantGeneration = filter_generation; if (getRoot()->needsAutoSelect() && autoopen_folders) { - (*fit)->setOpenArrangeRecursively(TRUE); + folder->setOpenArrangeRecursively(TRUE); } } // just skip it, it has already been filtered @@ -1314,48 +1319,49 @@ void LLFolderViewFolder::filter( LLInventoryFilter& filter) } // update this folders filter status (and children) - (*fit)->filter( filter ); + folder->filter( filter ); // track latest generation to pass any child items - if ((*fit)->getFiltered() || (*fit)->hasFilteredDescendants(filter_generation)) + if (folder->getFiltered() || folder->hasFilteredDescendants(filter_generation)) { mMostFilteredDescendantGeneration = filter_generation; if (getRoot()->needsAutoSelect() && autoopen_folders) { - (*fit)->setOpenArrangeRecursively(TRUE); + folder->setOpenArrangeRecursively(TRUE); } } } for (items_t::iterator iter = mItems.begin(); - iter != mItems.end();) + iter != mItems.end(); + ++iter) { - items_t::iterator iit = iter++; + LLFolderViewItem* item = (*iter); if (filter.getFilterCount() < 0) { break; } - if ((*iit)->getLastFilterGeneration() >= filter_generation) + if (item->getLastFilterGeneration() >= filter_generation) { - if ((*iit)->getFiltered()) + if (item->getFiltered()) { mMostFilteredDescendantGeneration = filter_generation; } continue; } - if ((*iit)->getLastFilterGeneration() >= must_pass_generation && - !(*iit)->getFiltered(must_pass_generation)) + if (item->getLastFilterGeneration() >= must_pass_generation && + !item->getFiltered(must_pass_generation)) { // failed to pass an earlier filter that was a subset of the current one // go ahead and flag this item as done - (*iit)->setFiltered(FALSE, filter_generation); + item->setFiltered(FALSE, filter_generation); continue; } - (*iit)->filter( filter ); + item->filter( filter ); - if ((*iit)->getFiltered(filter.getMinRequiredGeneration())) + if (item->getFiltered(filter.getMinRequiredGeneration())) { mMostFilteredDescendantGeneration = filter_generation; } diff --git a/indra/newview/llpaneloutfitsinventory.cpp b/indra/newview/llpaneloutfitsinventory.cpp index 5ad9bf056e..c4bde369db 100644 --- a/indra/newview/llpaneloutfitsinventory.cpp +++ b/indra/newview/llpaneloutfitsinventory.cpp @@ -148,12 +148,16 @@ void LLPanelOutfitsInventory::onNew() { const std::string& outfit_name = LLViewerFolderType::lookupNewCategoryName(LLFolderType::FT_OUTFIT); LLUUID outfit_folder = gAgentWearables.makeNewOutfitLinks(outfit_name); + /* getRootFolder()->setSelectionByID(outfit_folder, TRUE); getRootFolder()->setNeedsAutoRename(TRUE); + getRootFolder()->startRenamingSelectedItem(); + */ } void LLPanelOutfitsInventory::onSelectionChange(const std::deque<LLFolderViewItem*> &items, BOOL user_action) { + updateListCommands(); updateParent(); } diff --git a/indra/newview/llsidepanelappearance.cpp b/indra/newview/llsidepanelappearance.cpp index aeab3e2876..28c06b41e0 100644 --- a/indra/newview/llsidepanelappearance.cpp +++ b/indra/newview/llsidepanelappearance.cpp @@ -140,6 +140,7 @@ void LLSidepanelAppearance::onOpen(const LLSD& key) { fetchInventory(); refreshCurrentOutfitName(); + updateVerbs(); if(key.size() == 0) return; |