diff options
| author | Tofu Linden <tofu.linden@lindenlab.com> | 2010-03-03 11:41:35 +0000 | 
|---|---|---|
| committer | Tofu Linden <tofu.linden@lindenlab.com> | 2010-03-03 11:41:35 +0000 | 
| commit | 962362503633f9fba741b1a45eb05b75a18a9f7d (patch) | |
| tree | c70e936c416d1183f6f6d99de5f7a5554c0996cb | |
| parent | f7ecfe6dc453bf06c24934b58f67637790fe3c44 (diff) | |
| parent | 0e780c9b912913b3eddde251b62f6218df4c5587 (diff) | |
PE merge.
34 files changed, 629 insertions, 157 deletions
| diff --git a/indra/llui/llaccordionctrl.cpp b/indra/llui/llaccordionctrl.cpp index aa69dfe0cc..2ed1082f56 100644 --- a/indra/llui/llaccordionctrl.cpp +++ b/indra/llui/llaccordionctrl.cpp @@ -103,13 +103,6 @@ void LLAccordionCtrl::draw()  	LLLocalClipRect clip(local_rect);  	LLPanel::draw(); -	/* -	S32 width = getRect().getWidth(); -	S32 height = getRect().getHeight(); - -	gl_rect_2d(0, 0 , width - 1 ,height - 1,LLColor4::green,true); -	gl_line_2d(0, 0 , width - 1 ,height - 1,LLColor4::black); -	*/  } @@ -125,7 +118,6 @@ BOOL LLAccordionCtrl::postBuild()  		scrollbar_size,  		getRect().getHeight() - 1); -  	LLScrollbar::Params sbparams;  	sbparams.name("scrollable vertical");  	sbparams.rect(scroll_rect); diff --git a/indra/llui/llaccordionctrltab.cpp b/indra/llui/llaccordionctrltab.cpp index daa9e08f14..1067c3f1d5 100644 --- a/indra/llui/llaccordionctrltab.cpp +++ b/indra/llui/llaccordionctrltab.cpp @@ -33,8 +33,9 @@  #include "linden_common.h"  #include "lluictrl.h" - +#include "llscrollbar.h"  #include "llaccordionctrltab.h" +#include "lllocalcliprect.h"  #include "lltextbox.h" @@ -46,6 +47,8 @@ static const S32 HEADER_HEIGHT = 20;  static const S32 HEADER_IMAGE_LEFT_OFFSET = 5;  static const S32 HEADER_TEXT_LEFT_OFFSET = 30;  static const F32 AUTO_OPEN_TIME = 1.f; +static const S32 VERTICAL_MULTIPLE = 16; +static const S32 PARENT_BORDER_MARGIN = 5;  static LLDefaultChildRegistry::Register<LLAccordionCtrlTab> t1("accordion_tab"); @@ -277,6 +280,7 @@ LLAccordionCtrlTab::Params::Params()  	,header_image_pressed("header_image_pressed")  	,header_image_focused("header_image_focused")  	,header_text_color("header_text_color") +	,fit_panel("fit_panel",true)  {  	mouse_opaque(false);  } @@ -293,6 +297,9 @@ LLAccordionCtrlTab::LLAccordionCtrlTab(const LLAccordionCtrlTab::Params&p)  	,mPaddingTop(p.padding_top)  	,mPaddingBottom(p.padding_bottom)  	,mCanOpenClose(true) +	,mFitPanel(p.fit_panel) +	,mContainerPanel(NULL) +	,mScrollbar(NULL)  {  	mStoredOpenCloseState = false;  	mWasStateStored = false; @@ -321,54 +328,42 @@ void LLAccordionCtrlTab::setDisplayChildren(bool display)  		mExpandedHeight : HEADER_HEIGHT);  	setRect(rect); -	for(child_list_const_iter_t it = getChildList()->begin(); -		getChildList()->end() != it; ++it) -	{ -		LLView* child = *it; -		if(DD_HEADER_NAME == child->getName()) -			continue; +	if(mContainerPanel) +		mContainerPanel->setVisible(getDisplayChildren()); -		child->setVisible(getDisplayChildren()); +	if(mDisplayChildren) +	{ +		adjustContainerPanel();  	} +	else +	{ +		if(mScrollbar) +			mScrollbar->setVisible(false); +	} +  }  void LLAccordionCtrlTab::reshape(S32 width, S32 height, BOOL called_from_parent /* = TRUE */)  {  	LLRect headerRect; -	LLUICtrl::reshape(width, height, TRUE); -  	headerRect.setLeftTopAndSize(  		0,height,width,HEADER_HEIGHT);  	mHeader->setRect(headerRect);  	mHeader->reshape(headerRect.getWidth(), headerRect.getHeight()); -	for(child_list_const_iter_t it = getChildList()->begin();  -		getChildList()->end() != it; ++it) -	{ -		LLView* child = *it; -		if(DD_HEADER_NAME == child->getName()) -			continue; -		if(!child->getVisible()) -			continue; - -		LLRect childRect = child->getRect(); -		S32 childWidth = width - getPaddingLeft() - getPaddingRight(); -		S32 childHeight = height - getHeaderHeight() - getPaddingTop() - getPaddingBottom(); +	if(!mDisplayChildren) +		return; -		child->reshape(childWidth,childHeight); -		 -		childRect.setLeftTopAndSize( -			getPaddingLeft(), -			childHeight + getPaddingBottom(), -			childWidth,  -			childHeight); +	LLRect childRect; -		child->setRect(childRect); -		 -		break;//suppose that there is only one panel -	} +	childRect.setLeftTopAndSize( +		getPaddingLeft(), +		height - getHeaderHeight() - getPaddingTop(), +		width - getPaddingLeft() - getPaddingRight(),  +		height - getHeaderHeight() - getPaddingTop() - getPaddingBottom() ); +	adjustContainerPanel(childRect);  }  void LLAccordionCtrlTab::changeOpenClose(bool is_open) @@ -439,7 +434,7 @@ void LLAccordionCtrlTab::setAccordionView(LLView* panel)  } -LLView*	LLAccordionCtrlTab::getAccordionView() +LLView*	LLAccordionCtrlTab::findContainerView()  {  	for(child_list_const_iter_t it = getChildList()->begin();   		getChildList()->end() != it; ++it) @@ -474,6 +469,43 @@ void LLAccordionCtrlTab::setHeaderVisible(bool value)  BOOL LLAccordionCtrlTab::postBuild()  {  	mHeader->setVisible(mHeaderVisible); +	 +	static LLUICachedControl<S32> scrollbar_size ("UIScrollbarSize", 0); + +	LLRect scroll_rect; +	scroll_rect.setOriginAndSize(  +		getRect().getWidth() - scrollbar_size, +		1, +		scrollbar_size, +		getRect().getHeight() - 1); + +	mContainerPanel = findContainerView(); + +	if(!mFitPanel) +	{ +		LLScrollbar::Params sbparams; +		sbparams.name("scrollable vertical"); +		sbparams.rect(scroll_rect); +		sbparams.orientation(LLScrollbar::VERTICAL); +		sbparams.doc_size(getRect().getHeight()); +		sbparams.doc_pos(0); +		sbparams.page_size(getRect().getHeight()); +		sbparams.step_size(VERTICAL_MULTIPLE); +		sbparams.follows.flags(FOLLOWS_RIGHT | FOLLOWS_TOP | FOLLOWS_BOTTOM); +		sbparams.change_callback(boost::bind(&LLAccordionCtrlTab::onScrollPosChangeCallback, this, _1, _2)); + + +		mScrollbar = LLUICtrlFactory::create<LLScrollbar> (sbparams); +		LLView::addChild( mScrollbar ); +		mScrollbar->setFollowsRight(); +		mScrollbar->setFollowsTop(); +		mScrollbar->setFollowsBottom(); + +		mScrollbar->setVisible(false); +	} + +	mContainerPanel->setVisible(mDisplayChildren); +  	return LLUICtrl::postBuild();  }  bool	LLAccordionCtrlTab::notifyChildren	(const LLSD& info) @@ -562,6 +594,12 @@ BOOL LLAccordionCtrlTab::handleKey(KEY key, MASK mask, BOOL called_from_parent)  	if( !header->hasFocus() )  		return LLUICtrl::handleKey(key, mask, called_from_parent); +	if ( (key == KEY_RETURN )&& mask == MASK_NONE) +	{ +		changeOpenClose(getDisplayChildren()); +		return TRUE; +	} +  	if ( (key == KEY_ADD || key == KEY_RIGHT)&& mask == MASK_NONE)  	{  		if(getDisplayChildren() == false) @@ -622,6 +660,7 @@ void    LLAccordionCtrlTab::storeOpenCloseState()  	mStoredOpenCloseState = getDisplayChildren();  	mWasStateStored = true;  } +  void   LLAccordionCtrlTab::restoreOpenCloseState()  {  	if(!mWasStateStored) @@ -632,3 +671,195 @@ void   LLAccordionCtrlTab::restoreOpenCloseState()  	}  	mWasStateStored = false;  } + +void LLAccordionCtrlTab::adjustContainerPanel	() +{ +	S32 width = getRect().getWidth(); +	S32 height = getRect().getHeight(); + +	LLRect child_rect; +	child_rect.setLeftTopAndSize( +		getPaddingLeft(), +		height - getHeaderHeight() - getPaddingTop(), +		width - getPaddingLeft() - getPaddingRight(),  +		height - getHeaderHeight() - getPaddingTop() - getPaddingBottom() ); + +	adjustContainerPanel(child_rect); +} + +void LLAccordionCtrlTab::adjustContainerPanel(const LLRect& child_rect) +{ +	if(!mContainerPanel) +		return;  + +	if(!mFitPanel) +	{ +		show_hide_scrollbar(child_rect); +		updateLayout(child_rect); +	} +	else +	{ +		mContainerPanel->reshape(child_rect.getWidth(),child_rect.getHeight()); +		mContainerPanel->setRect(child_rect); +	} +} + +S32 LLAccordionCtrlTab::getChildViewHeight() +{ +	if(!mContainerPanel) +		return 0; +	return mContainerPanel->getRect().getHeight(); +} + +void LLAccordionCtrlTab::show_hide_scrollbar(const LLRect& child_rect) +{ +	if(getChildViewHeight() > child_rect.getHeight() ) +		showScrollbar(child_rect); +	else +		hideScrollbar(child_rect); +} +void LLAccordionCtrlTab::showScrollbar(const LLRect& child_rect) +{ +	if(!mContainerPanel || !mScrollbar) +		return; +	bool was_visible = mScrollbar->getVisible(); +	mScrollbar->setVisible(true); +	 +	static LLUICachedControl<S32> scrollbar_size ("UIScrollbarSize", 0); + +	{ +		ctrlSetLeftTopAndSize(mScrollbar,child_rect.getWidth()-scrollbar_size,  +			child_rect.getHeight()-PARENT_BORDER_MARGIN,  +			scrollbar_size,  +			child_rect.getHeight()-2*PARENT_BORDER_MARGIN); +	} + +	LLRect orig_rect = mContainerPanel->getRect(); + +	mScrollbar->setPageSize(child_rect.getHeight()); +	mScrollbar->setDocParams(orig_rect.getHeight(),mScrollbar->getDocPos()); +	 +	if(was_visible) +	{ +		S32 scroll_pos = llmin(mScrollbar->getDocPos(), orig_rect.getHeight() - child_rect.getHeight() - 1); +		mScrollbar->setDocPos(scroll_pos); +	} +	else//shrink child panel +	{ +		updateLayout(child_rect); +	} +	 +} + +void	LLAccordionCtrlTab::hideScrollbar( const LLRect& child_rect ) +{ +	if(!mContainerPanel || !mScrollbar) +		return; + +	if(mScrollbar->getVisible() == false) +		return; +	mScrollbar->setVisible(false); +	mScrollbar->setDocPos(0); + +	//shrink child panel +	updateLayout(child_rect); +} + +void	LLAccordionCtrlTab::onScrollPosChangeCallback(S32, LLScrollbar*) +{ +	LLRect child_rect; + +	S32 width = getRect().getWidth(); +	S32 height = getRect().getHeight(); + +	child_rect.setLeftTopAndSize( +		getPaddingLeft(), +		height - getHeaderHeight() - getPaddingTop(), +		width - getPaddingLeft() - getPaddingRight(),  +		height - getHeaderHeight() - getPaddingTop() - getPaddingBottom() ); + +	updateLayout(child_rect); +} + +void LLAccordionCtrlTab::drawChild(const LLRect& root_rect,LLView* child) +{ +	if (child && child->getVisible() && child->getRect().isValid()) +	{ +		LLRect screen_rect; +		localRectToScreen(child->getRect(),&screen_rect); +		 +		if ( root_rect.overlaps(screen_rect)  && LLUI::sDirtyRect.overlaps(screen_rect)) +		{ +			glMatrixMode(GL_MODELVIEW); +			LLUI::pushMatrix(); +			{ +				LLUI::translate((F32)child->getRect().mLeft, (F32)child->getRect().mBottom, 0.f); +				child->draw(); + +			} +			LLUI::popMatrix(); +		} +	} +} + +void LLAccordionCtrlTab::draw() +{ +	if(mFitPanel) +		LLUICtrl::draw(); +	else +	{ +		LLRect root_rect = getRootView()->getRect(); +		drawChild(root_rect,mHeader); +		drawChild(root_rect,mScrollbar ); +		{ +			LLRect child_rect; + +			S32 width = getRect().getWidth(); +			S32 height = getRect().getHeight(); + +			child_rect.setLeftTopAndSize( +				getPaddingLeft(), +				height - getHeaderHeight() - getPaddingTop(), +				width - getPaddingLeft() - getPaddingRight(),  +				height - getHeaderHeight() - getPaddingTop() - getPaddingBottom() ); + +			LLLocalClipRect clip(child_rect); +			drawChild(root_rect,mContainerPanel); +		} +		 + +		gGL.getTexUnit(0)->disable(); +	} +} + +void	LLAccordionCtrlTab::updateLayout	( const LLRect& child_rect ) +{ +	LLView*	child = getAccordionView(); +	if(!mContainerPanel) +		return; + +	S32 panel_top = child_rect.getHeight(); +	S32 panel_width = child_rect.getWidth(); + +	static LLUICachedControl<S32> scrollbar_size ("UIScrollbarSize", 0); +	if(mScrollbar->getVisible() != false) +	{ +		panel_top+=mScrollbar->getDocPos(); +		panel_width-=scrollbar_size; +	} + +	//set sizes for first panels and dragbars +	LLRect panel_rect = child->getRect(); +	ctrlSetLeftTopAndSize(mContainerPanel,child_rect.mLeft,panel_top,panel_width,panel_rect.getHeight()); +} +void LLAccordionCtrlTab::ctrlSetLeftTopAndSize(LLView* panel, S32 left, S32 top, S32 width, S32 height) +{ +	if(!panel) +		return; +	LLRect panel_rect = panel->getRect(); +	panel_rect.setLeftTopAndSize( left, top, width, height); +	panel->reshape( width, height, 1); +	panel->setRect(panel_rect); +} + + diff --git a/indra/llui/llaccordionctrltab.h b/indra/llui/llaccordionctrltab.h index 2e0260ab16..462ccc6d53 100644 --- a/indra/llui/llaccordionctrltab.h +++ b/indra/llui/llaccordionctrltab.h @@ -41,6 +41,7 @@ class LLUICtrlFactory;  class LLUIImage;  class LLButton;  class LLTextBox; +class LLScrollbar; @@ -84,6 +85,8 @@ public:  		Optional<bool>			header_visible; +		Optional<bool>			fit_panel; +  		Optional<S32>			padding_left;  		Optional<S32>			padding_right;  		Optional<S32>			padding_top; @@ -107,7 +110,7 @@ public:  	//set LLAccordionCtrlTab panel  	void		setAccordionView(LLView* panel); -	LLView*		getAccordionView(); +	LLView*		getAccordionView() { return mContainerPanel; };  	bool getCollapsible() {return mCollapsible;}; @@ -123,6 +126,8 @@ public:  	S32 notify(const LLSD& info);  	bool notifyChildren(const LLSD& info); +	void draw(); +  	void    storeOpenCloseState		();  	void    restoreOpenCloseState	(); @@ -164,9 +169,26 @@ public:  	void showAndFocusHeader(); -private: +	void setFitPanel( bool fit ) { mFitPanel = true; } -	 +protected: +	void adjustContainerPanel	(const LLRect& child_rect); +	void adjustContainerPanel	(); +	S32	 getChildViewHeight		(); + +	void onScrollPosChangeCallback(S32, LLScrollbar*); + +	void show_hide_scrollbar	(const LLRect& child_rect); +	void showScrollbar			(const LLRect& child_rect); +	void hideScrollbar			(const LLRect& child_rect); + +	void updateLayout			( const LLRect& child_rect ); +	void ctrlSetLeftTopAndSize	(LLView* panel, S32 left, S32 top, S32 width, S32 height); + +	void drawChild(const LLRect& root_rect,LLView* child); + +	LLView* findContainerView	(); +private:  	class LLAccordionCtrlTabHeader;  	LLAccordionCtrlTabHeader* mHeader; //Header @@ -176,6 +198,7 @@ private:  	bool mHeaderVisible;  	bool mCanOpenClose; +	bool mFitPanel;  	S32	mPaddingLeft;  	S32	mPaddingRight; @@ -185,6 +208,8 @@ private:  	bool mStoredOpenCloseState;  	bool mWasStateStored; +	LLScrollbar*	mScrollbar; +	LLView*			mContainerPanel;  	LLUIColor mDropdownBGColor;  }; diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp index b6d73cda3c..e91d753a39 100644 --- a/indra/llui/llfloater.cpp +++ b/indra/llui/llfloater.cpp @@ -1554,7 +1554,12 @@ void LLFloater::onClickClose( LLFloater* self )  {  	if (!self)  		return; -	self->closeFloater(false); +	self->onClickCloseBtn(); +} + +void	LLFloater::onClickCloseBtn() +{ +	closeFloater(false);  } diff --git a/indra/llui/llfloater.h b/indra/llui/llfloater.h index 19e8288807..c1e8813f87 100644 --- a/indra/llui/llfloater.h +++ b/indra/llui/llfloater.h @@ -307,6 +307,8 @@ protected:  	void			destroy() { die(); } // Don't call this directly.  You probably want to call closeFloater() +	virtual	void	onClickCloseBtn(); +  private:  	void			setForeground(BOOL b);	// called only by floaterview  	void			cleanupHandles(); // remove handles to dead floaters @@ -346,6 +348,7 @@ protected:  	LLResizeBar*	mResizeBar[4];  	LLResizeHandle*	mResizeHandle[4]; +	LLButton*		mButtons[BUTTON_COUNT];  private:  	LLRect			mExpandedRect; @@ -379,7 +382,6 @@ private:  	handle_set_t	mDependents;  	bool			mButtonsEnabled[BUTTON_COUNT]; -	LLButton*		mButtons[BUTTON_COUNT];  	F32				mButtonScale;  	BOOL			mAutoFocus;  	LLHandle<LLFloater> mSnappedTo; diff --git a/indra/llui/llscrolllistcell.cpp b/indra/llui/llscrolllistcell.cpp index 3cc92baa8d..d17be8b94a 100644 --- a/indra/llui/llscrolllistcell.cpp +++ b/indra/llui/llscrolllistcell.cpp @@ -185,6 +185,8 @@ LLScrollListText::LLScrollListText(const LLScrollListCell::Params& p)  {  	sCount++; +	mTextWidth = getWidth(); +  	// initialize rounded rect image  	if (!mRoundedRectImage)  	{ @@ -340,7 +342,7 @@ void LLScrollListText::draw(const LLColor4& color, const LLColor4& highlight_col  					0,  					LLFontGL::NO_SHADOW,  					string_chars,  -					getWidth(), +					getTextWidth(),  					&right_x,   					TRUE);  } diff --git a/indra/llui/llscrolllistcell.h b/indra/llui/llscrolllistcell.h index 5fecf5aade..b1c8901fc4 100644 --- a/indra/llui/llscrolllistcell.h +++ b/indra/llui/llscrolllistcell.h @@ -151,11 +151,16 @@ public:  	/*virtual*/ const std::string &	getToolTip() const;  	/*virtual*/ BOOL	needsToolTip() const; +	S32				getTextWidth() const { return mTextWidth;} +	void			setTextWidth(S32 value) { mTextWidth = value;}  +	virtual void	setWidth(S32 width) { LLScrollListCell::setWidth(width); mTextWidth = width; } +  	void			setText(const LLStringExplicit& text);  	void			setFontStyle(const U8 font_style);  private:  	LLUIString		mText; +	S32				mTextWidth;  	const LLFontGL*	mFont;  	LLColor4		mColor;  	U8				mUseColor; diff --git a/indra/llui/llscrolllistctrl.h b/indra/llui/llscrolllistctrl.h index e819c5fdea..ebdc82115f 100644 --- a/indra/llui/llscrolllistctrl.h +++ b/indra/llui/llscrolllistctrl.h @@ -219,7 +219,10 @@ public:  	void			deselectAllItems(BOOL no_commit_on_change = FALSE);	// by default, go ahead and commit on selection change  	void			clearHighlightedItems(); -	void			mouseOverHighlightNthItem( S32 index ); +	 +	virtual void	mouseOverHighlightNthItem( S32 index ); + +	S32				getHighlightedItemInx() const { return mHighlightedItem; }   	void			setDoubleClickCallback( callback_t cb ) { mOnDoubleClickCallback = cb; }  	void			setMaximumSelectCallback( callback_t cb) { mOnMaximumSelectCallback = cb; } diff --git a/indra/llui/lltabcontainer.cpp b/indra/llui/lltabcontainer.cpp index 30fc7babae..1dcfb4e296 100644 --- a/indra/llui/lltabcontainer.cpp +++ b/indra/llui/lltabcontainer.cpp @@ -2061,5 +2061,12 @@ void LLTabContainer::commitHoveredButton(S32 x, S32 y)  				tuple->mButton->onCommit();  			}  		} +		/** +		 * EXT - 4572 (Click and hold the left mouse button doesn't let you browse tabbed IM floater) +		 * +		 * During hovering mouse(with left mouse button hold) over tabs, a newly just activated corresponding +		 * to the tab(that is hovered in the given instant of time) panel may caught mouse capture. +		 */ +		gFocusMgr.setMouseCapture(this);  	}  } diff --git a/indra/newview/llavatarlist.cpp b/indra/newview/llavatarlist.cpp index 50d8672083..45c540b3a3 100644 --- a/indra/newview/llavatarlist.cpp +++ b/indra/newview/llavatarlist.cpp @@ -183,6 +183,15 @@ void LLAvatarList::sortByName()  	sort();  } +void LLAvatarList::setDirty(bool val /*= true*/, bool force_refresh /*= false*/) +{ +	mDirty = val; +	if(mDirty && force_refresh) +	{ +		refresh(); +	} +} +  //////////////////////////////////////////////////////////////////////////  // PROTECTED SECTION  ////////////////////////////////////////////////////////////////////////// diff --git a/indra/newview/llavatarlist.h b/indra/newview/llavatarlist.h index 0e4215e91a..00c72f1f9d 100644 --- a/indra/newview/llavatarlist.h +++ b/indra/newview/llavatarlist.h @@ -73,7 +73,7 @@ public:  	virtual void clear();  	void setNameFilter(const std::string& filter); -	void setDirty(bool val = true)						{ mDirty = val; } +	void setDirty(bool val = true, bool force_refresh = false);  	uuid_vector_t& getIDs() 							{ return mIDs; }  	bool contains(const LLUUID& id); diff --git a/indra/newview/lldebugview.cpp b/indra/newview/lldebugview.cpp index 169a963d0d..f113cc49d4 100644 --- a/indra/newview/lldebugview.cpp +++ b/indra/newview/lldebugview.cpp @@ -81,11 +81,13 @@ void LLDebugView::init()  	r.setLeftTopAndSize(25, rect.getHeight() - 50, (S32) (gViewerWindow->getWindowRectScaled().getWidth() * 0.75f),     									 (S32) (gViewerWindow->getWindowRectScaled().getHeight() * 0.75f)); +	  	mFastTimerView = new LLFastTimerView(r);  	mFastTimerView->setFollowsTop();  	mFastTimerView->setFollowsLeft();  	mFastTimerView->setVisible(FALSE);			// start invisible  	addChild(mFastTimerView); +	mFastTimerView->setRect(rect);  	r.setLeftTopAndSize(25, rect.getHeight() - 50, (S32) (gViewerWindow->getWindowRectScaled().getWidth() * 0.75f),   									 (S32) (gViewerWindow->getWindowRectScaled().getHeight() * 0.75f)); diff --git a/indra/newview/llfasttimerview.cpp b/indra/newview/llfasttimerview.cpp index 4fa97e789b..8bc3b5a75f 100644 --- a/indra/newview/llfasttimerview.cpp +++ b/indra/newview/llfasttimerview.cpp @@ -44,6 +44,7 @@  #include "llfontgl.h"  #include "llsdserialize.h"  #include "lltooltip.h" +#include "llbutton.h"  #include "llappviewer.h"  #include "llviewertexturelist.h" @@ -99,6 +100,8 @@ LLFastTimerView::LLFastTimerView(const LLRect& rect)  	FTV_NUM_TIMERS = LLFastTimer::NamedTimer::instanceCount();  	mPrintStats = -1;	  	mAverageCyclesPerTimer = 0; +	setCanMinimize(false); +	setCanClose(true);  } @@ -139,6 +142,18 @@ LLFastTimer::NamedTimer* LLFastTimerView::getLegendID(S32 y)  BOOL LLFastTimerView::handleMouseDown(S32 x, S32 y, MASK mask)  { + +	{ +		S32 local_x = x - mButtons[BUTTON_CLOSE]->getRect().mLeft; +		S32 local_y = y - mButtons[BUTTON_CLOSE]->getRect().mBottom; +		if(mButtons[BUTTON_CLOSE]->getVisible() +			&&  mButtons[BUTTON_CLOSE]->pointInView(local_x, local_y)  ) +		{ +			return LLFloater::handleMouseDown(x, y, mask);; +		} +	} +	 +  	if (x < mBarRect.mLeft)   	{  		LLFastTimer::NamedTimer* idp = getLegendID(y); @@ -188,6 +203,15 @@ BOOL LLFastTimerView::handleMouseDown(S32 x, S32 y, MASK mask)  BOOL LLFastTimerView::handleMouseUp(S32 x, S32 y, MASK mask)  { +	{ +		S32 local_x = x - mButtons[BUTTON_CLOSE]->getRect().mLeft; +		S32 local_y = y - mButtons[BUTTON_CLOSE]->getRect().mBottom; +		if(mButtons[BUTTON_CLOSE]->getVisible() +			&&  mButtons[BUTTON_CLOSE]->pointInView(local_x, local_y)  ) +		{ +			return LLFloater::handleMouseUp(x, y, mask);; +		} +	}  	return FALSE;  } @@ -1191,5 +1215,8 @@ void LLFastTimerView::doAnalysis(std::string baseline, std::string target, std::  		return ;  	}  } - +void	LLFastTimerView::onClickCloseBtn() +{ +	setVisible(false); +} diff --git a/indra/newview/llfasttimerview.h b/indra/newview/llfasttimerview.h index f5c8f23818..ac06990913 100644 --- a/indra/newview/llfasttimerview.h +++ b/indra/newview/llfasttimerview.h @@ -63,7 +63,9 @@ public:  	LLFastTimer::NamedTimer* getLegendID(S32 y);  	F64 getTime(const std::string& name); -	 + +protected: +	virtual	void	onClickCloseBtn();  private:	  	typedef std::vector<std::vector<S32> > bar_positions_t;  	bar_positions_t mBarStart; diff --git a/indra/newview/llfolderview.cpp b/indra/newview/llfolderview.cpp index 23f19a38a6..f7fd7bb472 100644 --- a/indra/newview/llfolderview.cpp +++ b/indra/newview/llfolderview.cpp @@ -179,6 +179,7 @@ LLFolderView::LLFolderView(const Params& p)  	mSourceID(p.task_id),  	mRenameItem( NULL ),  	mNeedsScroll( FALSE ), +	mEnableScroll( true ),  	mPinningSelectedItem(FALSE),  	mNeedsAutoSelect( FALSE ),  	mAutoSelectOverride(FALSE), @@ -1913,7 +1914,7 @@ void LLFolderView::deleteAllChildren()  void LLFolderView::scrollToShowSelection()  { -	if (mSelectedItems.size()) +	if (mEnableScroll && mSelectedItems.size())  	{  		mNeedsScroll = TRUE;  	} diff --git a/indra/newview/llfolderview.h b/indra/newview/llfolderview.h index faf6a9cf23..38255b3cea 100644 --- a/indra/newview/llfolderview.h +++ b/indra/newview/llfolderview.h @@ -269,6 +269,7 @@ public:  	void dumpSelectionInformation();  	virtual S32	notify(const LLSD& info) ; +	void setEnableScroll(bool enable_scroll) { mEnableScroll = enable_scroll; }  private:  	void updateRenamerPosition(); @@ -300,6 +301,7 @@ protected:  	LLLineEditor*					mRenamer;  	BOOL							mNeedsScroll; +	bool							mEnableScroll;  	BOOL							mPinningSelectedItem;  	LLRect							mScrollConstraintRect;  	BOOL							mNeedsAutoSelect; diff --git a/indra/newview/llfriendcard.cpp b/indra/newview/llfriendcard.cpp index ac060cef15..18f81fe506 100644 --- a/indra/newview/llfriendcard.cpp +++ b/indra/newview/llfriendcard.cpp @@ -44,24 +44,28 @@  // Constants; -static const std::string INVENTORY_STRING_FRIENDS_SUBFOLDER = "InvFolder Friends"; -static const std::string INVENTORY_STRING_FRIENDS_ALL_SUBFOLDER = "InvFolder All"; +static const std::string INVENTORY_STRING_FRIENDS_SUBFOLDER = "Friends"; +static const std::string INVENTORY_STRING_FRIENDS_ALL_SUBFOLDER = "All";  // helper functions -// NOTE: Usage of LLTrans::getString(); in next two functions to set localized -// folders' names is caused by a hack in the LLFolderViewItem::refreshFromListener() -// method for protected asset types. -// So, localized names will be got from the strings with "InvFolder LABEL_NAME" -// in the strings.xml +// NOTE: For now Friends & All folders are created as protected folders of the LLFolderType::FT_CALLINGCARD type. +// So, their names will be processed in the LLFolderViewItem::refreshFromListener() to be localized +// using "InvFolder LABEL_NAME" as LLTrans::findString argument. + +// We must use in this file their hard-coded names to ensure found them on different locales. EXT-5829. +// These hard-coded names will be stored in InventoryItems but shown localized in FolderViewItems + +// If hack in the LLFolderViewItem::refreshFromListener() to localize protected folder is removed +// or these folders are not protected these names should be localized in another place/way.  inline const std::string get_friend_folder_name()  { -	return LLTrans::getString(INVENTORY_STRING_FRIENDS_SUBFOLDER); +	return INVENTORY_STRING_FRIENDS_SUBFOLDER;  }  inline const std::string get_friend_all_subfolder_name()  { -	return LLTrans::getString(INVENTORY_STRING_FRIENDS_ALL_SUBFOLDER); +	return INVENTORY_STRING_FRIENDS_ALL_SUBFOLDER;  }  void move_from_to_arrays(LLInventoryModel::cat_array_t& from, LLInventoryModel::cat_array_t& to) @@ -350,9 +354,9 @@ const LLUUID& LLFriendCardsManager::findFriendAllSubfolderUUIDImpl() const  	return findChildFolderUUID(friendFolderUUID, friendAllSubfolderName);  } -const LLUUID& LLFriendCardsManager::findChildFolderUUID(const LLUUID& parentFolderUUID, const std::string& localizedName) const +const LLUUID& LLFriendCardsManager::findChildFolderUUID(const LLUUID& parentFolderUUID, const std::string& nonLocalizedName) const  { -	LLNameCategoryCollector matchFolderFunctor(localizedName); +	LLNameCategoryCollector matchFolderFunctor(nonLocalizedName);  	return get_folder_uuid(parentFolderUUID, matchFolderFunctor);  } diff --git a/indra/newview/llfriendcard.h b/indra/newview/llfriendcard.h index b94d5ec2c0..1cda52c1d7 100644 --- a/indra/newview/llfriendcard.h +++ b/indra/newview/llfriendcard.h @@ -120,7 +120,7 @@ private:  		return (mBuddyIDSet.end() != mBuddyIDSet.find(avatarID));  	} -	const LLUUID& findChildFolderUUID(const LLUUID& parentFolderUUID, const std::string& localizedName) const; +	const LLUUID& findChildFolderUUID(const LLUUID& parentFolderUUID, const std::string& nonLocalizedName) const;  	const LLUUID& findFriendFolderUUIDImpl() const;  	const LLUUID& findFriendAllSubfolderUUIDImpl() const;  	const LLUUID& findFriendCardInventoryUUIDImpl(const LLUUID& avatarID); diff --git a/indra/newview/llimfloatercontainer.cpp b/indra/newview/llimfloatercontainer.cpp index d518318b0e..9eb11a6ac4 100644 --- a/indra/newview/llimfloatercontainer.cpp +++ b/indra/newview/llimfloatercontainer.cpp @@ -96,8 +96,29 @@ void LLIMFloaterContainer::addFloater(LLFloater* floaterp,  	LLUUID session_id = floaterp->getKey(); -	floaterp->mCloseSignal.connect(boost::bind(&LLIMFloaterContainer::onCloseFloater, this, session_id)); -	mSessions[session_id] = floaterp; +	LLIconCtrl* icon = 0; + +	if(gAgent.isInGroup(session_id, TRUE)) +	{ +		LLGroupIconCtrl::Params icon_params = LLUICtrlFactory::instance().getDefaultParams<LLGroupIconCtrl>(); +		icon_params.group_id = session_id; +		icon = LLUICtrlFactory::instance().createWidget<LLGroupIconCtrl>(icon_params); + +		mSessions[session_id] = floaterp; +		floaterp->mCloseSignal.connect(boost::bind(&LLIMFloaterContainer::onCloseFloater, this, session_id)); +	} +	else +	{ +		LLUUID avatar_id = LLIMModel::getInstance()->getOtherParticipantID(session_id); + +		LLAvatarIconCtrl::Params icon_params = LLUICtrlFactory::instance().getDefaultParams<LLAvatarIconCtrl>(); +		icon_params.avatar_id = avatar_id; +		icon = LLUICtrlFactory::instance().createWidget<LLAvatarIconCtrl>(icon_params); + +		mSessions[session_id] = floaterp; +		floaterp->mCloseSignal.connect(boost::bind(&LLIMFloaterContainer::onCloseFloater, this, session_id)); +	} +	mTabContainer->setTabImage(floaterp, icon);  }  void LLIMFloaterContainer::onCloseFloater(LLUUID& id) @@ -134,6 +155,8 @@ void LLIMFloaterContainer::setMinimized(BOOL b)  	if (isMinimized() == b) return;  	LLMultiFloater::setMinimized(b); +	// Hide minimized floater (see EXT-5315) +	setVisible(!b);  	if (isMinimized()) return; diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp index 048ed10886..8097985ade 100644 --- a/indra/newview/llinventorypanel.cpp +++ b/indra/newview/llinventorypanel.cpp @@ -681,6 +681,21 @@ BOOL LLInventoryPanel::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,  	return handled;  } +// virtual +void LLInventoryPanel::onMouseEnter(S32 x, S32 y, MASK mask) +{ +	LLPanel::onMouseEnter(x, y, mask); +	// don't auto-scroll a list when cursor is over Inventory. See EXT-3981. +	mFolders->setEnableScroll(false); +} + +// virtual +void LLInventoryPanel::onMouseLeave(S32 x, S32 y, MASK mask) +{ +	LLPanel::onMouseLeave(x, y, mask); +	mFolders->setEnableScroll(true); +} +  void LLInventoryPanel::onFocusLost()  {  	// inventory no longer handles cut/copy/paste/delete diff --git a/indra/newview/llinventorypanel.h b/indra/newview/llinventorypanel.h index f312b588b9..37b03dbd7d 100644 --- a/indra/newview/llinventorypanel.h +++ b/indra/newview/llinventorypanel.h @@ -122,6 +122,10 @@ public:  								   void* cargo_data,  								   EAcceptance* accept,  								   std::string& tooltip_msg); + +	void onMouseEnter(S32 x, S32 y, MASK mask); +	void onMouseLeave(S32 x, S32 y, MASK mask); +  	// LLUICtrl methods  	 /*virtual*/ void onFocusLost();  	 /*virtual*/ void onFocusReceived(); diff --git a/indra/newview/llnamelistctrl.cpp b/indra/newview/llnamelistctrl.cpp index 114fef8712..883d4cdf4b 100644 --- a/indra/newview/llnamelistctrl.cpp +++ b/indra/newview/llnamelistctrl.cpp @@ -47,6 +47,8 @@  static LLDefaultChildRegistry::Register<LLNameListCtrl> r("name_list"); +static const S32 info_icon_size = 16; +  void LLNameListCtrl::NameTypeNames::declareValues()  {  	declare("INDIVIDUAL", LLNameListCtrl::INDIVIDUAL); @@ -138,6 +140,29 @@ void LLNameListCtrl::showInspector(const LLUUID& avatar_id, bool is_group)  		LLFloaterReg::showInstance("inspect_avatar", LLSD().with("avatar_id", avatar_id));  } +void	LLNameListCtrl::mouseOverHighlightNthItem( S32 target_index ) +{ +	if (getHighlightedItemInx()!= target_index) +	{ +		if(getHighlightedItemInx()!=-1) +		{ +			LLScrollListItem* item = getItemList()[getHighlightedItemInx()]; +			LLScrollListText* cell = dynamic_cast<LLScrollListText*>(item->getColumn(mNameColumnIndex)); +			if(cell) +				cell->setTextWidth(cell->getTextWidth() + info_icon_size); +		} +		if(target_index != -1) +		{ +			LLScrollListItem* item = getItemList()[target_index]; +			LLScrollListText* cell = dynamic_cast<LLScrollListText*>(item->getColumn(mNameColumnIndex)); +			if(cell) +				cell->setTextWidth(cell->getTextWidth() - info_icon_size); +		} +	} + +	LLScrollListCtrl::mouseOverHighlightNthItem(target_index); +} +  //virtual  BOOL LLNameListCtrl::handleToolTip(S32 x, S32 y, MASK mask)  { @@ -164,7 +189,7 @@ BOOL LLNameListCtrl::handleToolTip(S32 x, S32 y, MASK mask)  				// Spawn at right side of cell  				LLPointer<LLUIImage> icon = LLUI::getUIImage("Info_Small"); -				LLCoordGL pos( sticky_rect.mRight - 16, sticky_rect.mTop - (sticky_rect.getHeight() - icon->getHeight())/2 ); +				LLCoordGL pos( sticky_rect.mRight - info_icon_size, sticky_rect.mTop - (sticky_rect.getHeight() - icon->getHeight())/2 );  				// Should we show a group or an avatar inspector?  				bool is_group = hit_item->getValue()["is_group"].asBoolean(); diff --git a/indra/newview/llnamelistctrl.h b/indra/newview/llnamelistctrl.h index 23b1cb6897..1c26ee5db4 100644 --- a/indra/newview/llnamelistctrl.h +++ b/indra/newview/llnamelistctrl.h @@ -120,6 +120,8 @@ public:  	void setAllowCallingCardDrop(BOOL b) { mAllowCallingCardDrop = b; }  	/*virtual*/ void updateColumns(); + +	/*virtual*/ void	mouseOverHighlightNthItem( S32 index );  private:  	void showInspector(const LLUUID& avatar_id, bool is_group); diff --git a/indra/newview/llpanelclassified.cpp b/indra/newview/llpanelclassified.cpp index 836331b44b..7cf27d9141 100644 --- a/indra/newview/llpanelclassified.cpp +++ b/indra/newview/llpanelclassified.cpp @@ -1290,18 +1290,11 @@ void LLPanelClassifiedInfo::resetData()  void LLPanelClassifiedInfo::resetControls()  { -	if(getAvatarId() == gAgent.getID()) -	{ -		childSetEnabled("edit_btn", TRUE); -		childSetVisible("edit_btn", TRUE); -		childSetVisible("auto_renew", TRUE); -	} -	else -	{ -		childSetEnabled("edit_btn", FALSE); -		childSetVisible("edit_btn", FALSE); -		childSetVisible("auto_renew", FALSE); -	} +	bool is_self = getAvatarId() == gAgent.getID(); + +	childSetEnabled("edit_btn", is_self); +	childSetVisible("edit_btn", is_self); +	childSetVisible("price_layout_panel", is_self);  }  void LLPanelClassifiedInfo::setClassifiedName(const std::string& name) diff --git a/indra/newview/llpanelpeople.cpp b/indra/newview/llpanelpeople.cpp index d2a518a06a..93a6a7803a 100644 --- a/indra/newview/llpanelpeople.cpp +++ b/indra/newview/llpanelpeople.cpp @@ -683,9 +683,15 @@ void LLPanelPeople::updateFriendList()  			online_friendsp.push_back(buddy_id);  	} -	mOnlineFriendList->setDirty(); -	mAllFriendList->setDirty(); - +	/* +	 * Avatarlists  will be hidden by showFriendsAccordionsIfNeeded(), if they do not have items. +	 * But avatarlist can be updated only if it is visible @see LLAvatarList::draw();    +	 * So we need to do force update of lists to avoid inconsistency of data and view of avatarlist.  +	 */ +	mOnlineFriendList->setDirty(true, !mOnlineFriendList->filterHasMatches());// do force update if list do NOT have items +	mAllFriendList->setDirty(true, !mAllFriendList->filterHasMatches()); +	//update trash and other buttons according to a selected item +	updateButtons();  	showFriendsAccordionsIfNeeded();  } @@ -1434,9 +1440,8 @@ void LLPanelPeople::onFriendListRefreshComplete(LLUICtrl*ctrl, const LLSD& param  	{  		showAccordion("tab_all", param.asInteger());  	} +	updateButtons(); -	LLAccordionCtrl* accordion = getChild<LLAccordionCtrl>("friends_accordion"); -	accordion->arrange();  }  void LLPanelPeople::setAccordionCollapsedByUser(LLUICtrl* acc_tab, bool collapsed) diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index ae31c9732c..361f4e2326 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -3115,8 +3115,12 @@ void process_agent_movement_complete(LLMessageSystem* msg, void**)  		{  			// Chat the "back" SLURL. (DEV-4907) +			LLSD substitution = LLSD().with("[T_SLURL]", gAgent.getTeleportSourceSLURL()); +			std::string completed_from = LLAgent::sTeleportProgressMessages["completed_from"]; +			LLStringUtil::format(completed_from, substitution); +  			LLSD args; -			args["MESSAGE"] = "Teleport completed from " + gAgent.getTeleportSourceSLURL(); +			args["MESSAGE"] = completed_from;  			LLNotificationsUtil::add("SystemMessageTip", args);  			// Set the new position diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index f1ec489a20..30f2d2c41b 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -695,22 +695,15 @@ BOOL LLViewerWindow::handleAnyMouseClick(LLWindow *window,  LLCoordGL pos, MASK  	{  		S32 local_x, local_y;  		top_ctrl->screenPointToLocal( x, y, &local_x, &local_y ); -		if (down) +		if (top_ctrl->pointInView(local_x, local_y))  		{ -			if (top_ctrl->pointInView(local_x, local_y)) -			{ -				return top_ctrl->handleAnyMouseClick(local_x, local_y, mask, clicktype, down)	; -			} -			else -			{ -				gFocusMgr.setTopCtrl(NULL); -			} +			return top_ctrl->handleAnyMouseClick(local_x, local_y, mask, clicktype, down)	;  		}  		else  		{ -			if (top_ctrl->pointInView(local_x, local_y) && top_ctrl->handleMouseUp(local_x, local_y, mask)) +			if (down)  			{ -				return TRUE; +				gFocusMgr.setTopCtrl(NULL);  			}  		}  	} diff --git a/indra/newview/skins/default/xui/en/floater_im_container.xml b/indra/newview/skins/default/xui/en/floater_im_container.xml index 0f098bbb52..65a05f3ec5 100644 --- a/indra/newview/skins/default/xui/en/floater_im_container.xml +++ b/indra/newview/skins/default/xui/en/floater_im_container.xml @@ -22,7 +22,9 @@       tab_width="64"       tab_max_width = "134"       tab_height="16" -     halign="center" +     use_custom_icon_ctrl="true" +     tab_icon_ctrl_pad="2" +     halign="left"       use_ellipses="true"       top="0"       width="390" /> diff --git a/indra/newview/skins/default/xui/en/floater_snapshot.xml b/indra/newview/skins/default/xui/en/floater_snapshot.xml index 1ab3dda52c..01548dd820 100644 --- a/indra/newview/skins/default/xui/en/floater_snapshot.xml +++ b/indra/newview/skins/default/xui/en/floater_snapshot.xml @@ -105,9 +105,11 @@       width="100">          <flyout_button.item           label="Save" +         name="save_item"           value="save" />          <flyout_button.item           label="Save As..." +         name="saveas_item"           value="save as" />      </flyout_button>          <button diff --git a/indra/newview/skins/default/xui/en/panel_classified_info.xml b/indra/newview/skins/default/xui/en/panel_classified_info.xml index cb1df4249e..a8c72e03bd 100644 --- a/indra/newview/skins/default/xui/en/panel_classified_info.xml +++ b/indra/newview/skins/default/xui/en/panel_classified_info.xml @@ -93,6 +93,17 @@           v_pad="0"           value="[name]"           use_ellipses="true" /> +        <text +         follows="left|top" +         font.style="BOLD" +         height="10" +         layout="topleft" +         left="10" +         name="classified_location_label" +         text_color="white" +         top_pad="10" +         value="Location:" +         width="250" />          <text_editor           allow_scroll="false"           bg_visible="false" @@ -103,10 +114,22 @@           left="10"           name="classified_location"           read_only="true" +         top_pad="5"           width="290"           word_wrap="true"           v_pad="0"           value="[loading...]" /> +        <text +         follows="left|top" +         font.style="BOLD" +         height="10" +         layout="topleft" +         left="10" +         name="content_type_label" +         text_color="white" +         top_pad="10" +         value="Content Type:" +         width="250" />          <text_editor           allow_scroll="false"           bg_visible="false" @@ -121,6 +144,17 @@           top_pad="15"           v_pad="0"           value="[content type]" /> +        <text +         follows="left|top" +         font.style="BOLD" +         height="10" +         layout="topleft" +         left="10" +         name="category_label" +         text_color="white" +         top_pad="10" +         value="Category:" +         width="250" />          <text_editor           allow_html="true"           allow_scroll="false" @@ -136,6 +170,17 @@           top_pad="5"           v_pad="0"           value="[category]" /> +        <text +         follows="left|top" +         font.style="BOLD" +         height="10" +         layout="topleft" +         left="10" +         name="price_for_listing_label" +         text_color="white" +         top_pad="10" +         value="Price for listing:" +         width="250" />          <text_editor           allow_scroll="false"           bg_visible="false" @@ -150,17 +195,61 @@           top_pad="5"           tool_tip="Price for listing."           v_pad="0" +         value="[price]"           width="105" /> +        <layout_stack +         animate="false" +         name="descr_stack" +         layout="topleft" +         follows="top|left" +         orientation="vertical" +         left="10" +         top_pad="5" +         width="290" +         height="250"> +         <layout_panel +          auto_resize="false" +          name="price_layout_panel" +          layout="topleft" +          follows="top|left" +          left="0" +          top="0" +          width="290" +          height="26" +          user_resize="false">          <check_box           enabled="false"           height="16"           label="Auto renew each week"           layout="topleft" -         left="10" +         follows="top|left" +         left="0"           name="auto_renew" -         top_pad="5" +         top="0"           v_pad="0"           width="290" /> +         </layout_panel> +         <layout_panel +          name="descr_layout_panel" +          layout="topleft" +          follows="top|left" +          left="0" +          top="0" +          width="290" +          height="215" +          user_resize="false"> +        <text +         auto_resize="false" +         follows="left|top" +         font.style="BOLD" +         height="10" +         layout="topleft" +         left="0" +         name="classified_desc_label" +         text_color="white" +         top="0" +         value="Description:" +         width="250" />          <text_editor           allow_html="true"           allow_scroll="true" @@ -168,15 +257,18 @@           follows="left|top|right"           h_pad="0"           height="200" -         width="272"           layout="topleft" -         left="10" +         left="0"           max_length="1023"           name="classified_desc"           read_only="true" +         top_pad="5" +         width="290"           v_pad="0"           value="[description]"           word_wrap="true" /> +         </layout_panel> +        </layout_stack>      </panel>      </scroll_container>      <panel diff --git a/indra/newview/skins/default/xui/en/panel_edit_classified.xml b/indra/newview/skins/default/xui/en/panel_edit_classified.xml index 90b0acef26..6cc6c51fe0 100644 --- a/indra/newview/skins/default/xui/en/panel_edit_classified.xml +++ b/indra/newview/skins/default/xui/en/panel_edit_classified.xml @@ -59,7 +59,7 @@       layout="topleft"       top="0"       background_visible="false" -     height="610" +     height="690"       left="0"       width="285">        <texture_picker @@ -153,7 +153,7 @@           type="string"           length="1"           follows="left|top" -         height="50" +         height="30"           layout="topleft"           left="10"           name="classified_location" @@ -172,6 +172,17 @@           top_pad="5"           name="set_to_curr_location_btn"           width="156" /> +        <text +         follows="left|top" +         font.style="BOLD" +         height="10" +         layout="topleft" +         left="10" +         name="category_label" +         text_color="white" +         top_pad="15" +         value="Category:" +         width="250" />          <combo_box           follows="left|top"            height="23"  @@ -180,6 +191,17 @@           name="category"            top_pad="5"           width="156" /> +        <text +         follows="left|top" +         font.style="BOLD" +         height="10" +         layout="topleft" +         left="10" +         name="content_type_label" +         text_color="white" +         top_pad="15" +         value="Content type:" +         width="250" />          <combo_box            allow_text_entry="false"            follows="left|top"  @@ -199,6 +221,17 @@             General Content           </combo_item>          </combo_box> +        <text +         follows="left|top" +         font.style="BOLD" +         height="10" +         layout="topleft" +         left="10" +         name="price_for_listing_label" +         text_color="white" +         top_pad="15" +         value="Price for listing:" +         width="250" />          <spinner           decimal_digits="0"           follows="left|top" @@ -223,7 +256,7 @@           layout="topleft"           left="10"           name="auto_renew" -         top_pad="5" +         top_pad="15"           width="250" />       </panel>      </scroll_container> diff --git a/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml index 4e57b428bd..5147bb72d0 100644 --- a/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml +++ b/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml @@ -100,17 +100,8 @@ background_visible="true"              expanded="true"              layout="topleft"              name="group_general_tab" -            title="General"> -               <scroll_container -                 color="DkGray2" -                 follows="all" -                 layout="topleft" -                 left="0" -                 name="profile_scroll" -                 opaque="true" -                 height="604" -                 width="304" -                 top="0"> +            title="General" +            fit_panel="false">                     <panel                        border="false"                        class="panel_group_general" @@ -121,24 +112,13 @@ background_visible="true"                        help_topic="group_general_tab"                        name="group_general_tab_panel"                        top="0" /> -			   </scroll_container>           </accordion_tab>           <accordion_tab              expanded="false"              layout="topleft"              name="group_roles_tab" -            title="Roles"> -               <scroll_container -                 color="DkGray2" -                 follows="all" -                 layout="topleft" -                 left="0" -                 name="profile_scroll" -                 opaque="true" -                 height="680" -                 width="304" -                 top="0"> - +            title="Roles" +            fit_panel="false">                  <panel                     border="false"                     class="panel_group_roles" @@ -148,24 +128,13 @@ background_visible="true"                     left="0"                     name="group_roles_tab_panel"                     top="0" /> -                </scroll_container>           </accordion_tab>           <accordion_tab              expanded="false"              layout="topleft"              name="group_notices_tab" -            title="Notices"> -               <scroll_container -                 color="DkGray2" -                 follows="all" -                 layout="topleft" -                 left="0" -                 name="profile_scroll" -                 opaque="true" -                 height="530" -                 width="304" -                 top="0"> - +            title="Notices" +            fit_panel="false">                  <panel                      border="false"                      class="panel_group_notices" @@ -176,24 +145,13 @@ background_visible="true"                      help_topic="group_notices_tab"                      name="group_notices_tab_panel"                      top="0" /> -               </scroll_container>           </accordion_tab>           <accordion_tab               expanded="false"               layout="topleft"               name="group_land_tab" -             title="Land/Assets"> -               <scroll_container -                 color="DkGray2" -                 follows="all" -                 layout="topleft" -                 left="0" -                 name="profile_scroll" -                 opaque="true" -                 height="500" -                 width="304" -                 top="0"> - +             title="Land/Assets" +             fit_panel="false">                   <panel  					 border="false"                       class="panel_group_land_money" @@ -203,7 +161,6 @@ background_visible="true"                       left="0"                       name="group_land_tab_panel"                       top="0" /> -               </scroll_container>           </accordion_tab>           </accordion>     </layout_panel> diff --git a/indra/newview/skins/default/xui/en/teleport_strings.xml b/indra/newview/skins/default/xui/en/teleport_strings.xml index e8f6b1319a..bae821d3b5 100644 --- a/indra/newview/skins/default/xui/en/teleport_strings.xml +++ b/indra/newview/skins/default/xui/en/teleport_strings.xml @@ -61,6 +61,9 @@ Try again in a moment.  		<message name="completing">  			Completing teleport.  		</message> +		<message name="completed_from"> +			Teleport completed from [T_SLURL] +		</message>  		<message name="resolving">  			Resolving destination.  		</message> diff --git a/indra/newview/skins/default/xui/en/widgets/chiclet_im_adhoc.xml b/indra/newview/skins/default/xui/en/widgets/chiclet_im_adhoc.xml index 63f08a4250..413ca1d1ef 100644 --- a/indra/newview/skins/default/xui/en/widgets/chiclet_im_adhoc.xml +++ b/indra/newview/skins/default/xui/en/widgets/chiclet_im_adhoc.xml @@ -24,7 +24,7 @@       follows="left|top|bottom"       height="20"       left="2" -     mouse_opaque="true" +     mouse_opaque="false"       name="adhoc_icon"       width="21" />      <chiclet_im_adhoc.unread_notifications | 
