From 80d159a9ec2caa1a73bae807b852208161442b2b Mon Sep 17 00:00:00 2001 From: Tonya Souther Date: Tue, 12 Apr 2011 17:30:29 -0500 Subject: [PATCH] Initialize RLV outfit observer later. From Shin Wasp, fixes FIRE-857. --- indra/newview/rlvlocks.cpp | 10 +++++++++- indra/newview/rlvlocks.h | 4 +++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/indra/newview/rlvlocks.cpp b/indra/newview/rlvlocks.cpp index fd70a60c44..3818735d80 100644 --- a/indra/newview/rlvlocks.cpp +++ b/indra/newview/rlvlocks.cpp @@ -922,7 +922,15 @@ RlvFolderLocks gRlvFolderLocks; RlvFolderLocks::RlvFolderLocks() : m_fItemsDirty(true) { - LLOutfitObserver::instance().addCOFChangedCallback(boost::bind(&RlvFolderLocks::onCOFChanged, this)); + //LLOutfitObserver::instance().addCOFChangedCallback(boost::bind(&RlvFolderLocks::onCOFChanged, this)); +} + +// static +void RlvFolderLocks::initClass() +{ + // this can not be called from constructor because its instance is global and is created too early. + // Subscribe to "COF is Saved" signal to notify observers about this (Loading indicator for ex.). + LLOutfitObserver::instance().addCOFChangedCallback(boost::bind(&RlvFolderLocks::onCOFChanged, &gRlvFolderLocks)); } // Checked: 2010-11-30 (RLVa-1.3.0b) | Added: RLVa-1.3.0b diff --git a/indra/newview/rlvlocks.h b/indra/newview/rlvlocks.h index 072b9f7229..abd2fc9cb0 100644 --- a/indra/newview/rlvlocks.h +++ b/indra/newview/rlvlocks.h @@ -291,7 +291,7 @@ extern RlvWearableLocks gRlvWearableLocks; // RlvFolderLocks class declaration // -class RlvFolderLocks +class RlvFolderLocks: public LLInitClass { public: RlvFolderLocks(); @@ -301,6 +301,8 @@ public: // Couples the folder lock source with the type of lock (false = folder node ; true = folder subtree) typedef std::pair rlv_folderlock_descr_t; + static void initClass(); + public: // Adds an eLock type lock (held by idRlvObj) for the folder(s) described by lockDescr void addFolderLock(const rlv_folderlock_descr_t& lockDescr, const LLUUID& idRlvObj, ERlvLockMask eLock);