summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/llagentwearables.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp
index 79ba3fb51d..b221c28dcd 100644
--- a/indra/newview/llagentwearables.cpp
+++ b/indra/newview/llagentwearables.cpp
@@ -2128,6 +2128,7 @@ void LLLibraryOutfitsFetch::done()
}
if (mOutfitsPopulated)
{
+ gInventory.notifyObservers();
delete this;
}
}
@@ -2162,6 +2163,11 @@ void LLLibraryOutfitsFetch::folderDone(void)
// everything is already here - call done.
outfitsDone();
}
+ else
+ {
+ gInventory.removeObserver(this);
+ gInventory.addObserver(this);
+ }
}
void LLLibraryOutfitsFetch::outfitsDone(void)
@@ -2172,6 +2178,8 @@ void LLLibraryOutfitsFetch::outfitsDone(void)
LLInventoryModel::EXCLUDE_TRASH);
LLInventoryFetchDescendentsObserver::folder_ref_t folders;
+
+ llassert(cat_array.count() > 0);
for(S32 i = 0; i < cat_array.count(); ++i)
{
if (cat_array.get(i)->getName() != "More Outfits" && cat_array.get(i)->getName() != "Ruth"){
@@ -2186,6 +2194,11 @@ void LLLibraryOutfitsFetch::outfitsDone(void)
// everything is already here - call done.
contentsDone();
}
+ else
+ {
+ gInventory.removeObserver(this);
+ gInventory.addObserver(this);
+ }
}
void LLLibraryOutfitsFetch::contentsDone(void)
@@ -2199,7 +2212,6 @@ void LLLibraryOutfitsFetch::contentsDone(void)
mOutfits[i].second);
LLAppearanceManager::getInstance()->shallowCopyCategory(mOutfits[i].first, folder_id, NULL);
- gInventory.notifyObservers();
}
mOutfitsPopulated = true;
}