diff options
| author | Brad Linden <brad@lindenlab.com> | 2024-05-23 11:31:19 -0700 | 
|---|---|---|
| committer | Brad Linden <brad@lindenlab.com> | 2024-05-23 11:31:19 -0700 | 
| commit | a1f49564d670a2c41bfa25c833bba2564b9b7f48 (patch) | |
| tree | 1d205e51bc37621916a17d459ad83782fe41f975 /indra/newview/llfloatertos.cpp | |
| parent | 6af5db09faf5ea33a2d4c47b64e76f42edae178a (diff) | |
| parent | 6377610f6587989c126b00f490dfc8d527a1c2ce (diff) | |
Merge remote-tracking branch 'origin/DRTVWR-600-maint-A' into brad/merge-maint-a-to-dev
Diffstat (limited to 'indra/newview/llfloatertos.cpp')
| -rw-r--r-- | indra/newview/llfloatertos.cpp | 266 | 
1 files changed, 133 insertions, 133 deletions
diff --git a/indra/newview/llfloatertos.cpp b/indra/newview/llfloatertos.cpp index db5b25a8f7..8eec5b753a 100644 --- a/indra/newview/llfloatertos.cpp +++ b/indra/newview/llfloatertos.cpp @@ -1,25 +1,25 @@ -/**  +/**   * @file llfloatertos.cpp   * @brief Terms of Service Agreement dialog   *   * $LicenseInfo:firstyear=2003&license=viewerlgpl$   * Second Life Viewer Source Code   * Copyright (C) 2010, Linden Research, Inc. - *  + *   * This library is free software; you can redistribute it and/or   * modify it under the terms of the GNU Lesser General Public   * License as published by the Free Software Foundation;   * version 2.1 of the License only. - *  + *   * This library is distributed in the hope that it will be useful,   * but WITHOUT ANY WARRANTY; without even the implied warranty of   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU   * Lesser General Public License for more details. - *  + *   * You should have received a copy of the GNU Lesser General Public   * License along with this library; if not, write to the Free Software   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA - *  + *   * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA   * $/LicenseInfo$   */ @@ -47,71 +47,71 @@  #include "llfloaterreg.h"  LLFloaterTOS::LLFloaterTOS(const LLSD& data) -:	LLModalDialog( data["message"].asString() ), -	mMessage(data["message"].asString()), -	mLoadingScreenLoaded(false), -	mSiteAlive(false), -	mRealNavigateBegun(false), -	mReplyPumpName(data["reply_pump"].asString()) +:   LLModalDialog( data["message"].asString() ), +    mMessage(data["message"].asString()), +    mLoadingScreenLoaded(false), +    mSiteAlive(false), +    mRealNavigateBegun(false), +    mReplyPumpName(data["reply_pump"].asString())  {  }  bool LLFloaterTOS::postBuild() -{	 -	childSetAction("Continue", onContinue, this); -	childSetAction("Cancel", onCancel, this); -	childSetCommitCallback("agree_chk", updateAgree, this); -	 -	if (hasChild("tos_text")) -	{ -		// this displays the critical message -		LLUICtrl *tos_text = getChild<LLUICtrl>("tos_text"); -		tos_text->setEnabled(false); -		tos_text->setFocus(true); -		tos_text->setValue(LLSD(mMessage)); - -		return true; -	} - -	// disable Agree to TOS radio button until the page has fully loaded +{ +    childSetAction("Continue", onContinue, this); +    childSetAction("Cancel", onCancel, this); +    childSetCommitCallback("agree_chk", updateAgree, this); + +    if (hasChild("tos_text")) +    { +        // this displays the critical message +        LLUICtrl *tos_text = getChild<LLUICtrl>("tos_text"); +        tos_text->setEnabled(false); +        tos_text->setFocus(true); +        tos_text->setValue(LLSD(mMessage)); + +        return true; +    } + +    // disable Agree to TOS radio button until the page has fully loaded          updateAgreeEnabled(false); -	// hide the SL text widget if we're displaying TOS with using a browser widget. -	LLUICtrl *editor = getChild<LLUICtrl>("tos_text"); -	editor->setVisible(false); +    // hide the SL text widget if we're displaying TOS with using a browser widget. +    LLUICtrl *editor = getChild<LLUICtrl>("tos_text"); +    editor->setVisible(false); -	LLMediaCtrl* web_browser = getChild<LLMediaCtrl>("tos_html"); -	if ( web_browser ) -	{ +    LLMediaCtrl* web_browser = getChild<LLMediaCtrl>("tos_html"); +    if ( web_browser ) +    {  // if we are forced to send users to an external site in their system browser  // (e.g.) Linux users because of lack of media support for HTML ToS page  // remove exisiting UI and replace with a link to external page where users can accept ToS  #ifdef EXTERNAL_TOS -		LLTextBox* header = getChild<LLTextBox>("tos_heading"); -		if (header) -			header->setVisible(false); +        LLTextBox* header = getChild<LLTextBox>("tos_heading"); +        if (header) +            header->setVisible(false); -		LLTextBox* external_prompt = getChild<LLTextBox>("external_tos_required"); -		if (external_prompt) -			external_prompt->setVisible(true); +        LLTextBox* external_prompt = getChild<LLTextBox>("external_tos_required"); +        if (external_prompt) +            external_prompt->setVisible(true); -		web_browser->setVisible(false); +        web_browser->setVisible(false);  #else -		web_browser->addObserver(this); - -		// Don't use the start_url parameter for this browser instance -- it may finish loading before we get to add our observer. -		// Store the URL separately and navigate here instead. -		web_browser->navigateTo( getString( "loading_url" ) ); -		LLPluginClassMedia* media_plugin = web_browser->getMediaPlugin(); -		if (media_plugin) -		{ -			// All links from tos_html should be opened in external browser -			media_plugin->setOverrideClickTarget("_external"); -		} +        web_browser->addObserver(this); + +        // Don't use the start_url parameter for this browser instance -- it may finish loading before we get to add our observer. +        // Store the URL separately and navigate here instead. +        web_browser->navigateTo( getString( "loading_url" ) ); +        LLPluginClassMedia* media_plugin = web_browser->getMediaPlugin(); +        if (media_plugin) +        { +            // All links from tos_html should be opened in external browser +            media_plugin->setOverrideClickTarget("_external"); +        }  #endif -	} +    } -	return true; +    return true;  }  void LLFloaterTOS::setSiteIsAlive( bool alive ) @@ -120,38 +120,38 @@ void LLFloaterTOS::setSiteIsAlive( bool alive )  // (e.g.) Linux users because of lack of media support for HTML ToS page  // force the regular HTML UI to deactivate so alternative is rendered instead.  #ifdef EXTERNAL_TOS -	mSiteAlive = false; +    mSiteAlive = false;  #else -	mSiteAlive = alive; -	 -	// only do this for TOS pages -	if (hasChild("tos_html")) -	{ -		// if the contents of the site was retrieved -		if ( alive ) -		{ -			// navigate to the "real" page  -			if(!mRealNavigateBegun && mSiteAlive) -			{ -				LLMediaCtrl* web_browser = getChild<LLMediaCtrl>("tos_html"); -				if(web_browser) -				{ -					mRealNavigateBegun = true; -					web_browser->navigateTo( getString( "real_url" ) ); -				} -			} -		} -		else -		{ -			LL_INFOS("TOS") << "ToS page: ToS page unavailable!" << LL_ENDL; -			// normally this is set when navigation to TOS page navigation completes (so you can't accept before TOS loads) -			// but if the page is unavailable, we need to do this now -			updateAgreeEnabled(true); -			LLTextBox* tos_list = getChild<LLTextBox>("agree_list"); -			tos_list->setEnabled(true); -		} -	} +    mSiteAlive = alive; + +    // only do this for TOS pages +    if (hasChild("tos_html")) +    { +        // if the contents of the site was retrieved +        if ( alive ) +        { +            // navigate to the "real" page +            if(!mRealNavigateBegun && mSiteAlive) +            { +                LLMediaCtrl* web_browser = getChild<LLMediaCtrl>("tos_html"); +                if(web_browser) +                { +                    mRealNavigateBegun = true; +                    web_browser->navigateTo( getString( "real_url" ) ); +                } +            } +        } +        else +        { +            LL_INFOS("TOS") << "ToS page: ToS page unavailable!" << LL_ENDL; +            // normally this is set when navigation to TOS page navigation completes (so you can't accept before TOS loads) +            // but if the page is unavailable, we need to do this now +            updateAgreeEnabled(true); +            LLTextBox* tos_list = getChild<LLTextBox>("agree_list"); +            tos_list->setEnabled(true); +        } +    }  #endif  } @@ -162,86 +162,86 @@ LLFloaterTOS::~LLFloaterTOS()  // virtual  void LLFloaterTOS::draw()  { -	// draw children -	LLModalDialog::draw(); +    // draw children +    LLModalDialog::draw();  }  // update status of "Agree" checkbox and text  void LLFloaterTOS::updateAgreeEnabled(bool enabled)  { -	LLCheckBoxCtrl* tos_agreement_agree_cb = getChild<LLCheckBoxCtrl>("agree_chk"); -	tos_agreement_agree_cb->setEnabled(enabled); +    LLCheckBoxCtrl* tos_agreement_agree_cb = getChild<LLCheckBoxCtrl>("agree_chk"); +    tos_agreement_agree_cb->setEnabled(enabled); -	LLTextBox* tos_agreement_agree_text = getChild<LLTextBox>("agree_list"); -	tos_agreement_agree_text->setEnabled(enabled); +    LLTextBox* tos_agreement_agree_text = getChild<LLTextBox>("agree_list"); +    tos_agreement_agree_text->setEnabled(enabled);  }  // static  void LLFloaterTOS::updateAgree(LLUICtrl*, void* userdata )  { -	LLFloaterTOS* self = (LLFloaterTOS*) userdata; -	bool agree = self->getChild<LLUICtrl>("agree_chk")->getValue().asBoolean();  -	self->getChildView("Continue")->setEnabled(agree); +    LLFloaterTOS* self = (LLFloaterTOS*) userdata; +    bool agree = self->getChild<LLUICtrl>("agree_chk")->getValue().asBoolean(); +    self->getChildView("Continue")->setEnabled(agree);  }  // static  void LLFloaterTOS::onContinue( void* userdata )  { -	LLFloaterTOS* self = (LLFloaterTOS*) userdata; -	LL_INFOS("TOS") << "User agrees with TOS." << LL_ENDL; +    LLFloaterTOS* self = (LLFloaterTOS*) userdata; +    LL_INFOS("TOS") << "User agrees with TOS." << LL_ENDL; -	if(self->mReplyPumpName != "") -	{ -		LLEventPumps::instance().obtain(self->mReplyPumpName).post(LLSD(true)); -	} +    if(self->mReplyPumpName != "") +    { +        LLEventPumps::instance().obtain(self->mReplyPumpName).post(LLSD(true)); +    } -	self->closeFloater(); // destroys this object +    self->closeFloater(); // destroys this object  }  // static  void LLFloaterTOS::onCancel( void* userdata )  { -	LLFloaterTOS* self = (LLFloaterTOS*) userdata; -	LL_INFOS("TOS") << "User disagrees with TOS." << LL_ENDL; -	LLNotificationsUtil::add("MustAgreeToLogIn", LLSD(), LLSD(), login_alert_done); - -	if(self->mReplyPumpName != "") -	{ -		LLEventPumps::instance().obtain(self->mReplyPumpName).post(LLSD(false)); -	} - -	// reset state for next time we come to TOS -	self->mLoadingScreenLoaded = false; -	self->mSiteAlive = false; -	self->mRealNavigateBegun = false; -	 -	// destroys this object -	self->closeFloater();  +    LLFloaterTOS* self = (LLFloaterTOS*) userdata; +    LL_INFOS("TOS") << "User disagrees with TOS." << LL_ENDL; +    LLNotificationsUtil::add("MustAgreeToLogIn", LLSD(), LLSD(), login_alert_done); + +    if(self->mReplyPumpName != "") +    { +        LLEventPumps::instance().obtain(self->mReplyPumpName).post(LLSD(false)); +    } + +    // reset state for next time we come to TOS +    self->mLoadingScreenLoaded = false; +    self->mSiteAlive = false; +    self->mRealNavigateBegun = false; + +    // destroys this object +    self->closeFloater();  } -//virtual  +//virtual  void LLFloaterTOS::handleMediaEvent(LLPluginClassMedia* /*self*/, EMediaEvent event)  { -	if(event == MEDIA_EVENT_NAVIGATE_COMPLETE) -	{ -		if(!mLoadingScreenLoaded) -		{ -			mLoadingScreenLoaded = true; +    if(event == MEDIA_EVENT_NAVIGATE_COMPLETE) +    { +        if(!mLoadingScreenLoaded) +        { +            mLoadingScreenLoaded = true;              std::string url(getString("real_url"));              LLHandle<LLFloater> handle = getHandle();              LLCoros::instance().launch("LLFloaterTOS::testSiteIsAliveCoro",                  boost::bind(&LLFloaterTOS::testSiteIsAliveCoro, handle, url)); -		} -		else if(mRealNavigateBegun) -		{ -			LL_INFOS("TOS") << "TOS: NAVIGATE COMPLETE" << LL_ENDL; -			// enable Agree to TOS check box now that page has loaded -			updateAgreeEnabled(true); -		} -	} +        } +        else if(mRealNavigateBegun) +        { +            LL_INFOS("TOS") << "TOS: NAVIGATE COMPLETE" << LL_ENDL; +            // enable Agree to TOS check box now that page has loaded +            updateAgreeEnabled(true); +        } +    }  }  void LLFloaterTOS::testSiteIsAliveCoro(LLHandle<LLFloater> handle, std::string url) @@ -253,7 +253,7 @@ void LLFloaterTOS::testSiteIsAliveCoro(LLHandle<LLFloater> handle, std::string u      LLCore::HttpOptions::ptr_t httpOpts = LLCore::HttpOptions::ptr_t(new LLCore::HttpOptions);      httpOpts->setWantHeaders(true); -	httpOpts->setHeadersOnly(true); +    httpOpts->setHeadersOnly(true);      LL_INFOS("testSiteIsAliveCoro") << "Generic POST for " << url << LL_ENDL; @@ -269,9 +269,9 @@ void LLFloaterTOS::testSiteIsAliveCoro(LLHandle<LLFloater> handle, std::string u      }      LLFloaterTOS *that = dynamic_cast<LLFloaterTOS *>(handle.get()); -     +      if (that) -        that->setSiteIsAlive(static_cast<bool>(status));  +        that->setSiteIsAlive(static_cast<bool>(status));      else      {          LL_WARNS("testSiteIsAliveCoro") << "Handle was not a TOS floater." << LL_ENDL;  | 
