diff options
author | Erik Kundiman <erik@megapahit.org> | 2024-05-16 13:52:40 +0800 |
---|---|---|
committer | Erik Kundiman <erik@megapahit.org> | 2024-05-16 13:52:40 +0800 |
commit | 6d51e91895a7f2435c46a876410ccc6c63fe8c82 (patch) | |
tree | f2b48ebd99cb414227bf365f47665b8d4baa752b /indra/newview/llfloatertos.cpp | |
parent | d1b5917bb9c92e4e47eba19b43781e4d1328b1ca (diff) | |
parent | 094dcc07f8c1d90ae723dbe60eddacb90a09eae8 (diff) |
Merge tag '7.1.7-release'
source for viewer 7.1.7.8974243247
Diffstat (limited to 'indra/newview/llfloatertos.cpp')
-rw-r--r-- | indra/newview/llfloatertos.cpp | 268 |
1 files changed, 134 insertions, 134 deletions
diff --git a/indra/newview/llfloatertos.cpp b/indra/newview/llfloatertos.cpp index 189f5297a9..241d44ddf8 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,73 +47,73 @@ #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); - updateAgreeEnabled(true); + updateAgreeEnabled(true); #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 ) @@ -122,38 +122,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 } @@ -164,86 +164,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) @@ -255,7 +255,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; @@ -271,9 +271,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; |