diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp index da29aaff5085338c4dc132b60926b20f1dea0aa5..5302ae2636142de5f88ed79fbc915dd6e05abf49 100755 --- a/indra/newview/llagent.cpp +++ b/indra/newview/llagent.cpp @@ -261,9 +261,7 @@ bool handleSlowMotionAnimation(const LLSD& newvalue) void LLAgent::setCanEditParcel() // called via mParcelChangedSignal { - LL_DEBUGS("AgentLocation") << LL_ENDL; bool can_edit = LLToolMgr::getInstance()->canEdit(); - gAgent.mCanEditParcel = can_edit; } @@ -837,7 +835,7 @@ void LLAgent::handleServerBakeRegionTransition(const LLUUID& region_id) void LLAgent::changeParcels() { - LL_DEBUGS("AgentLocation") << LL_ENDL; + LL_DEBUGS("AgentLocation") << "Calling ParcelChanged callbacks" << LL_ENDL; // Notify anything that wants to know about parcel changes mParcelChangedSignal(); } @@ -920,6 +918,8 @@ void LLAgent::setRegion(LLViewerRegion *regionp) } mRegionp = regionp; + // TODO - most of what follows probably should be moved into callbacks + // Pass the region host to LLUrlEntryParcel to resolve parcel name // with a server request. LLUrlEntryParcel::setRegionHost(getRegionHost()); diff --git a/indra/newview/llagent.h b/indra/newview/llagent.h index fafa166efda296325405526a64d5e51936c9e430..0662be897a3c807d1ac414af4f46f674f210081e 100755 --- a/indra/newview/llagent.h +++ b/indra/newview/llagent.h @@ -253,7 +253,24 @@ class LLAgent : public LLOldEvents::LLObservable LLHost getRegionHost() const; BOOL inPrelude(); - // Register a boost callback to be called when the agent changes regions + /** + * Register a boost callback to be called when the agent changes regions + * Note that if you need to access a capability for the region, you may need to wait + * for the capabilities to be received, since in some cases your region changed + * callback will be called before the capabilities have been received. Your callback + * may need to look something like: + * + * LLViewerRegion* region = gAgent.getRegion(); + * if (region->capabilitiesReceived()) + * { + * useCapability(region); + * } + * else // Need to handle via callback after caps arrive. + * { + * region->setCapabilitiesReceivedCallback(boost::bind(&useCapability,region,_1)); + * // you may or may not want to remove that callback + * } + */ typedef boost::function<void()> region_changed_callback_t; boost::signals2::connection addRegionChangedCallback(region_changed_callback_t);