diff options
| author | James Cook <james@lindenlab.com> | 2009-12-18 12:32:01 -0800 | 
|---|---|---|
| committer | James Cook <james@lindenlab.com> | 2009-12-18 12:32:01 -0800 | 
| commit | efdfc74b21f5d6386cc03136c4d2a8dcf07f9958 (patch) | |
| tree | 620d86df1d2b2cc409109eace7888cb68e1dc921 /indra | |
| parent | eb501f3231aacb2fd97d8428bb2d25b818b26263 (diff) | |
| parent | c1b58587dfe4711383b1878d341527221d2c298f (diff) | |
Merge with viewer-2-0 again, to pick up avatar changes
Diffstat (limited to 'indra')
21 files changed, 170 insertions, 154 deletions
diff --git a/indra/llplugin/llpluginprocessparent.cpp b/indra/llplugin/llpluginprocessparent.cpp index 608e444375..49f9783824 100644 --- a/indra/llplugin/llpluginprocessparent.cpp +++ b/indra/llplugin/llpluginprocessparent.cpp @@ -39,12 +39,6 @@  #include "llapr.h" -// If we don't receive a heartbeat in this many seconds, we declare the plugin locked up. -static const F32 PLUGIN_LOCKED_UP_SECONDS = 15.0f; - -// Somewhat longer timeout for initial launch. -static const F32 PLUGIN_LAUNCH_SECONDS = 20.0f; -  //virtual   LLPluginProcessParentOwner::~LLPluginProcessParentOwner()  { @@ -59,11 +53,11 @@ LLPluginProcessParent::LLPluginProcessParent(LLPluginProcessParentOwner *owner)  	mDisableTimeout = false;  	mDebug = false; -	// initialize timer - heartbeat test (mHeartbeat.hasExpired())  -	// can sometimes return true immediately otherwise and plugins  -	// fail immediately because it looks like  -//	mHeartbeat.initClass(); -	mHeartbeat.setTimerExpirySec(PLUGIN_LOCKED_UP_SECONDS); +	mPluginLaunchTimeout = 60.0f; +	mPluginLockupTimeout = 15.0f; +	 +	// Don't start the timer here -- start it when we actually launch the plugin process. +	mHeartbeat.stop();  }  LLPluginProcessParent::~LLPluginProcessParent() @@ -326,7 +320,7 @@ void LLPluginProcessParent::idle(void)  					// This will allow us to time out if the process never starts.  					mHeartbeat.start(); -					mHeartbeat.setTimerExpirySec(PLUGIN_LAUNCH_SECONDS); +					mHeartbeat.setTimerExpirySec(mPluginLaunchTimeout);  					setState(STATE_LAUNCHED);  				}  			} @@ -560,7 +554,7 @@ void LLPluginProcessParent::receiveMessage(const LLPluginMessage &message)  		else if(message_name == "heartbeat")  		{  			// this resets our timer. -			mHeartbeat.setTimerExpirySec(PLUGIN_LOCKED_UP_SECONDS); +			mHeartbeat.setTimerExpirySec(mPluginLockupTimeout);  			mCPUUsage = message.getValueReal("cpu_usage"); @@ -715,7 +709,7 @@ bool LLPluginProcessParent::pluginLockedUpOrQuit()  bool LLPluginProcessParent::pluginLockedUp()  { -	// If the timer has expired, the plugin has locked up. -	return mHeartbeat.hasExpired(); +	// If the timer is running and has expired, the plugin has locked up. +	return (mHeartbeat.getStarted() && mHeartbeat.hasExpired());  } diff --git a/indra/llplugin/llpluginprocessparent.h b/indra/llplugin/llpluginprocessparent.h index 03ce10f86c..524cd9923f 100644 --- a/indra/llplugin/llpluginprocessparent.h +++ b/indra/llplugin/llpluginprocessparent.h @@ -102,6 +102,9 @@ public:  	bool getDisableTimeout() { return mDisableTimeout; };  	void setDisableTimeout(bool disable) { mDisableTimeout = disable; }; +	 +	void setLaunchTimeout(F32 timeout) { mPluginLaunchTimeout = timeout; }; +	void setLockupTimeout(F32 timeout) { mPluginLockupTimeout = timeout; };  	F64 getCPUUsage() { return mCPUUsage; }; @@ -158,6 +161,10 @@ private:  	bool mDebug;  	LLProcessLauncher mDebugger; +	 +	F32 mPluginLaunchTimeout;		// Somewhat longer timeout for initial launch. +	F32 mPluginLockupTimeout;		// If we don't receive a heartbeat in this many seconds, we declare the plugin locked up. +  };  #endif // LL_LLPLUGINPROCESSPARENT_H diff --git a/indra/llui/llmultisliderctrl.cpp b/indra/llui/llmultisliderctrl.cpp index 87938c19d4..7323323d8c 100644 --- a/indra/llui/llmultisliderctrl.cpp +++ b/indra/llui/llmultisliderctrl.cpp @@ -328,7 +328,7 @@ void LLMultiSliderCtrl::updateText()  // static  void LLMultiSliderCtrl::onEditorCommit( LLUICtrl* ctrl, const LLSD& userdata)  { -	LLMultiSliderCtrl* self = dynamic_cast<LLMultiSliderCtrl*>(ctrl); +	LLMultiSliderCtrl* self = dynamic_cast<LLMultiSliderCtrl*>(ctrl->getParent());  	if (!ctrl)  		return; @@ -369,7 +369,7 @@ void LLMultiSliderCtrl::onEditorCommit( LLUICtrl* ctrl, const LLSD& userdata)  // static  void LLMultiSliderCtrl::onSliderCommit(LLUICtrl* ctrl, const LLSD& userdata)  { -	LLMultiSliderCtrl* self = dynamic_cast<LLMultiSliderCtrl*>(ctrl); +	LLMultiSliderCtrl* self = dynamic_cast<LLMultiSliderCtrl*>(ctrl->getParent());  	if (!self)  		return; diff --git a/indra/media_plugins/webkit/media_plugin_webkit.cpp b/indra/media_plugins/webkit/media_plugin_webkit.cpp index 7be2385fd5..4b6da552cf 100644 --- a/indra/media_plugins/webkit/media_plugin_webkit.cpp +++ b/indra/media_plugins/webkit/media_plugin_webkit.cpp @@ -98,6 +98,12 @@ private:  	int mLastMouseY;  	bool mFirstFocus; +	void setInitState(int state) +	{ +//		std::cerr << "changing init state to " << state << std::endl; +		mInitState = state; +	} +	  	////////////////////////////////////////////////////////////////////////////////  	//  	void update(int milliseconds) @@ -234,7 +240,7 @@ private:  			LLQtWebKit::getInstance()->setBackgroundColor( mBrowserWindowId, 0x00, 0x00, 0x00 );  			// Set state _before_ starting the navigate, since onNavigateBegin might get called before this call returns. -			mInitState = INIT_STATE_NAVIGATING; +			setInitState(INIT_STATE_NAVIGATING);  			// Don't do this here -- it causes the dreaded "white flash" when loading a browser instance.  			// FIXME: Re-added this because navigating to a "page" initializes things correctly - especially @@ -289,7 +295,7 @@ private:  	{  		if(mInitState == INIT_STATE_WAIT_REDRAW)  		{ -			mInitState = INIT_STATE_RUNNING; +			setInitState(INIT_STATE_RUNNING);  		}  		// flag that an update is required @@ -311,7 +317,7 @@ private:  		if(mInitState == INIT_STATE_NAVIGATE_COMPLETE)  		{ -			mInitState = INIT_STATE_WAIT_REDRAW; +			setInitState(INIT_STATE_WAIT_REDRAW);  		}  	} @@ -334,7 +340,7 @@ private:  		}  		else if(mInitState == INIT_STATE_NAVIGATING)  		{ -			mInitState = INIT_STATE_NAVIGATE_COMPLETE; +			setInitState(INIT_STATE_NAVIGATE_COMPLETE);  		}  	} diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp index 1e2eac39eb..454e547155 100644 --- a/indra/newview/llagentwearables.cpp +++ b/indra/newview/llagentwearables.cpp @@ -875,6 +875,9 @@ void LLAgentWearables::processAgentInitialWearablesUpdate(LLMessageSystem* mesgs  	LLUUID agent_id;  	gMessageSystem->getUUIDFast(_PREHASH_AgentData, _PREHASH_AgentID, agent_id); +	const BOOL is_first_time_in_viewer2_0 = (gInventory.findCategoryUUIDForType(LLFolderType::FT_CURRENT_OUTFIT, FALSE) == LLUUID::null); + +  	LLVOAvatar* avatar = gAgent.getAvatarObject();  	if (avatar && (agent_id == avatar->getID()))  	{ @@ -954,7 +957,8 @@ void LLAgentWearables::processAgentInitialWearablesUpdate(LLMessageSystem* mesgs  			gInventory.addObserver(outfit);  		} -		gAgentWearables.populateMyOutfitsFolder(); +		if (is_first_time_in_viewer2_0) +			gAgentWearables.populateMyOutfitsFolder();  	}  } diff --git a/indra/newview/llfolderview.cpp b/indra/newview/llfolderview.cpp index 98fae1c2a0..8b05f8614d 100644 --- a/indra/newview/llfolderview.cpp +++ b/indra/newview/llfolderview.cpp @@ -330,8 +330,8 @@ BOOL LLFolderView::addFolder( LLFolderViewFolder* folder)  	else  	{  		mFolders.insert(mFolders.begin(), folder); -		folder->setShowLoadStatus(true);  	} +	folder->setShowLoadStatus(true);  	folder->setOrigin(0, 0);  	folder->reshape(getRect().getWidth(), 0);  	folder->setVisible(FALSE); @@ -774,7 +774,7 @@ void LLFolderView::sanitizeSelection()  				parent_folder;  				parent_folder = parent_folder->getParentFolder())  			{ -				if (parent_folder->potentiallyVisible()) +				if (parent_folder->potentiallyVisible() && !parent_folder->getDontShowInHierarchy())  				{  					// give initial selection to first ancestor folder that potentially passes the filter  					if (!new_selection) @@ -795,6 +795,11 @@ void LLFolderView::sanitizeSelection()  		{  			// nothing selected to start with, so pick "My Inventory" as best guess  			new_selection = getItemByID(gInventory.getRootFolderID()); +			// ... except if it's hidden from the UI. +			if (new_selection && new_selection->getDontShowInHierarchy()) +			{ +				new_selection = NULL; +			}  		}  		if (new_selection) diff --git a/indra/newview/llfolderviewitem.cpp b/indra/newview/llfolderviewitem.cpp index 9ae0c9100a..bfd9d6dca7 100644 --- a/indra/newview/llfolderviewitem.cpp +++ b/indra/newview/llfolderviewitem.cpp @@ -969,19 +969,18 @@ void LLFolderViewItem::draw()  		} +		font->renderUTF8( mLabel, 0, text_left, y, color, +				   LLFontGL::LEFT, LLFontGL::BOTTOM, LLFontGL::NORMAL, LLFontGL::NO_SHADOW, +			S32_MAX, getRect().getWidth() - (S32) text_left, &right_x, TRUE); +  		if ( (mIsLoading && mTimeSinceRequestStart.getElapsedTimeF32() >= gSavedSettings.getF32("FolderLoadingMessageWaitTime"))  			|| (LLInventoryModel::backgroundFetchActive() && mShowLoadStatus) )  		{ -			std::string load_string = LLTrans::getString("LoadingData") + " "; -			font->renderUTF8(load_string, 0, text_left, y, sSearchStatusColor, +			std::string load_string = " ( " + LLTrans::getString("LoadingData") + " ) "; +			font->renderUTF8(load_string, 0, right_x, y, sSearchStatusColor,  					  LLFontGL::LEFT, LLFontGL::BOTTOM, LLFontGL::NORMAL, LLFontGL::NO_SHADOW, S32_MAX, S32_MAX, &right_x, FALSE); -			text_left = right_x;  		} -		font->renderUTF8( mLabel, 0, text_left, y, color, -				   LLFontGL::LEFT, LLFontGL::BOTTOM, LLFontGL::NORMAL, LLFontGL::NO_SHADOW, -			S32_MAX, getRect().getWidth() - (S32) text_left, &right_x, TRUE); -  		if (!mLabelSuffix.empty())  		{  			font->renderUTF8( mLabelSuffix, 0, right_x, y, sSuffixColor, diff --git a/indra/newview/llinventoryfilter.cpp b/indra/newview/llinventoryfilter.cpp index 522edd0cb5..b4dcb566e4 100644 --- a/indra/newview/llinventoryfilter.cpp +++ b/indra/newview/llinventoryfilter.cpp @@ -218,6 +218,7 @@ std::string::size_type LLInventoryFilter::getStringMatchOffset() const  BOOL LLInventoryFilter::isNotDefault() const  {  	return mFilterOps.mFilterObjectTypes != mDefaultFilterOps.mFilterObjectTypes  +		|| mFilterOps.mFilterTypes != FILTERTYPE_OBJECT  		|| mFilterSubString.size()   		|| mFilterOps.mPermissions != mDefaultFilterOps.mPermissions  		|| mFilterOps.mMinDate != mDefaultFilterOps.mMinDate  @@ -227,7 +228,8 @@ BOOL LLInventoryFilter::isNotDefault() const  BOOL LLInventoryFilter::isActive() const  { -	return mFilterOps.mFilterObjectTypes != 0xffffffffffffffffULL  +	return mFilterOps.mFilterObjectTypes != 0xffffffffffffffffULL +		|| mFilterOps.mFilterTypes != FILTERTYPE_OBJECT  		|| mFilterSubString.size()   		|| mFilterOps.mPermissions != PERM_NONE   		|| mFilterOps.mMinDate != time_min() diff --git a/indra/newview/llinventoryfilter.h b/indra/newview/llinventoryfilter.h index 5ca77cb26a..b01554edc8 100644 --- a/indra/newview/llinventoryfilter.h +++ b/indra/newview/llinventoryfilter.h @@ -162,8 +162,8 @@ private:  		FilterOps();  		U32 			mFilterTypes; -		U64				mFilterObjectTypes; // For _ITEM -		U64				mFilterCategoryTypes; // For _ITEM +		U64				mFilterObjectTypes; // For _OBJECT +		U64				mFilterCategoryTypes; // For _CATEGORY  		LLUUID      	mFilterUUID; // for UUID  		time_t			mMinDate; diff --git a/indra/newview/llmediactrl.cpp b/indra/newview/llmediactrl.cpp index f32866b1fe..199bd966ef 100644 --- a/indra/newview/llmediactrl.cpp +++ b/indra/newview/llmediactrl.cpp @@ -95,7 +95,8 @@ LLMediaCtrl::LLMediaCtrl( const Params& p) :  	mHidingInitialLoad (false),  	mDecoupleTextureSize ( false ),  	mTextureWidth ( 1024 ), -	mTextureHeight ( 1024 ) +	mTextureHeight ( 1024 ), +	mClearCache(false)  {  	{  		LLColor4 color = p.caret_color().get(); @@ -491,6 +492,21 @@ void LLMediaCtrl::clr404RedirectUrl()  ////////////////////////////////////////////////////////////////////////////////  // +void LLMediaCtrl::clearCache() +{ +	if(mMediaSource) +	{ +		mMediaSource->clearCache(); +	} +	else +	{ +		mClearCache = true; +	} + +} + +//////////////////////////////////////////////////////////////////////////////// +//  void LLMediaCtrl::navigateTo( std::string url_in, std::string mime_type)  {  	// don't browse to anything that starts with secondlife:// or sl:// @@ -617,7 +633,12 @@ bool LLMediaCtrl::ensureMediaSourceExists()  			mMediaSource->setHomeURL(mHomePageUrl);  			mMediaSource->setVisible( getVisible() );  			mMediaSource->addObserver( this ); - +			if(mClearCache) +			{ +				mMediaSource->clearCache(); +				mClearCache = false; +			} +			  			if(mHideLoading)  			{  				mHidingInitialLoad = true; diff --git a/indra/newview/llmediactrl.h b/indra/newview/llmediactrl.h index f07513a3fd..8f9e6e7179 100644 --- a/indra/newview/llmediactrl.h +++ b/indra/newview/llmediactrl.h @@ -117,6 +117,9 @@ public:  		// set/clear URL to visit when a 404 page is reached  		void set404RedirectUrl( std::string redirect_url );  		void clr404RedirectUrl(); +		 +		// Clear the browser cache when the instance gets loaded +		void clearCache();  		// accessor/mutator for flag that indicates if frequent updates to texture happen  		bool getFrequentUpdates() { return mFrequentUpdates; }; @@ -192,6 +195,7 @@ public:  		bool mDecoupleTextureSize;  		S32 mTextureWidth;  		S32 mTextureHeight; +		bool mClearCache;  };  #endif // LL_LLMediaCtrl_H diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp index 1d89c3bde0..a9c7b908ed 100644 --- a/indra/newview/llpanellogin.cpp +++ b/indra/newview/llpanellogin.cpp @@ -272,6 +272,9 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect,  	// get the web browser control  	LLMediaCtrl* web_browser = getChild<LLMediaCtrl>("login_html");  	web_browser->addObserver(this); +	 +	// Clear the browser's cache to avoid any potential for the cache messing up the login screen. +	web_browser->clearCache();  	// Need to handle login secondlife:///app/ URLs  	web_browser->setTrusted( true ); diff --git a/indra/newview/llpaneloutfitsinventory.cpp b/indra/newview/llpaneloutfitsinventory.cpp index f9777147b7..8e14074de1 100644 --- a/indra/newview/llpaneloutfitsinventory.cpp +++ b/indra/newview/llpaneloutfitsinventory.cpp @@ -80,6 +80,7 @@ BOOL LLPanelOutfitsInventory::postBuild()  	sShowDebugEditor = gSavedSettings.getBOOL("ShowDebugAppearanceEditor");  	initTabPanels();  	initListCommandsHandlers(); +  	return TRUE;  } @@ -431,6 +432,7 @@ void LLPanelOutfitsInventory::initTabPanels()  	mTabPanels[0] = myoutfits_panel;  	mActivePanel = myoutfits_panel; +  	LLInventoryPanel *cof_panel = getChild<LLInventoryPanel>("cof_accordionpanel");  	cof_panel->setShowFolderState(LLInventoryFilter::SHOW_NON_EMPTY_FOLDERS);  	mTabPanels[1] = cof_panel; diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index 103a70e032..df62c9628d 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -160,36 +160,25 @@ public:  		std::string media_type = content["content-type"].asString();  		std::string::size_type idx1 = media_type.find_first_of(";");  		std::string mime_type = media_type.substr(0, idx1); -		completeAny(status, mime_type); -	} -	virtual void error( U32 status, const std::string& reason ) -	{ -		if(status == 401) -		{ -			// This is the "you need to authenticate" status.   -			// Treat this like an html page. -			completeAny(status, "text/html"); -		} -		else -		if(status == 403) -		{ -			completeAny(status, "text/html"); -		} -		else -		if(status == 404) -		{ -			// 404 is content not found - sites often have bespoke 404 pages so -			// treat them like an html page. -			completeAny(status, "text/html"); -		} -		else -		if(status == 406) +		lldebugs << "status is " << status << ", media type \"" << media_type << "\"" << llendl; +		 +		// 2xx status codes indicate success. +		// Most 4xx status codes are successful enough for our purposes. +		// 499 is the error code for host not found, timeout, etc. +		if(	((status >= 200) && (status < 300))	|| +			((status >= 400) && (status < 499))	)  		{ -			// 406 means the server sent something that we didn't indicate was acceptable -			// Eventually we should send what we accept in the headers but for now, -			// treat 406s like an html page. -			completeAny(status, "text/html"); +			// The probe was successful. +			 +			if(mime_type.empty()) +			{ +				// Some sites don't return any content-type header at all. +				// Treat an empty mime type as text/html. +				mime_type = "text/html"; +			} +			 +			completeAny(status, mime_type);  		}  		else  		{ @@ -200,6 +189,7 @@ public:  				mMediaImpl->mMediaSourceFailed = true;  			}  		} +  	}  	void completeAny(U32 status, const std::string& mime_type) @@ -582,8 +572,8 @@ bool LLViewerMedia::isInterestingEnough(const LLVOVolume *object, const F64 &obj  	}  	else   	{ -		llinfos << "object interest = " << object_interest << ", lowest loadable = " << sLowestLoadableImplInterest << llendl; -		if(object_interest > sLowestLoadableImplInterest) +		lldebugs << "object interest = " << object_interest << ", lowest loadable = " << sLowestLoadableImplInterest << llendl; +		if(object_interest >= sLowestLoadableImplInterest)  			result = true;  	} @@ -929,6 +919,7 @@ LLViewerMediaImpl::LLViewerMediaImpl(	  const LLUUID& texture_id,  	mMimeTypeProbe(NULL),  	mMediaAutoPlay(false),  	mInNearbyMediaList(false), +	mClearCache(false),  	mIsUpdated(false)  {  @@ -1139,6 +1130,12 @@ bool LLViewerMediaImpl::initializePlugin(const std::string& media_type)  		media_source->setBrowserUserAgent(LLViewerMedia::getCurrentUserAgent());  		media_source->focus(mHasFocus); +		if(mClearCache) +		{ +			mClearCache = false; +			media_source->clear_cache(); +		} +		  		mMediaSource = media_source;  		updateVolume(); @@ -1352,6 +1349,19 @@ std::string LLViewerMediaImpl::getCurrentMediaURL()  }  ////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::clearCache() +{ +	if(mMediaSource) +	{ +		mMediaSource->clear_cache(); +	} +	else +	{ +		mClearCache = true; +	} +} + +//////////////////////////////////////////////////////////////////////////////////////////  void LLViewerMediaImpl::mouseDown(S32 x, S32 y, MASK mask, S32 button)  {  	scaleMouse(&x, &y); @@ -1633,7 +1643,12 @@ void LLViewerMediaImpl::navigateInternal()  		if(scheme.empty() || "http" == scheme || "https" == scheme)  		{ -			LLHTTPClient::getHeaderOnly( mMediaURL, new LLMimeDiscoveryResponder(this), 10.0f); +			// If we don't set an Accept header, LLHTTPClient will add one like this: +			//    Accept: application/llsd+xml +			// which is really not what we want. +			LLSD headers = LLSD::emptyMap(); +			headers["Accept"] = "*/*"; +			LLHTTPClient::getHeaderOnly( mMediaURL, new LLMimeDiscoveryResponder(this), headers, 10.0f);  		}  		else if("data" == scheme || "file" == scheme || "about" == scheme)  		{ diff --git a/indra/newview/llviewermedia.h b/indra/newview/llviewermedia.h index 7151186089..28fb379960 100644 --- a/indra/newview/llviewermedia.h +++ b/indra/newview/llviewermedia.h @@ -188,6 +188,7 @@ public:  	std::string getCurrentMediaURL();  	std::string getHomeURL() { return mHomeURL; }      void setHomeURL(const std::string& home_url) { mHomeURL = home_url; }; +	void clearCache();  	std::string getMimeType() { return mMimeType; }  	void scaleMouse(S32 *mouse_x, S32 *mouse_y);  	void scaleTextureCoords(const LLVector2& texture_coords, S32 *x, S32 *y); @@ -355,6 +356,7 @@ public:  	bool mMediaAutoPlay;  	std::string mMediaEntryURL;  	bool mInNearbyMediaList;	// used by LLFloaterNearbyMedia::refreshList() for performance reasons +	bool mClearCache;  private:  	BOOL mIsUpdated ; diff --git a/indra/newview/llwearable.h b/indra/newview/llwearable.h index 82d388ab7e..7a579b248e 100644 --- a/indra/newview/llwearable.h +++ b/indra/newview/llwearable.h @@ -127,6 +127,7 @@ public:  	void 				setClothesColor( S32 te, const LLColor4& new_color, BOOL upload_bake );  	void				revertValues(); +	void				saveValues();  	BOOL				isOnTop() const; @@ -143,7 +144,6 @@ private:  	void 				createLayers(S32 te);  	void 				createVisualParams(); -	void				saveValues();  	void				syncImages(te_map_t &src, te_map_t &dst);  	void				destroyTextures();			 diff --git a/indra/newview/llwearablelist.cpp b/indra/newview/llwearablelist.cpp index bd7619f7e5..5636256856 100644 --- a/indra/newview/llwearablelist.cpp +++ b/indra/newview/llwearablelist.cpp @@ -249,9 +249,13 @@ LLWearable* LLWearableList::createNewWearable( EWearableType type )  	wearable->setParamsToDefaults();  	wearable->setTexturesToDefaults(); +	//mark all values (params & images) as saved +	wearable->saveValues(); +  	// Send to the dataserver  	wearable->saveNewAsset(); +  	return wearable;  } diff --git a/indra/newview/skins/default/xui/en/floater_about_land.xml b/indra/newview/skins/default/xui/en/floater_about_land.xml index 70018d2295..81e6503407 100644 --- a/indra/newview/skins/default/xui/en/floater_about_land.xml +++ b/indra/newview/skins/default/xui/en/floater_about_land.xml @@ -1672,9 +1672,7 @@ Only large parcels can be listed in search.               name="replace_texture_help"               width="300"               word_wrap="true"> -             Objects using this texture will show the movie or web page after you click the play arrow. - -Select the thumbnail to choose a different texture. +             Objects using this texture will show the movie or web page after you click the play arrow.  Select the thumbnail to choose a different texture.              </text>              <check_box               height="16" diff --git a/indra/newview/skins/default/xui/en/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/en/floater_day_cycle_options.xml index 35f3e643c3..8c5af2283d 100644 --- a/indra/newview/skins/default/xui/en/floater_day_cycle_options.xml +++ b/indra/newview/skins/default/xui/en/floater_day_cycle_options.xml @@ -65,11 +65,9 @@              <text               type="string"               length="1" -             bg_visible="true"               border_visible="true" -             control_name="WL12am"               follows="left|top|right" -             height="6" +             height="16"               layout="topleft"               left="8"               name="WL12am" @@ -80,11 +78,9 @@              <text               type="string"               length="1" -             bg_visible="true"               border_visible="true" -             control_name="WL3am"               follows="left|top|right" -             height="6" +             height="16"               layout="topleft"               left_pad="10"               name="WL3am" @@ -95,11 +91,9 @@              <text               type="string"               length="1" -             bg_visible="true"               border_visible="true" -             control_name="WL6am"               follows="left|top|right" -             height="6" +             height="16"               layout="topleft"               left_pad="10"               name="WL6am" @@ -110,11 +104,9 @@              <text               type="string"               length="1" -             bg_visible="true"               border_visible="true" -             control_name="WL9am"               follows="left|top|right" -             height="6" +             height="16"               layout="topleft"               left_pad="10"               name="WL9amHash" @@ -125,11 +117,9 @@              <text               type="string"               length="1" -             bg_visible="true"               border_visible="true" -             control_name="WL12pm"               follows="left|top|right" -             height="6" +             height="16"               layout="topleft"               left_pad="10"               name="WL12pmHash" @@ -140,11 +130,9 @@              <text               type="string"               length="1" -             bg_visible="true"               border_visible="true" -             control_name="WL3pm"               follows="left|top|right" -             height="6" +             height="16"               layout="topleft"               left_pad="10"               name="WL3pm" @@ -155,11 +143,9 @@              <text               type="string"               length="1" -             bg_visible="true"               border_visible="true" -             control_name="WL6pm"               follows="left|top|right" -             height="6" +             height="16"               layout="topleft"               left_pad="10"               name="WL6pm" @@ -170,11 +156,9 @@              <text               type="string"               length="1" -             bg_visible="true"               border_visible="true" -             control_name="WL9pm"               follows="left|top|right" -             height="6" +             height="16"               layout="topleft"               left_pad="10"               name="WL9pm" @@ -185,11 +169,9 @@              <text               type="string"               length="1" -             bg_visible="true"               border_visible="true" -             control_name="WL12am2"               follows="left|top|right" -             height="6" +             height="16"               layout="topleft"               left_pad="10"               name="WL12am2" @@ -200,9 +182,7 @@              <text               type="string"               length="1" -             bg_visible="true"               border_visible="true" -             control_name="WL12amHash"               follows="left|top|right"               font="SansSerif"               height="14" @@ -210,135 +190,119 @@               left="20"               name="WL12amHash"               top="54" -             width="4"> +             width="6">                  |              </text>              <text               type="string"               length="1" -             bg_visible="true"               border_visible="true" -             control_name="WL3amHash"               follows="left|top|right"               font="SansSerif"               height="11"               layout="topleft" -             left_pad="61" +             left_pad="59"               name="WL3amHash"               top_delta="3" -             width="4"> +             width="6">                  I              </text>              <text               type="string"               length="1" -             bg_visible="true"               border_visible="true" -             control_name="WL6amHash"               follows="left|top|right"               font="SansSerif"               height="14"               layout="topleft" -             left_pad="61" +             left_pad="59"               name="WL6amHash"               top_delta="-3" -             width="4"> +             width="6">                  |              </text>              <text               type="string"               length="1" -             bg_visible="true"               border_visible="true" -             control_name="WL9amHash"               follows="left|top|right"               font="SansSerif"               height="11"               layout="topleft" -             left_pad="61" +             left_pad="59"               name="WL9amHash2"               top_delta="3" -             width="4"> +             width="6">                  I              </text>              <text               type="string"               length="1" -             bg_visible="true"               border_visible="true" -             control_name="WL12pmHash"               follows="left|top|right"               font="SansSerif"               height="14"               layout="topleft" -             left_pad="61" +             left_pad="59"               name="WL12pmHash2"               top_delta="-3" -             width="4"> +             width="6">                  |              </text>              <text               type="string"               length="1" -             bg_visible="true"               border_visible="true" -             control_name="WL3pmHash"               follows="left|top|right"               font="SansSerif"               height="11"               layout="topleft" -             left_pad="61" +             left_pad="59"               name="WL3pmHash"               top_delta="3" -             width="4"> +             width="6">                  I              </text>              <text               type="string"               length="1" -             bg_visible="true"               border_visible="true" -             control_name="WL6pmHash"               follows="left|top|right"               font="SansSerif"               height="14"               layout="topleft" -             left_pad="61" +             left_pad="59"               name="WL6pmHash"               top_delta="-3" -             width="4"> +             width="6">                  |              </text>              <text               type="string"               length="1" -             bg_visible="true"               border_visible="true" -             control_name="WL9pmHash"               follows="left|top|right"               font="SansSerif"               height="11"               layout="topleft" -             left_pad="61" +             left_pad="59"               name="WL9pmHash"               top_delta="3" -             width="4"> +             width="6">                  I              </text>              <text               type="string"               length="1" -             bg_visible="true"               border_visible="true" -             control_name="WL12amHash2"               follows="left|top|right"               font="SansSerif"               height="14"               layout="topleft" -             left_pad="61" +             left_pad="59"               name="WL12amHash2"               top_delta="-3" -             width="4"> +             width="6">                  |              </text>              <button @@ -346,9 +310,9 @@               label="Add Key"               label_selected="Add Key"               layout="topleft" -             left="550" +             left="555"               name="WLAddKey" -             top="20" +             top="30"               width="80" />              <button               height="20" @@ -362,9 +326,7 @@              <text               type="string"               length="1" -             bg_visible="true"               border_visible="true" -             control_name="DayCycleText"               follows="left|top|right"               font="SansSerif"               height="16" @@ -378,9 +340,7 @@              <text               type="string"               length="1" -             bg_visible="true"               border_visible="true" -             control_name="DayCycleText"               follows="left|top|right"               font="SansSerif"               height="16" @@ -424,9 +384,7 @@              <text               type="string"               length="1" -             bg_visible="true"               border_visible="true" -             control_name="WLCurKeyTimeText"               follows="left|top|right"               font="SansSerif"               height="16" @@ -456,9 +414,7 @@              <text               type="string"               length="1" -             bg_visible="true"               border_visible="true" -             control_name="DayCycleText"               follows="left|top|right"               font="SansSerif"               height="16" @@ -481,9 +437,7 @@              <text               type="string"               length="1" -             bg_visible="true"               border_visible="true" -             control_name="DayCycleText"               follows="left|top|right"               font="SansSerif"               height="16" @@ -542,9 +496,7 @@              <text               type="string"               length="1" -             bg_visible="true"               border_visible="true" -             control_name="DayCycleText"               follows="left|top|right"               font="SansSerif"               height="16" @@ -560,7 +512,7 @@               label="Play"               label_selected="Play"               layout="topleft" -             left_delta="0" +             left_delta="60"               name="WLAnimSky"               top_pad="5"               width="50" /> @@ -581,7 +533,7 @@               left_pad="5"               name="WLUseLindenTime"               top_delta="0" -             width="140" /> +             width="150" />              <button               height="20"               label="Save Test Day" diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index ffb11d1737..87d1fc071d 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -4341,7 +4341,6 @@ Hmm. Gesture [NAME] is missing from the database.     name="UnableToLoadGesture"     type="notifytip">  Unable to load gesture [NAME]. -Please try again.    </notification>    <notification diff --git a/indra/newview/skins/default/xui/en/panel_media_settings_security.xml b/indra/newview/skins/default/xui/en/panel_media_settings_security.xml index 1f41a0d284..1f580831f9 100644 --- a/indra/newview/skins/default/xui/en/panel_media_settings_security.xml +++ b/indra/newview/skins/default/xui/en/panel_media_settings_security.xml @@ -17,7 +17,7 @@     font="SansSerifSmall"     height="16"      initial_value="false" -   label="Only Allow Access to Specified URLs (by prefix)"  +   label="Only Allow Access to Specified URL patterns"      left="10"      mouse_opaque="true"     name="whitelist_enable"  @@ -81,10 +81,9 @@     height="40"     left="30"     text_color="0.6 0.0 0.0 1.0" +   word_wrap="true"      name="home_url_fails_whitelist"> -Warning: the home page specified in the General tab  -fails to pass this whitelist. It has been disabled  -until a valid entry has been added. +Warning: the home page specified in the General tab fails to pass this whitelist. It has been disabled until a valid entry has been added.    </text>  </panel>  | 
