diff options
| -rw-r--r-- | .hgtags | 4 | ||||
| -rw-r--r-- | indra/llui/lltextbase.cpp | 13 | ||||
| -rw-r--r-- | indra/newview/app_settings/shaders/class1/interface/solidcolorV.glsl | 1 | ||||
| -rwxr-xr-x | indra/newview/llagent.cpp | 4 | ||||
| -rw-r--r-- | indra/newview/llexpandabletextbox.cpp | 9 | ||||
| -rw-r--r-- | indra/newview/llexpandabletextbox.h | 4 | ||||
| -rw-r--r-- | indra/newview/llfloaterbuyland.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llfloaterland.cpp | 13 | ||||
| -rw-r--r-- | indra/newview/llfloaterregioninfo.cpp | 9 | ||||
| -rw-r--r-- | indra/newview/llpanelplaceprofile.cpp | 31 | ||||
| -rw-r--r-- | indra/newview/llviewerregion.cpp | 5 | ||||
| -rw-r--r-- | indra/newview/llviewerregion.h | 2 | 
12 files changed, 73 insertions, 24 deletions
| @@ -153,4 +153,8 @@ e1ed60913230dd64269a7f7fc52cbc6004f6d52c 2.8.0-start  6866d9df6efbd441c66451debd376d21211de39c 2.7.5-release  e1ed60913230dd64269a7f7fc52cbc6004f6d52c DRTVWR-71_2.8.0-beta1  e1ed60913230dd64269a7f7fc52cbc6004f6d52c 2.8.0-beta1 +493d9127ee50e84ba08a736a65a23ca86f7a5b01 DRTVWR-70_2.8.0-release +2c7e459e0c883f8e406b932e41e60097e9ee077e DRTVWR-73_2.8.1-beta1 +2c7e459e0c883f8e406b932e41e60097e9ee077e 2.8.1-beta1  54bc7823ad4e3a436fef79710f685a7372bbf795 2.8.2-start +493d9127ee50e84ba08a736a65a23ca86f7a5b01 2.8.0-release diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp index 349dbc3405..919364be63 100644 --- a/indra/llui/lltextbase.cpp +++ b/indra/llui/lltextbase.cpp @@ -2024,8 +2024,17 @@ S32 LLTextBase::getDocIndexFromLocalCoord( S32 local_x, S32 local_y, BOOL round,  		}  		else if (hit_past_end_of_line && segmentp->getEnd() >= line_iter->mDocIndexEnd)  		{ -			// segment wraps to next line, so just set doc pos to the end of the line -			pos = llclamp(line_iter->mDocIndexEnd - 1, 0, getLength()); +			if (getLineNumFromDocIndex(line_iter->mDocIndexEnd - 1) == line_iter->mLineNum) +			{ +				// if segment wraps to the next line we should step one char back +				// to compensate for the space char between words +				// which is removed due to wrapping +				pos = llclamp(line_iter->mDocIndexEnd - 1, 0, getLength()); +			} +			else +			{ +				pos = llclamp(line_iter->mDocIndexEnd, 0, getLength()); +			}  			break;  		}  		start_x += text_width; diff --git a/indra/newview/app_settings/shaders/class1/interface/solidcolorV.glsl b/indra/newview/app_settings/shaders/class1/interface/solidcolorV.glsl index 5a854b4e02..8401208e28 100644 --- a/indra/newview/app_settings/shaders/class1/interface/solidcolorV.glsl +++ b/indra/newview/app_settings/shaders/class1/interface/solidcolorV.glsl @@ -10,6 +10,7 @@  void main()  {  	gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; +	gl_FrontColor = gl_Color;  	gl_TexCoord[0] = gl_MultiTexCoord0;  } diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp index 492cfe7c1b..642a1907f0 100755 --- a/indra/newview/llagent.cpp +++ b/indra/newview/llagent.cpp @@ -3356,8 +3356,8 @@ bool LLAgent::teleportCore(bool is_local)  	// hide the Region/Estate floater  	LLFloaterReg::hideInstance("region_info"); -	// hide the search floater (EXT-8276) -	LLFloaterReg::hideInstance("search"); +	// minimize the Search floater (STORM-1474) +	LLFloaterReg::getInstance("search")->setMinimized(TRUE);  	LLViewerParcelMgr::getInstance()->deselectLand();  	LLViewerMediaFocus::getInstance()->clearFocus(); diff --git a/indra/newview/llexpandabletextbox.cpp b/indra/newview/llexpandabletextbox.cpp index 5501b8c2ac..2abfbf37ca 100644 --- a/indra/newview/llexpandabletextbox.cpp +++ b/indra/newview/llexpandabletextbox.cpp @@ -415,6 +415,15 @@ void LLExpandableTextBox::onTopLost()  	LLUICtrl::onTopLost();  } +void LLExpandableTextBox::updateTextShape() +{ +	// I guess this should be done on every reshape(), +	// but adding this code to reshape() currently triggers bug VWR-26455, +	// which makes the text virtually unreadable. +	llassert(!mExpanded); +	updateTextBoxRect(); +} +  void LLExpandableTextBox::setValue(const LLSD& value)  {  	collapseTextBox(); diff --git a/indra/newview/llexpandabletextbox.h b/indra/newview/llexpandabletextbox.h index f75ef954ff..399e48bea2 100644 --- a/indra/newview/llexpandabletextbox.h +++ b/indra/newview/llexpandabletextbox.h @@ -143,6 +143,10 @@ public:  	 */  	/*virtual*/ void onTopLost(); +	/** +	 * *HACK: Update the inner textbox shape. +	 */ +	void updateTextShape();  	/**  	 * Draws text box, collapses text box if its expanded and its parent's position changed diff --git a/indra/newview/llfloaterbuyland.cpp b/indra/newview/llfloaterbuyland.cpp index 610142b5a9..5cfdd69f7b 100644 --- a/indra/newview/llfloaterbuyland.cpp +++ b/indra/newview/llfloaterbuyland.cpp @@ -529,7 +529,7 @@ void LLFloaterBuyLandUI::updateCovenantInfo()  	LLTextBox* region_type = getChild<LLTextBox>("region_type_text");  	if (region_type)  	{ -		region_type->setText(region->getSimProductName()); +		region_type->setText(region->getLocalizedSimProductName());  	}  	LLTextBox* resellable_clause = getChild<LLTextBox>("resellable_clause"); diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp index 9b7593ce61..4746f93009 100644 --- a/indra/newview/llfloaterland.cpp +++ b/indra/newview/llfloaterland.cpp @@ -566,10 +566,7 @@ void LLPanelLandGeneral::refresh()  		if (regionp)  		{  			insert_maturity_into_textbox(mContentRating, gFloaterView->getParentFloater(this), MATURITY); - -			std::string land_type; -			bool is_land_type_localized = LLTrans::findString(land_type, regionp->getSimProductName()); -			mLandType->setText(is_land_type_localized ? land_type : regionp->getSimProductName()); +			mLandType->setText(regionp->getLocalizedSimProductName());  		}  		// estate owner/manager cannot edit other parts of the parcel @@ -2883,13 +2880,7 @@ void LLPanelLandCovenant::refresh()  	}  	LLTextBox* region_landtype = getChild<LLTextBox>("region_landtype_text"); -	if (region_landtype) -	{ -		std::string land_type; -		bool is_land_type_localized = LLTrans::findString(land_type, region->getSimProductName()); - -		region_landtype->setText(is_land_type_localized ? land_type : region->getSimProductName()); -	} +	region_landtype->setText(region->getLocalizedSimProductName());  	LLTextBox* region_maturity = getChild<LLTextBox>("region_maturity_text");  	if (region_maturity) diff --git a/indra/newview/llfloaterregioninfo.cpp b/indra/newview/llfloaterregioninfo.cpp index 538c5e3b88..9a99417e93 100644 --- a/indra/newview/llfloaterregioninfo.cpp +++ b/indra/newview/llfloaterregioninfo.cpp @@ -336,7 +336,7 @@ void LLFloaterRegionInfo::processRegionInfo(LLMessageSystem* msg)  	LLViewerRegion* region = gAgent.getRegion();  	BOOL allow_modify = gAgent.isGodlike() || (region && region->canManageEstate()); -	// *TODO: Replace parcing msg with accessing the region info model. +	// *TODO: Replace parsing msg with accessing the region info model.  	LLRegionInfoModel& region_info = LLRegionInfoModel::instance();  	// extract message @@ -368,6 +368,7 @@ void LLFloaterRegionInfo::processRegionInfo(LLMessageSystem* msg)  		msg->getSize("RegionInfo2", "ProductName") > 0)  	{  		msg->getString("RegionInfo2", "ProductName", sim_type); +		LLTrans::findString(sim_type, sim_type); // try localizing sim product name  	}  	// GENERAL PANEL @@ -2409,11 +2410,7 @@ bool LLPanelEstateCovenant::refreshFromRegion(LLViewerRegion* region)  	}  	LLTextBox* region_landtype = getChild<LLTextBox>("region_landtype_text"); -	if (region_landtype) -	{ -		region_landtype->setText(region->getSimProductName()); -	} -	 +	region_landtype->setText(region->getLocalizedSimProductName());  	// let the parent class handle the general data collection.   	bool rv = LLPanelRegionInfo::refreshFromRegion(region); diff --git a/indra/newview/llpanelplaceprofile.cpp b/indra/newview/llpanelplaceprofile.cpp index 1e9ce58237..ce8057eead 100644 --- a/indra/newview/llpanelplaceprofile.cpp +++ b/indra/newview/llpanelplaceprofile.cpp @@ -32,6 +32,7 @@  #include "llparcel.h"  #include "message.h" +#include "llexpandabletextbox.h"  #include "lliconctrl.h"  #include "lllineeditor.h"  #include "lltextbox.h" @@ -227,6 +228,34 @@ void LLPanelPlaceProfile::setInfoType(EInfoType type)  	getChild<LLAccordionCtrl>("advanced_info_accordion")->setVisible(is_info_type_agent); +	// If we came from search we want larger description area, approx. 10 lines (see STORM-1311). +	// Don't use the maximum available space because that leads to nasty artifacts +	// in text editor and expandable text box. +	{ +		const S32 SEARCH_DESC_HEIGHT = 150; + +		// Remember original geometry (once). +		static const S32 sOrigDescVPad = getChildView("parcel_title")->getRect().mBottom - mDescEditor->getRect().mTop; +		static const S32 sOrigDescHeight = mDescEditor->getRect().getHeight(); +		static const S32 sOrigMRIconVPad = mDescEditor->getRect().mBottom - mMaturityRatingIcon->getRect().mTop; +		static const S32 sOrigMRTextVPad = mDescEditor->getRect().mBottom - mMaturityRatingText->getRect().mTop; + +		// Resize the description. +		const S32 desc_height = is_info_type_agent ? sOrigDescHeight : SEARCH_DESC_HEIGHT; +		const S32 desc_top = getChildView("parcel_title")->getRect().mBottom - sOrigDescVPad; +		LLRect desc_rect = mDescEditor->getRect(); +		desc_rect.setOriginAndSize(desc_rect.mLeft, desc_top - desc_height, desc_rect.getWidth(), desc_height); +		mDescEditor->reshape(desc_rect.getWidth(), desc_rect.getHeight()); +		mDescEditor->setRect(desc_rect); +		mDescEditor->updateTextShape(); + +		// Move the maturity rating icon/text accordingly. +		const S32 mr_icon_bottom = mDescEditor->getRect().mBottom - sOrigMRIconVPad - mMaturityRatingIcon->getRect().getHeight(); +		const S32 mr_text_bottom = mDescEditor->getRect().mBottom - sOrigMRTextVPad - mMaturityRatingText->getRect().getHeight(); +		mMaturityRatingIcon->setOrigin(mMaturityRatingIcon->getRect().mLeft, mr_icon_bottom); +		mMaturityRatingText->setOrigin(mMaturityRatingText->getRect().mLeft, mr_text_bottom); +	} +  	switch(type)  	{  		case AGENT: @@ -434,7 +463,7 @@ void LLPanelPlaceProfile::displaySelectedParcelInfo(LLParcel* parcel,  	}  	mRegionNameText->setText(region->getName()); -	mRegionTypeText->setText(region->getSimProductName()); +	mRegionTypeText->setText(region->getLocalizedSimProductName());  	// Determine parcel owner  	if (parcel->isPublic()) diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp index bb7170e0f7..d4e0831c33 100644 --- a/indra/newview/llviewerregion.cpp +++ b/indra/newview/llviewerregion.cpp @@ -558,6 +558,11 @@ const std::string LLViewerRegion::getSimAccessString() const  	return accessToString(mSimAccess);  } +std::string LLViewerRegion::getLocalizedSimProductName() const +{ +	std::string localized_spn; +	return LLTrans::findString(localized_spn, mProductName) ? localized_spn : mProductName; +}  // static  std::string LLViewerRegion::regionFlagsToString(U32 flags) diff --git a/indra/newview/llviewerregion.h b/indra/newview/llviewerregion.h index f68b51ea65..a105ff625d 100644 --- a/indra/newview/llviewerregion.h +++ b/indra/newview/llviewerregion.h @@ -192,7 +192,7 @@ public:  	S32 getSimCPURatio()                   const { return mCPURatio; }  	const std::string& getSimColoName()    const { return mColoName; }  	const std::string& getSimProductSKU()  const { return mProductSKU; } -	const std::string& getSimProductName() const { return mProductName; } +	std::string getLocalizedSimProductName() const;  	// Returns "Sandbox", "Expensive", etc.  	static std::string regionFlagsToString(U32 flags); | 
