diff options
| author | Joshua Bell <josh@lindenlab.com> | 2011-01-13 11:52:58 -0800 | 
|---|---|---|
| committer | Joshua Bell <josh@lindenlab.com> | 2011-01-13 11:52:58 -0800 | 
| commit | 20b983afe0d7f66a1db036c60e4c53b6141eb0cd (patch) | |
| tree | 4f78a0175f2b0be1eeb4cbe5748b5ac8b6b3e98d | |
| parent | c132d20a7433e2d09e3521a15497f661fcbd18b8 (diff) | |
VWR-24401 Show TOS and other login dialogs when --login is used
| -rw-r--r-- | indra/newview/lllogininstance.cpp | 94 | ||||
| -rw-r--r-- | indra/newview/lllogininstance.h | 7 | ||||
| -rw-r--r-- | indra/newview/llstartup.cpp | 1 | 
3 files changed, 43 insertions, 59 deletions
| diff --git a/indra/newview/lllogininstance.cpp b/indra/newview/lllogininstance.cpp index d866db1829..f93bfb61d3 100644 --- a/indra/newview/lllogininstance.cpp +++ b/indra/newview/lllogininstance.cpp @@ -468,7 +468,6 @@ LLLoginInstance::LLLoginInstance() :  	mLoginModule(new LLLogin()),  	mNotifications(NULL),  	mLoginState("offline"), -	mUserInteraction(true),  	mSkipOptionalUpdate(false),  	mAttemptComplete(false),  	mTransferRate(0.0f), @@ -637,64 +636,57 @@ void LLLoginInstance::handleLoginFailure(const LLSD& event)  	LLSD response = event["data"];  	std::string reason_response = response["reason"].asString();  	std::string message_response = response["message"].asString(); -	if(mUserInteraction) +	// For the cases of critical message or TOS agreement, +	// start the TOS dialog. The dialog response will be handled +	// by the LLLoginInstance::handleTOSResponse() callback. +	// The callback intiates the login attempt next step, either  +	// to reconnect or to end the attempt in failure. +	if(reason_response == "tos")  	{ -		// For the cases of critical message or TOS agreement, -		// start the TOS dialog. The dialog response will be handled -		// by the LLLoginInstance::handleTOSResponse() callback. -		// The callback intiates the login attempt next step, either  -		// to reconnect or to end the attempt in failure. -		if(reason_response == "tos") -		{ -			LLSD data(LLSD::emptyMap()); -			data["message"] = message_response; -			data["reply_pump"] = TOS_REPLY_PUMP; -			gViewerWindow->setShowProgress(FALSE); -			LLFloaterReg::showInstance("message_tos", data); -			LLEventPumps::instance().obtain(TOS_REPLY_PUMP) -				.listen(TOS_LISTENER_NAME, -						boost::bind(&LLLoginInstance::handleTOSResponse,  -									this, _1, "agree_to_tos")); -		} -		else if(reason_response == "critical") -		{ -			LLSD data(LLSD::emptyMap()); -			data["message"] = message_response; -			data["reply_pump"] = TOS_REPLY_PUMP; -			if(response.has("error_code")) -			{ -				data["error_code"] = response["error_code"]; -			} -			if(response.has("certificate")) -			{ -				data["certificate"] = response["certificate"]; -			} -			 -			gViewerWindow->setShowProgress(FALSE); -			LLFloaterReg::showInstance("message_critical", data); -			LLEventPumps::instance().obtain(TOS_REPLY_PUMP) -				.listen(TOS_LISTENER_NAME, -						boost::bind(&LLLoginInstance::handleTOSResponse,  -									this, _1, "read_critical")); -		} -		else if(reason_response == "update" || gSavedSettings.getBOOL("ForceMandatoryUpdate")) +		LLSD data(LLSD::emptyMap()); +		data["message"] = message_response; +		data["reply_pump"] = TOS_REPLY_PUMP; +		gViewerWindow->setShowProgress(FALSE); +		LLFloaterReg::showInstance("message_tos", data); +		LLEventPumps::instance().obtain(TOS_REPLY_PUMP) +			.listen(TOS_LISTENER_NAME, +					boost::bind(&LLLoginInstance::handleTOSResponse,  +								this, _1, "agree_to_tos")); +	} +	else if(reason_response == "critical") +	{ +		LLSD data(LLSD::emptyMap()); +		data["message"] = message_response; +		data["reply_pump"] = TOS_REPLY_PUMP; +		if(response.has("error_code"))  		{ -			gSavedSettings.setBOOL("ForceMandatoryUpdate", FALSE); -			updateApp(true, message_response); +			data["error_code"] = response["error_code"];  		} -		else if(reason_response == "optional") +		if(response.has("certificate"))  		{ -			updateApp(false, message_response); +			data["certificate"] = response["certificate"];  		} -		else -		{	 -			attemptComplete(); -		}	 +		 +		gViewerWindow->setShowProgress(FALSE); +		LLFloaterReg::showInstance("message_critical", data); +		LLEventPumps::instance().obtain(TOS_REPLY_PUMP) +			.listen(TOS_LISTENER_NAME, +					boost::bind(&LLLoginInstance::handleTOSResponse,  +								this, _1, "read_critical"));  	} -	else // no user interaction +	else if(reason_response == "update" || gSavedSettings.getBOOL("ForceMandatoryUpdate"))  	{ -		attemptComplete(); +		gSavedSettings.setBOOL("ForceMandatoryUpdate", FALSE); +		updateApp(true, message_response); +	} +	else if(reason_response == "optional") +	{ +		updateApp(false, message_response);  	} +	else +	{	 +		attemptComplete(); +	}	  }  void LLLoginInstance::handleLoginSuccess(const LLSD& event) diff --git a/indra/newview/lllogininstance.h b/indra/newview/lllogininstance.h index b872d7d1b1..8b53431219 100644 --- a/indra/newview/lllogininstance.h +++ b/indra/newview/lllogininstance.h @@ -61,12 +61,6 @@ public:  	// Only valid when authSuccess == true.  	const F64 getLastTransferRateBPS() { return mTransferRate; } -		// Set whether this class will drive user interaction. -	// If not, login failures like 'need tos agreement' will  -	// end the login attempt. -	void setUserInteraction(bool state) { mUserInteraction = state; }  -	bool getUserInteraction() { return mUserInteraction; } -  	// Whether to tell login to skip optional update request.  	// False by default.  	void setSkipOptionalUpdate(bool state) { mSkipOptionalUpdate = state; } @@ -100,7 +94,6 @@ private:  	std::string mLoginState;  	LLSD mRequestData;  	LLSD mResponseData; -	bool mUserInteraction;   	bool mSkipOptionalUpdate;  	bool mAttemptComplete;  	F64 mTransferRate; diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index 611f9de2e6..8cdc9843ab 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -980,7 +980,6 @@ bool idle_startup()  			login->setSkipOptionalUpdate(true);  		} -		login->setUserInteraction(show_connect_box);  		login->setSerialNumber(LLAppViewer::instance()->getSerialNumber());  		login->setLastExecEvent(gLastExecEvent);  		login->setUpdaterLauncher(boost::bind(&LLAppViewer::launchUpdater, LLAppViewer::instance())); | 
