diff options
| author | Aura Linden <aura@lindenlab.com> | 2011-07-21 17:07:57 -0700 | 
|---|---|---|
| committer | Aura Linden <aura@lindenlab.com> | 2011-07-21 17:07:57 -0700 | 
| commit | 74b6f5dce31b5ff69ced8e1e8cd37e4c5ded2943 (patch) | |
| tree | 5242c2011c3425ef624c3f6ce59f1ce12930edae | |
| parent | 6d789f59f8d8b3d195090f972f783727037790c2 (diff) | |
| parent | 8d9901718022f34e9eb93c339dda796da52d0545 (diff) | |
Added handling for RemoveInventoryObjects message.  Fixed handling of RemoveInventoryFolder
| -rw-r--r-- | autobuild.xml | 128 | ||||
| -rw-r--r-- | indra/cmake/OpenSSL.cmake | 2 | ||||
| -rw-r--r-- | indra/llcommon/llfasttimer_class.cpp | 7 | ||||
| -rw-r--r-- | indra/newview/app_settings/settings.xml | 2 | ||||
| -rw-r--r-- | indra/newview/llavataractions.cpp | 8 | ||||
| -rw-r--r-- | indra/newview/llfloaterwebcontent.cpp | 14 | ||||
| -rw-r--r-- | indra/newview/llmediactrl.h | 2 | ||||
| -rw-r--r-- | indra/newview/llprogressview.cpp | 89 | ||||
| -rw-r--r-- | indra/newview/llprogressview.h | 5 | ||||
| -rw-r--r-- | indra/newview/llstartup.cpp | 8 | ||||
| -rw-r--r-- | indra/newview/llvieweraudio.cpp | 16 | ||||
| -rw-r--r-- | indra/newview/llviewermedia.cpp | 24 | ||||
| -rw-r--r-- | indra/newview/llviewermedia.h | 2 | ||||
| -rw-r--r-- | indra/newview/llviewerwindow.cpp | 8 | ||||
| -rw-r--r-- | indra/newview/llviewerwindow.h | 1 | 
15 files changed, 229 insertions, 87 deletions
diff --git a/autobuild.xml b/autobuild.xml index d381035248..c6e1a425d5 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -138,9 +138,9 @@              <key>archive</key>              <map>                <key>hash</key> -              <string>e6caaeea16131e1f2343ecd7765e3147</string> +              <string>6299f1fd01147820e05195b84a3fe1d7</string>                <key>url</key> -              <string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ares-1.7.1-darwin-20110217.tar.bz2</string> +              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-ares/rev/233053/arch/Darwin/installer/ares-1.7.4-darwin-20110616.tar.bz2</string>              </map>              <key>name</key>              <string>darwin</string> @@ -150,9 +150,9 @@              <key>archive</key>              <map>                <key>hash</key> -              <string>0745872db83d45f4ab3bdc697d98e264</string> +              <string>b62efd5a68e5dd38314f60a20e651d43</string>                <key>url</key> -              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-ares/rev/223275/arch/Linux/installer/ares-1.7.1-linux-20110310.tar.bz2</string> +              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-ares/rev/233053/arch/Linux/installer/ares-1.7.4-linux-20110616.tar.bz2</string>              </map>              <key>name</key>              <string>linux</string> @@ -162,9 +162,9 @@              <key>archive</key>              <map>                <key>hash</key> -              <string>1dcec6babd249a2597114d4ac226c461</string> +              <string>c2f4ea23619f3d453e799d6e89ff6930</string>                <key>url</key> -              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-ares/rev/220963/arch/CYGWIN/installer/ares-1.7.1-windows-20110211.tar.bz2</string> +              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-ares/rev/233053/arch/CYGWIN/installer/ares-1.7.4-windows-20110616.tar.bz2</string>              </map>              <key>name</key>              <string>windows</string> @@ -282,9 +282,9 @@              <key>archive</key>              <map>                <key>hash</key> -              <string>aaea644191807f51051cefa2fac11069</string> +              <string>463e4cc99ec8659eeee518beb41f31b6</string>                <key>url</key> -              <string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/curl-7.21.1-darwin-20110316.tar.bz2</string> +              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-curl/rev/236200/arch/Darwin/installer/curl-7.21.1-darwin-20110719.tar.bz2</string>              </map>              <key>name</key>              <string>darwin</string> @@ -306,9 +306,9 @@              <key>archive</key>              <map>                <key>hash</key> -              <string>fea96aa2a7d513397317194f3d6c979b</string> +              <string>23d603a7bb864d0a8b6001f19a1b7335</string>                <key>url</key> -              <string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/curl-7.21.1-windows-20110211.tar.bz2</string> +              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-curl/rev/236200/arch/CYGWIN/installer/curl-7.21.1-windows-20110719.tar.bz2</string>              </map>              <key>name</key>              <string>windows</string> @@ -1206,9 +1206,9 @@              <key>archive</key>              <map>                <key>hash</key> -              <string>a7c80fd8516df3b879b669b2b220067f</string> +              <string>c6c28da2f262b4a146a90724b635f13f</string>                <key>url</key> -              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/232420/arch/Darwin/installer/llqtwebkit-4.7.1-darwin-20110608.tar.bz2</string> +              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/236284/arch/Darwin/installer/llqtwebkit-4.7.1-darwin-20110720.tar.bz2</string>              </map>              <key>name</key>              <string>darwin</string> @@ -1218,9 +1218,9 @@              <key>archive</key>              <map>                <key>hash</key> -              <string>c05a33ee8b6f253b5a744596dfc3707d</string> +              <string>67505bb5e72ed5912c818d506e9eac22</string>                <key>url</key> -              <string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/llqtwebkit-linux-qt4.6-20101013.tar.bz2</string> +              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/236284/arch/Linux/installer/llqtwebkit-4.7.1-linux-20110720.tar.bz2</string>              </map>              <key>name</key>              <string>linux</string> @@ -1230,9 +1230,9 @@              <key>archive</key>              <map>                <key>hash</key> -              <string>b9cc0333cc274c9cc40256ab7146b4fc</string> +              <string>433e15cbb4d59aae9be10c18d19b094e</string>                <key>url</key> -              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/232420/arch/CYGWIN/installer/llqtwebkit-4.7.1-windows-20110608.tar.bz2</string> +              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/236284/arch/CYGWIN/installer/llqtwebkit-4.7.1-windows-20110720.tar.bz2</string>              </map>              <key>name</key>              <string>windows</string> @@ -1359,36 +1359,26 @@            </map>          </map>        </map> -      <key>openSSL</key> +      <key>openal_soft</key>        <map>          <key>license</key> -        <string>openSSL</string> +        <string>lgpl</string>          <key>license_file</key> -        <string>LICENSES/openssl.txt</string> +        <string>LICENSES/OPENAL.txt</string>          <key>name</key> -        <string>openSSL</string> +        <string>openal_soft</string>          <key>platforms</key>          <map> -          <key>darwin</key> -          <map> -            <key>archive</key> -            <map> -              <key>hash</key> -              <string>facee34b8bd57ad602157e65a5af1a49</string> -              <key>url</key> -              <string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openssl-0.9.8q-darwin-20110211.tar.bz2</string> -            </map> -            <key>name</key> -            <string>darwin</string> -          </map>            <key>linux</key>            <map>              <key>archive</key>              <map>                <key>hash</key> -              <string>3d40be8566fa4b9df9a38e2a0f9ea467</string> +              <string>fccdca18a950ac9363c6fb39118b80e1</string> +              <key>hash_algorithm</key> +              <string>md5</string>                <key>url</key> -              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-openssl/rev/226882/arch/Linux/installer/openssl-1.0.0d-linux-20110418.tar.bz2</string> +              <string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openal-3ad86a1c-linux-20110114.tar.bz2</string>              </map>              <key>name</key>              <string>linux</string> @@ -1398,35 +1388,47 @@              <key>archive</key>              <map>                <key>hash</key> -              <string>774c7f0a0312bee3054757a623e227bc</string> +              <string>04df406f3e5d04cf176660bdac66c3a1</string>                <key>url</key> -              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-openssl/rev/220986/arch/CYGWIN/installer/openssl-0.9.8q-windows-20110211.tar.bz2</string> +              <string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openal-1.12.854-1.1.0-windows-20110301.tar.bz2</string>              </map>              <key>name</key>              <string>windows</string>            </map>          </map> +        <key>version</key> +        <string>3ad86a1c</string>        </map> -      <key>openal_soft</key> +      <key>openjpeg</key>        <map>          <key>license</key> -        <string>lgpl</string> +        <string>openjpeg</string>          <key>license_file</key> -        <string>LICENSES/OPENAL.txt</string> +        <string>LICENSES/openjpeg.txt</string>          <key>name</key> -        <string>openal_soft</string> +        <string>openjpeg</string>          <key>platforms</key>          <map> +          <key>darwin</key> +          <map> +            <key>archive</key> +            <map> +              <key>hash</key> +              <string>4be51c7cca7d84831e30b63279df7ae5</string> +              <key>url</key> +              <string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openjpeg-1.4-darwin-20110302.tar.bz2</string> +            </map> +            <key>name</key> +            <string>darwin</string> +          </map>            <key>linux</key>            <map>              <key>archive</key>              <map>                <key>hash</key> -              <string>fccdca18a950ac9363c6fb39118b80e1</string> -              <key>hash_algorithm</key> -              <string>md5</string> +              <string>fb2382014c79e0049746e4e29bd834f9</string>                <key>url</key> -              <string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openal-3ad86a1c-linux-20110114.tar.bz2</string> +              <string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openjpeg-1.4-linux-20110314.tar.bz2</string>              </map>              <key>name</key>              <string>linux</string> @@ -1436,25 +1438,23 @@              <key>archive</key>              <map>                <key>hash</key> -              <string>04df406f3e5d04cf176660bdac66c3a1</string> +              <string>ca5765af55f798724d601720afdf6953</string>                <key>url</key> -              <string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openal-1.12.854-1.1.0-windows-20110301.tar.bz2</string> +              <string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openjpeg-1.4-windows-20110302.tar.bz2</string>              </map>              <key>name</key>              <string>windows</string>            </map>          </map> -        <key>version</key> -        <string>3ad86a1c</string>        </map> -      <key>openjpeg</key> +      <key>openssl</key>        <map>          <key>license</key> -        <string>openjpeg</string> +        <string>openssl</string>          <key>license_file</key> -        <string>LICENSES/openjpeg.txt</string> +        <string>LICENSES/openssl.txt</string>          <key>name</key> -        <string>openjpeg</string> +        <string>openssl</string>          <key>platforms</key>          <map>            <key>darwin</key> @@ -1462,9 +1462,9 @@              <key>archive</key>              <map>                <key>hash</key> -              <string>4be51c7cca7d84831e30b63279df7ae5</string> +              <string>1aecd89fee54741f2c4fd65c082d2604</string>                <key>url</key> -              <string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openjpeg-1.4-darwin-20110302.tar.bz2</string> +              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-openssl/rev/227862/arch/Darwin/installer/openssl-1.0.0d-darwin-20110427.tar.bz2</string>              </map>              <key>name</key>              <string>darwin</string> @@ -1474,9 +1474,9 @@              <key>archive</key>              <map>                <key>hash</key> -              <string>fb2382014c79e0049746e4e29bd834f9</string> +              <string>eab3a49d1ef77a651a3896d1d4864a78</string>                <key>url</key> -              <string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openjpeg-1.4-linux-20110314.tar.bz2</string> +              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-openssl/rev/227862/arch/Linux/installer/openssl-1.0.0d-linux-20110427.tar.bz2</string>              </map>              <key>name</key>              <string>linux</string> @@ -1486,9 +1486,9 @@              <key>archive</key>              <map>                <key>hash</key> -              <string>ca5765af55f798724d601720afdf6953</string> +              <string>8ba049ecc76bb1adf3ab3e5bad64c39e</string>                <key>url</key> -              <string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openjpeg-1.4-windows-20110302.tar.bz2</string> +              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-openssl/rev/227862/arch/CYGWIN/installer/openssl-1.0.0d-windows-20110427.tar.bz2</string>              </map>              <key>name</key>              <string>windows</string> @@ -1907,12 +1907,12 @@              <map>                <key>build</key>                <map> +                <key>command</key> +                <string>xcodebuild</string>                  <key>filters</key>                  <array>                    <string>setenv</string>                  </array> -                <key>command</key> -                <string>xcodebuild</string>                  <key>options</key>                  <array>                    <string>-configuration Debug</string> @@ -1961,12 +1961,12 @@              <map>                <key>build</key>                <map> +                <key>command</key> +                <string>xcodebuild</string>                  <key>filters</key>                  <array>                    <string>setenv</string>                  </array> -                <key>command</key> -                <string>xcodebuild</string>                  <key>options</key>                  <array>                    <string>-configuration RelWithDebInfo</string> @@ -2017,12 +2017,12 @@              <map>                <key>build</key>                <map> +                <key>command</key> +                <string>xcodebuild</string>                  <key>filters</key>                  <array>                    <string>setenv</string>                  </array> -                <key>command</key> -                <string>xcodebuild</string>                  <key>options</key>                  <array>                    <string>-configuration Release</string> diff --git a/indra/cmake/OpenSSL.cmake b/indra/cmake/OpenSSL.cmake index 5982ee9a49..dc50b1b8e7 100644 --- a/indra/cmake/OpenSSL.cmake +++ b/indra/cmake/OpenSSL.cmake @@ -7,7 +7,7 @@ set(OpenSSL_FIND_REQUIRED ON)  if (STANDALONE)    include(FindOpenSSL)  else (STANDALONE) -  use_prebuilt_binary(openSSL) +  use_prebuilt_binary(openssl)    if (WINDOWS)      set(OPENSSL_LIBRARIES ssleay32 libeay32)    else (WINDOWS) diff --git a/indra/llcommon/llfasttimer_class.cpp b/indra/llcommon/llfasttimer_class.cpp index bd594b06cf..1dfc194d7c 100644 --- a/indra/llcommon/llfasttimer_class.cpp +++ b/indra/llcommon/llfasttimer_class.cpp @@ -228,6 +228,13 @@ void LLFastTimer::DeclareTimer::updateCachedPointers()  		// update cached pointer  		it->mFrameState = &it->mTimer.getFrameState();  	} +	// also update frame states of timers on stack +	LLFastTimer* cur_timerp = LLFastTimer::sCurTimerData.mCurTimer; +	while(cur_timerp->mLastTimerData.mCurTimer != cur_timerp)	 +	{ +		cur_timerp->mFrameState = &cur_timerp->mFrameState->mTimer->getFrameState(); +		cur_timerp = cur_timerp->mLastTimerData.mCurTimer; +	}  }  //static diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 142bf94395..916f376c4c 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -6592,7 +6592,7 @@      <key>Type</key>      <string>Boolean</string>      <key>Value</key> -    <string>0</string> +      <integer>0</integer>    </map>      <key>PrecachingDelay</key>      <map> diff --git a/indra/newview/llavataractions.cpp b/indra/newview/llavataractions.cpp index 48827676cd..cd6754facd 100644 --- a/indra/newview/llavataractions.cpp +++ b/indra/newview/llavataractions.cpp @@ -335,7 +335,9 @@ void LLAvatarActions::showProfile(const LLUUID& id)  //static   bool LLAvatarActions::profileVisible(const LLUUID& id)  { -	LLFloaterWebContent *browser = dynamic_cast<LLFloaterWebContent*> (LLFloaterReg::findInstance("web_content", id.asString())); +	LLSD sd; +	sd["id"] = id; +	LLFloaterWebContent *browser = dynamic_cast<LLFloaterWebContent*> (LLFloaterReg::findInstance("web_content", sd));  	return browser && browser->isShown();  } @@ -343,7 +345,9 @@ bool LLAvatarActions::profileVisible(const LLUUID& id)  //static   void LLAvatarActions::hideProfile(const LLUUID& id)  { -	LLFloaterWebContent *browser = dynamic_cast<LLFloaterWebContent*> (LLFloaterReg::findInstance("web_content", id.asString())); +	LLSD sd; +	sd["id"] = id; +	LLFloaterWebContent *browser = dynamic_cast<LLFloaterWebContent*> (LLFloaterReg::findInstance("web_content", sd));  	if (browser)  	{  		browser->closeFloater(); diff --git a/indra/newview/llfloaterwebcontent.cpp b/indra/newview/llfloaterwebcontent.cpp index c7c6857a47..785441a67e 100644 --- a/indra/newview/llfloaterwebcontent.cpp +++ b/indra/newview/llfloaterwebcontent.cpp @@ -87,7 +87,15 @@ BOOL LLFloaterWebContent::postBuild()  bool LLFloaterWebContent::matchesKey(const LLSD& key)  { -	return key["target"].asString() == mKey["target"].asString(); +	LLUUID id = key["id"]; +	if (id.notNull()) +	{ +		return id == mKey["id"].asUUID(); +	} +	else +	{ +		return key["target"].asString() == mKey["target"].asString(); +	}  } @@ -250,6 +258,10 @@ void LLFloaterWebContent::onOpen(const LLSD& key)  		return;  	} +	if (params.target() == params.id().asString()) +	{ +		setRectControl(""); +	}  	mUUID = params.id().asString();  	mWebBrowser->setTrustedContent(params.trusted_content); diff --git a/indra/newview/llmediactrl.h b/indra/newview/llmediactrl.h index 6833453616..0e4a5b1d65 100644 --- a/indra/newview/llmediactrl.h +++ b/indra/newview/llmediactrl.h @@ -166,6 +166,8 @@ public:  		// Incoming media event dispatcher  		virtual void handleMediaEvent(LLPluginClassMedia* self, EMediaEvent event); +		LLUUID getTextureID() {return mMediaTextureID;} +  	protected:  		void convertInputCoords(S32& x, S32& y); diff --git a/indra/newview/llprogressview.cpp b/indra/newview/llprogressview.cpp index 028891a90e..a1f38f1854 100644 --- a/indra/newview/llprogressview.cpp +++ b/indra/newview/llprogressview.cpp @@ -50,6 +50,7 @@  #include "llappviewer.h"  #include "llweb.h"  #include "lluictrlfactory.h" +#include "llpanellogin.h"  LLProgressView* LLProgressView::sInstance = NULL; @@ -66,7 +67,9 @@ LLProgressView::LLProgressView()  	mMediaCtrl( NULL ),  	mMouseDownInActiveArea( false ),  	mUpdateEvents("LLProgressView"), -	mFadeToWorldTimer() +	mFadeToWorldTimer(), +	mFadeFromLoginTimer(), +	mStartupComplete(false)  {  	mUpdateEvents.listen("self", boost::bind(&LLProgressView::handleUpdate, this, _1));  } @@ -79,10 +82,13 @@ BOOL LLProgressView::postBuild()  	mMediaCtrl = getChild<LLMediaCtrl>("login_media_panel");  	mMediaCtrl->setVisible( false );		// hidden initially  	mMediaCtrl->addObserver( this );		// watch events +	 +	LLViewerMedia::setOnlyAudibleMediaTextureID(mMediaCtrl->getTextureID());  	mCancelBtn = getChild<LLButton>("cancel_btn");  	mCancelBtn->setClickedCallback(  LLProgressView::onCancelButtonClicked, NULL );  	mFadeToWorldTimer.stop(); +	mFadeFromLoginTimer.stop();  	getChild<LLTextBox>("title_text")->setText(LLStringExplicit(LLAppViewer::instance()->getSecondLifeTitle())); @@ -130,18 +136,34 @@ void LLProgressView::revealIntroPanel()  	// if user hasn't yet seen intro video  	std::string intro_url = gSavedSettings.getString("PostFirstLoginIntroURL");  	if ( intro_url.length() > 0 &&  +			gSavedSettings.getBOOL("BrowserJavascriptEnabled") &&  			gSavedSettings.getBOOL("PostFirstLoginIntroViewed" ) == FALSE )  	{ +		// hide the progress bar +		getChild<LLView>("stack1")->setVisible(false); +		  		// navigate to intro URL and reveal widget   		mMediaCtrl->navigateTo( intro_url );	  		mMediaCtrl->setVisible( TRUE ); +  		// flag as having seen the new user post login intro  		gSavedSettings.setBOOL("PostFirstLoginIntroViewed", TRUE ); + +		mMediaCtrl->setFocus(TRUE);  	} -	else + +	mFadeFromLoginTimer.start(); +} + +void LLProgressView::setStartupComplete() +{ +	mStartupComplete = true; + +	// if we are not showing a video, fade into world +	if (!mMediaCtrl->getVisible())  	{ -		// start the timer that will control the fade through to the world view  +		mFadeFromLoginTimer.stop();  		mFadeToWorldTimer.start();  	}  } @@ -162,17 +184,15 @@ void LLProgressView::setVisible(BOOL visible)  	}   } -void LLProgressView::draw() -{ -	static LLTimer timer; -	// Paint bitmap if we've got one +void LLProgressView::drawStartTexture(F32 alpha) +{  	glPushMatrix();	  	if (gStartTexture)  	{  		LLGLSUIDefault gls_ui;  		gGL.getTexUnit(0)->bind(gStartTexture.get()); -		gGL.color4f(1.f, 1.f, 1.f, 1.f); +		gGL.color4f(1.f, 1.f, 1.f, alpha);  		F32 image_aspect = (F32)gStartImageWidth / (F32)gStartImageHeight;  		S32 width = getRect().getWidth();  		S32 height = getRect().getHeight(); @@ -198,6 +218,33 @@ void LLProgressView::draw()  		gl_rect_2d(getRect());  	}  	glPopMatrix(); +} + + +void LLProgressView::draw() +{ +	static LLTimer timer; + +	if (mFadeFromLoginTimer.getStarted()) +	{ +		F32 alpha = clamp_rescale(mFadeFromLoginTimer.getElapsedTimeF32(), 0.f, FADE_TO_WORLD_TIME, 0.f, 1.f); +		LLViewDrawContext context(alpha); + +		if (!mMediaCtrl->getVisible()) +		{ +			drawStartTexture(alpha); +		} +		 +		LLPanel::draw(); + +		if (mFadeFromLoginTimer.getElapsedTimeF32() > FADE_TO_WORLD_TIME ) +		{ +			mFadeFromLoginTimer.stop(); +			LLPanelLogin::closePanel(); +		} + +		return; +	}  	// handle fade out to world view when we're asked to  	if (mFadeToWorldTimer.getStarted()) @@ -205,6 +252,8 @@ void LLProgressView::draw()  		// draw fading panel  		F32 alpha = clamp_rescale(mFadeToWorldTimer.getElapsedTimeF32(), 0.f, FADE_TO_WORLD_TIME, 1.f, 0.f);  		LLViewDrawContext context(alpha); +				 +		drawStartTexture(alpha);  		LLPanel::draw();  		// faded out completely - remove panel and reveal world @@ -212,6 +261,8 @@ void LLProgressView::draw()  		{  			mFadeToWorldTimer.stop(); +			LLViewerMedia::setOnlyAudibleMediaTextureID(LLUUID::null); +  			// Fade is complete, release focus  			gFocusMgr.releaseFocusIfNeeded( this ); @@ -235,6 +286,7 @@ void LLProgressView::draw()  		return;  	} +	drawStartTexture(1.0f);  	// draw children  	LLPanel::draw();  } @@ -349,9 +401,26 @@ bool LLProgressView::onAlertModal(const LLSD& notify)  void LLProgressView::handleMediaEvent(LLPluginClassMedia* self, EMediaEvent event)  { +	// the intro web content calls javascript::window.close() when it's done  	if( event == MEDIA_EVENT_CLOSE_REQUEST )  	{ -		// the intro web content calls javascript::window.close() when it's done -		mFadeToWorldTimer.start(); +		if (mStartupComplete) +		{ +			//make sure other timer has stopped +			mFadeFromLoginTimer.stop(); +			mFadeToWorldTimer.start(); +		} +		else +		{ +			// hide the media ctrl and wait for startup to be completed before fading to world +			mMediaCtrl->setVisible(false); +			if (mMediaCtrl->getMediaPlugin()) +			{ +				mMediaCtrl->getMediaPlugin()->stop(); +			} + +			// show the progress bar +			getChild<LLView>("stack1")->setVisible(true); +		}  	}  } diff --git a/indra/newview/llprogressview.h b/indra/newview/llprogressview.h index 73dd478e98..fac00ad04d 100644 --- a/indra/newview/llprogressview.h +++ b/indra/newview/llprogressview.h @@ -48,6 +48,7 @@ public:  	BOOL postBuild();  	/*virtual*/ void draw(); +	void drawStartTexture(F32 alpha);  	/*virtual*/ BOOL handleHover(S32 x, S32 y, MASK mask);  	/*virtual*/ BOOL handleKeyHere(KEY key, MASK mask); @@ -65,6 +66,8 @@ public:  	// turns on (under certain circumstances) the into video after login  	void revealIntroPanel(); +	void setStartupComplete(); +  	void setCancelButtonVisible(BOOL b, const std::string& label);  	static void onCancelButtonClicked( void* ); @@ -82,8 +85,10 @@ protected:  	std::string mMessage;  	LLButton*	mCancelBtn;  	LLFrameTimer mFadeToWorldTimer; +	LLFrameTimer mFadeFromLoginTimer;  	LLRect mOutlineRect;  	bool mMouseDownInActiveArea; +	bool mStartupComplete;  	// The LLEventStream mUpdateEvents depends upon this class being a singleton  	// to avoid pump name conflicts. diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index 4dfcb85295..b390c933f7 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -897,7 +897,7 @@ bool idle_startup()  		if (show_connect_box)  		{  			LLSLURL slurl; -			LLPanelLogin::closePanel(); +			//LLPanelLogin::closePanel();  		} @@ -944,6 +944,8 @@ bool idle_startup()  		gViewerWindow->setShowProgress(TRUE);  		gViewerWindow->setProgressCancelButtonVisible(TRUE, LLTrans::getString("Quit")); +		gViewerWindow->revealIntroPanel(); +  		// Poke the VFS, which could potentially block for a while if  		// Windows XP is acting up  		set_startup_status(0.07f, LLTrans::getString("LoginVerifyingCache"), LLStringUtil::null); @@ -1962,8 +1964,8 @@ bool idle_startup()  		gViewerWindow->getWindow()->resetBusyCount();  		gViewerWindow->getWindow()->setCursor(UI_CURSOR_ARROW);  		LL_DEBUGS("AppInit") << "Done releasing bitmap" << LL_ENDL; -		gViewerWindow->revealIntroPanel(); -		//gViewerWindow->setShowProgress(FALSE);  // reveal intro video now handles this +		//gViewerWindow->revealIntroPanel(); +		gViewerWindow->setStartupComplete();   		gViewerWindow->setProgressCancelButtonVisible(FALSE);  		// We're not away from keyboard, even though login might have taken diff --git a/indra/newview/llvieweraudio.cpp b/indra/newview/llvieweraudio.cpp index b19c738ed2..f7fa5690d6 100644 --- a/indra/newview/llvieweraudio.cpp +++ b/indra/newview/llvieweraudio.cpp @@ -36,6 +36,7 @@  #include "llviewerwindow.h"  #include "llvoiceclient.h"  #include "llviewermedia.h" +#include "llprogressview.h"  ///////////////////////////////////////////////////////// @@ -101,7 +102,16 @@ void audio_update_volume(bool force_update)  {  	F32 master_volume = gSavedSettings.getF32("AudioLevelMaster");  	BOOL mute_audio = gSavedSettings.getBOOL("MuteAudio"); -	if (!gViewerWindow->getActive() && (gSavedSettings.getBOOL("MuteWhenMinimized"))) + +	LLProgressView* progress = gViewerWindow->getProgressView(); +	BOOL progress_view_visible = FALSE; + +	if (progress) +	{ +		progress_view_visible = progress->getVisible(); +	} + +	if (!gViewerWindow->getActive() && gSavedSettings.getBOOL("MuteWhenMinimized"))  	{  		mute_audio = TRUE;  	} @@ -114,7 +124,7 @@ void audio_update_volume(bool force_update)  		gAudiop->setDopplerFactor(gSavedSettings.getF32("AudioLevelDoppler"));  		gAudiop->setRolloffFactor(gSavedSettings.getF32("AudioLevelRolloff")); -		gAudiop->setMuted(mute_audio); +		gAudiop->setMuted(mute_audio || progress_view_visible);  		if (force_update)  		{ @@ -136,7 +146,7 @@ void audio_update_volume(bool force_update)  		F32 music_volume = gSavedSettings.getF32("AudioLevelMusic");  		BOOL music_muted = gSavedSettings.getBOOL("MuteMusic");  		music_volume = mute_volume * master_volume * music_volume; -		gAudiop->setInternetStreamGain ( music_muted ? 0.f : music_volume ); +		gAudiop->setInternetStreamGain ( music_muted || progress_view_visible ? 0.f : music_volume );  	} diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index 1be58eae45..384f7cd61d 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -344,6 +344,8 @@ static LLViewerMedia::impl_id_map sViewerMediaTextureIDMap;  static LLTimer sMediaCreateTimer;  static const F32 LLVIEWERMEDIA_CREATE_DELAY = 1.0f;  static F32 sGlobalVolume = 1.0f; +static bool sForceUpdate = false; +static LLUUID sOnlyAudibleTextureID = LLUUID::null;  static F64 sLowestLoadableImplInterest = 0.0f;  static bool sAnyMediaShowing = false;  static boost::signals2::connection sTeleportFinishConnection; @@ -606,7 +608,7 @@ bool LLViewerMedia::textureHasMedia(const LLUUID& texture_id)  // static  void LLViewerMedia::setVolume(F32 volume)  { -	if(volume != sGlobalVolume) +	if(volume != sGlobalVolume || sForceUpdate)  	{  		sGlobalVolume = volume;  		impl_list::iterator iter = sViewerMediaImplList.begin(); @@ -617,6 +619,8 @@ void LLViewerMedia::setVolume(F32 volume)  			LLViewerMediaImpl* pimpl = *iter;  			pimpl->updateVolume();  		} + +		sForceUpdate = false;  	}  } @@ -1626,6 +1630,15 @@ void LLViewerMedia::onTeleportFinished()  	gSavedSettings.setBOOL("MediaTentativeAutoPlay", true);  } + +////////////////////////////////////////////////////////////////////////////////////////// +// static +void LLViewerMedia::setOnlyAudibleMediaTextureID(const LLUUID& texture_id) +{ +	sOnlyAudibleTextureID = texture_id; +	sForceUpdate = true; +} +  //////////////////////////////////////////////////////////////////////////////////////////  // LLViewerMediaImpl  ////////////////////////////////////////////////////////////////////////////////////////// @@ -2188,7 +2201,14 @@ void LLViewerMediaImpl::updateVolume()  			}  		} -		mMediaSource->setVolume(volume); +		if (sOnlyAudibleTextureID == LLUUID::null || sOnlyAudibleTextureID == mTextureId) +		{ +			mMediaSource->setVolume(volume); +		} +		else +		{ +			mMediaSource->setVolume(0.0f); +		}  	}  } diff --git a/indra/newview/llviewermedia.h b/indra/newview/llviewermedia.h index a70c6f4887..aeac6ba29a 100644 --- a/indra/newview/llviewermedia.h +++ b/indra/newview/llviewermedia.h @@ -160,6 +160,8 @@ public:  	static void createSpareBrowserMediaSource();  	static LLPluginClassMedia* getSpareBrowserMediaSource(); + +	static void setOnlyAudibleMediaTextureID(const LLUUID& texture_id);  private:  	static void setOpenIDCookie(); diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index cff166b825..260840e8e4 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -4531,6 +4531,14 @@ void LLViewerWindow::setShowProgress(const BOOL show)  	}  } +void LLViewerWindow::setStartupComplete() +{ +	if (mProgressView) +	{ +		mProgressView->setStartupComplete(); +	} +} +  BOOL LLViewerWindow::getShowProgress() const  {  	return (mProgressView && mProgressView->getVisible()); diff --git a/indra/newview/llviewerwindow.h b/indra/newview/llviewerwindow.h index ff49ed1f62..edd241a742 100644 --- a/indra/newview/llviewerwindow.h +++ b/indra/newview/llviewerwindow.h @@ -272,6 +272,7 @@ public:  	void			setProgressCancelButtonVisible( BOOL b, const std::string& label = LLStringUtil::null );  	LLProgressView *getProgressView() const;  	void			revealIntroPanel(); +	void			setStartupComplete();  	void			updateObjectUnderCursor();  | 
