summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/llappearancemgr.cpp12
-rw-r--r--indra/newview/llappearancemgr.h8
-rw-r--r--indra/newview/llinventorybridge.cpp8
3 files changed, 16 insertions, 12 deletions
diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp
index 043f6f37bf..60c6061e96 100644
--- a/indra/newview/llappearancemgr.cpp
+++ b/indra/newview/llappearancemgr.cpp
@@ -95,7 +95,7 @@ public:
mCopyItems(copy_items),
mAppend(append)
{}
- ~LLOutfitObserver();
+ ~LLOutfitObserver() {}
virtual void done();
void doWearCategory();
@@ -105,12 +105,6 @@ protected:
bool mAppend;
};
-LLOutfitObserver::~LLOutfitObserver()
-{
- llinfos << "~LLOutfitObserver" << llendl;
-}
-
-// BAP is LLOutfitObserver getting deleted here?
void LLOutfitObserver::done()
{
gInventory.removeObserver(this);
@@ -236,7 +230,6 @@ void LLOutfitFetch::done()
// loop.
//dec_busy_count();
gInventory.removeObserver(this);
- delete this;
// increment busy count and either tell the inventory to check &
// call done, or add this object to the inventory for observation.
@@ -255,6 +248,7 @@ void LLOutfitFetch::done()
// will call done for us when everything is here.
gInventory.addObserver(outfit_observer);
}
+ delete this;
}
class LLUpdateAppearanceOnDestroy: public LLInventoryCallback
@@ -471,7 +465,7 @@ void LLAppearanceManager::filterWearableItems(
// Create links to all listed items.
void LLAppearanceManager::linkAll(const LLUUID& category,
LLInventoryModel::item_array_t& items,
- LLPointer<LLInventoryCallback> cb)
+ LLPointer<LLInventoryCallback> cb)
{
for (S32 i=0; i<items.count(); i++)
{
diff --git a/indra/newview/llappearancemgr.h b/indra/newview/llappearancemgr.h
index f39fbd7b1a..12ffa336b4 100644
--- a/indra/newview/llappearancemgr.h
+++ b/indra/newview/llappearancemgr.h
@@ -82,6 +82,11 @@ public:
void setAttachmentInvLinkEnable(bool val);
void linkRegisteredAttachments();
+ // utility function for bulk linking.
+ void linkAll(const LLUUID& category,
+ LLInventoryModel::item_array_t& items,
+ LLPointer<LLInventoryCallback> cb);
+
protected:
LLAppearanceManager();
~LLAppearanceManager();
@@ -89,9 +94,6 @@ protected:
private:
void filterWearableItems(LLInventoryModel::item_array_t& items, S32 max_per_type);
- void linkAll(const LLUUID& category,
- LLInventoryModel::item_array_t& items,
- LLPointer<LLInventoryCallback> cb);
void getDescendentsOfAssetType(const LLUUID& category,
LLInventoryModel::item_array_t& items,
diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp
index aa38b19c5e..8b7a84a3d3 100644
--- a/indra/newview/llinventorybridge.cpp
+++ b/indra/newview/llinventorybridge.cpp
@@ -1680,6 +1680,14 @@ BOOL LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat,
BOOL append = true;
LLAppearanceManager::instance().wearInventoryCategory(inv_cat, false, append);
}
+ else
+ {
+ // Recursively create links in target outfit.
+ LLInventoryModel::cat_array_t cats;
+ LLInventoryModel::item_array_t items;
+ gInventory.collectDescendents(inv_cat->getUUID(), cats, items, LLInventoryModel::EXCLUDE_TRASH);
+ LLAppearanceManager::instance().linkAll(mUUID,items,NULL);
+ }
}
else
{