diff --git a/indra/newview/llfloatermyscripts.cpp b/indra/newview/llfloatermyscripts.cpp index fa2de21a8f42de128a5a0bd13f4d2758fbbada55..6f9a6c90669126376d747e354eff32f0de49db4b 100644 --- a/indra/newview/llfloatermyscripts.cpp +++ b/indra/newview/llfloatermyscripts.cpp @@ -41,6 +41,7 @@ const S32 SIZE_OF_ONE_KB = 1024; LLFloaterMyScripts::LLFloaterMyScripts(const LLSD& seed) : LLFloater(seed), mGotAttachmentMemoryUsed(false), + mAttachmentDetailsRequested(false), mAttachmentMemoryMax(0), mAttachmentMemoryUsed(0), mGotAttachmentURLsUsed(false), @@ -55,12 +56,24 @@ BOOL LLFloaterMyScripts::postBuild() std::string msg_waiting = LLTrans::getString("ScriptLimitsRequestWaiting"); getChild<LLUICtrl>("loading_text")->setValue(LLSD(msg_waiting)); - return requestAttachmentDetails(); + mAttachmentDetailsRequested = requestAttachmentDetails(); + return TRUE; } -BOOL LLFloaterMyScripts::requestAttachmentDetails() +// virtual +void LLFloaterMyScripts::onOpen(const LLSD& key) { - if (!gAgent.getRegion()) return FALSE; + if (!mAttachmentDetailsRequested) + { + mAttachmentDetailsRequested = requestAttachmentDetails(); + } + + LLFloater::onOpen(key); +} + +bool LLFloaterMyScripts::requestAttachmentDetails() +{ + if (!gAgent.getRegion()) return false; LLSD body; std::string url = gAgent.getRegion()->getCapability("AttachmentResources"); @@ -68,11 +81,11 @@ BOOL LLFloaterMyScripts::requestAttachmentDetails() { LLCoros::instance().launch("LLFloaterMyScripts::getAttachmentLimitsCoro", boost::bind(&LLFloaterMyScripts::getAttachmentLimitsCoro, this, url)); - return TRUE; + return true; } else { - return FALSE; + return false; } } @@ -284,7 +297,7 @@ void LLFloaterMyScripts::onClickRefresh(void* userdata) btn->setEnabled(false); } instance->clearList(); - instance->requestAttachmentDetails(); + instance->mAttachmentDetailsRequested = instance->requestAttachmentDetails(); } else { diff --git a/indra/newview/llfloatermyscripts.h b/indra/newview/llfloatermyscripts.h index fe33ab90ae494efe0ac183b9000d822f4fe3a56b..3c053a0223c7210a2a3b7a75843c4704aa900717 100644 --- a/indra/newview/llfloatermyscripts.h +++ b/indra/newview/llfloatermyscripts.h @@ -36,15 +36,17 @@ class LLFloaterMyScripts : public LLFloater LLFloaterMyScripts(const LLSD& seed); BOOL postBuild(); + /*virtual*/ void onOpen(const LLSD& key); void setAttachmentDetails(LLSD content); void setAttachmentSummary(LLSD content); - BOOL requestAttachmentDetails(); + bool requestAttachmentDetails(); void clearList(); private: void getAttachmentLimitsCoro(std::string url); bool mGotAttachmentMemoryUsed; + bool mAttachmentDetailsRequested; S32 mAttachmentMemoryMax; S32 mAttachmentMemoryUsed;