MAINT-6385: Ensure that VMM initialization only happens once after login and that it will only happen after the region caps have been received.
parent
c8b6628140
commit
0a9f25bcfb
|
|
@ -3895,11 +3895,17 @@ void LLAgent::handleTeleportFinished()
|
|||
mIsMaturityRatingChangingDuringTeleport = false;
|
||||
}
|
||||
|
||||
// Init SLM Marketplace connection so we know which UI should be used for the user as a merchant
|
||||
// Note: Eventually, all merchant will be migrated to the new SLM system and there will be no reason to show the old UI at all.
|
||||
// Note: Some regions will not support the SLM cap for a while so we need to do that check for each teleport.
|
||||
// *TODO : Suppress that line from here once the whole grid migrated to SLM and move it to idle_startup() (llstartup.cpp)
|
||||
check_merchant_status();
|
||||
if (mRegionp)
|
||||
{
|
||||
if (mRegionp->capabilitiesReceived())
|
||||
{
|
||||
onCapabilitiesReceivedAfterTeleport();
|
||||
}
|
||||
else
|
||||
{
|
||||
mRegionp->setCapabilitiesReceivedCallback(boost::bind(&LLAgent::onCapabilitiesReceivedAfterTeleport));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void LLAgent::handleTeleportFailed()
|
||||
|
|
@ -3931,6 +3937,14 @@ void LLAgent::handleTeleportFailed()
|
|||
}
|
||||
}
|
||||
|
||||
/*static*/
|
||||
void LLAgent::onCapabilitiesReceivedAfterTeleport()
|
||||
{
|
||||
|
||||
check_merchant_status();
|
||||
}
|
||||
|
||||
|
||||
void LLAgent::teleportRequest(
|
||||
const U64& region_handle,
|
||||
const LLVector3& pos_local,
|
||||
|
|
|
|||
|
|
@ -676,6 +676,8 @@ private:
|
|||
void handleTeleportFinished();
|
||||
void handleTeleportFailed();
|
||||
|
||||
static void onCapabilitiesReceivedAfterTeleport();
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
// Teleport State
|
||||
//--------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -773,7 +773,9 @@ void LLMarketplaceData::getMerchantStatusCoro()
|
|||
std::string url = getSLMConnectURL("/merchant");
|
||||
if (url.empty())
|
||||
{
|
||||
LL_INFOS("Marketplace") << "No marketplace capability on Sim" << LL_ENDL;
|
||||
LL_WARNS("Marketplace") << "No marketplace capability on Sim" << LL_ENDL;
|
||||
setSLMStatus(MarketplaceStatusCodes::MARKET_PLACE_CONNECTION_FAILURE);
|
||||
return;
|
||||
}
|
||||
|
||||
LLSD result = httpAdapter->getAndSuspend(httpRequest, url, httpOpts);
|
||||
|
|
|
|||
|
|
@ -397,13 +397,15 @@ void set_merchant_SLM_menu()
|
|||
gToolBarView->enableCommand(command->id(), true);
|
||||
}
|
||||
|
||||
void check_merchant_status()
|
||||
void check_merchant_status(bool force)
|
||||
{
|
||||
if (!gSavedSettings.getBOOL("InventoryOutboxDisplayBoth"))
|
||||
{
|
||||
// Reset the SLM status: we actually want to check again, that's the point of calling check_merchant_status()
|
||||
LLMarketplaceData::instance().setSLMStatus(MarketplaceStatusCodes::MARKET_PLACE_NOT_INITIALIZED);
|
||||
|
||||
if (force)
|
||||
{
|
||||
// Reset the SLM status: we actually want to check again, that's the point of calling check_merchant_status()
|
||||
LLMarketplaceData::instance().setSLMStatus(MarketplaceStatusCodes::MARKET_PLACE_NOT_INITIALIZED);
|
||||
}
|
||||
// Hide SLM related menu item
|
||||
gMenuHolder->getChild<LLView>("MarketplaceListings")->setVisible(FALSE);
|
||||
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ BOOL enable_god_full(void* user_data);
|
|||
BOOL enable_god_liaison(void* user_data);
|
||||
BOOL enable_god_basic(void* user_data);
|
||||
void set_underclothes_menu_options();
|
||||
void check_merchant_status();
|
||||
void check_merchant_status(bool force = false);
|
||||
|
||||
void exchange_callingcard(const LLUUID& dest_id);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue