diff options
| -rw-r--r-- | indra/newview/llpanelpick.cpp | 26 | ||||
| -rw-r--r-- | indra/newview/llpanelpick.h | 9 | 
2 files changed, 35 insertions, 0 deletions
diff --git a/indra/newview/llpanelpick.cpp b/indra/newview/llpanelpick.cpp index 839452d061..7a4dd3569d 100644 --- a/indra/newview/llpanelpick.cpp +++ b/indra/newview/llpanelpick.cpp @@ -284,6 +284,7 @@ void LLPanelPickInfo::setPickName(const std::string& name)  void LLPanelPickInfo::setPickDesc(const std::string& desc)  {  	childSetValue(XML_DESC, desc); +	updateContentPanelRect();  }  void LLPanelPickInfo::setPickLocation(const std::string& location) @@ -291,6 +292,31 @@ void LLPanelPickInfo::setPickLocation(const std::string& location)  	childSetValue(XML_LOCATION, location);  } +void LLPanelPickInfo::updateContentPanelRect() +{ +	LLTextBox* desc = getChild<LLTextBox>(XML_DESC); + +	S32 text_height = desc->getTextPixelHeight(); +	LLRect text_rect = desc->getRect(); + +	// let text-box height fit text height +	text_rect.set(text_rect.mLeft, text_rect.mTop, text_rect.mRight, text_rect.mTop - text_height); +	desc->setRect(text_rect); +	desc->reshape(text_rect.getWidth(), text_rect.getHeight()); +	// force reflow +	desc->setText(desc->getText()); + +	// bottom of description text-box will be bottom of content panel +	desc->localRectToOtherView(desc->getLocalRect(), &text_rect, getChild<LLView>("profile_scroll")); + +	LLPanel* content_panel = getChild<LLPanel>("scroll_content_panel"); +	LLRect content_rect = content_panel->getRect(); +	content_rect.set(content_rect.mLeft, content_rect.mTop, content_rect.mRight, text_rect.mBottom); +	// Somehow setRect moves all elements down. +	// Single reshape() updates rect and does not move anything. +	content_panel->reshape(content_rect.getWidth(), content_rect.getHeight()); +} +  void LLPanelPickInfo::onClickMap()  {  	LLFloaterWorldMap::getInstance()->trackLocation(getPosGlobal()); diff --git a/indra/newview/llpanelpick.h b/indra/newview/llpanelpick.h index 95add387d0..12b5a116b4 100644 --- a/indra/newview/llpanelpick.h +++ b/indra/newview/llpanelpick.h @@ -140,6 +140,15 @@ protected:  	virtual LLVector3d& getPosGlobal() { return mPosGlobal; }  	/** +	 * Reshapes content panel to fit all elements. +	 * +	 * Assume that description text-box is the last element of panel. +	 * Reshape text-box to fit text height and then reshape content panel to fit  +	 * text-box bottom. EXT-1326 +	 */ +	void updateContentPanelRect(); + +	/**  	 * Callback for "Map" button, opens Map  	 */  	void onClickMap();  | 
