diff options
| author | Tofu Linden <tofu.linden@lindenlab.com> | 2010-04-02 12:35:24 +0100 | 
|---|---|---|
| committer | Tofu Linden <tofu.linden@lindenlab.com> | 2010-04-02 12:35:24 +0100 | 
| commit | e46f128d20f155b7bae7edb3aeac2a9653c1a433 (patch) | |
| tree | f26e41a3528da449248c0a328f9755aeb7d3e988 /indra | |
| parent | a7085418df1ada6e19b94b6df772ed21e663d119 (diff) | |
| parent | 32283a93e08a27e179486a5162367885131dffba (diff) | |
PE merge
Diffstat (limited to 'indra')
21 files changed, 324 insertions, 105 deletions
| diff --git a/indra/llui/llaccordionctrl.cpp b/indra/llui/llaccordionctrl.cpp index 2ed1082f56..cdcf780d2e 100644 --- a/indra/llui/llaccordionctrl.cpp +++ b/indra/llui/llaccordionctrl.cpp @@ -372,11 +372,33 @@ void	LLAccordionCtrl::arrangeSinge()  		}  		else  		{ -			panel_height = expanded_height; +			if(mFitParent) +			{ +				panel_height = expanded_height; +			} +			else +			{ +				if(accordion_tab->getAccordionView()) +				{ +					panel_height = accordion_tab->getAccordionView()->getRect().getHeight() +  +						accordion_tab->getHeaderHeight() + 2*BORDER_MARGIN; +				} +				else +				{ +					panel_height = accordion_tab->getRect().getHeight(); +				} +			}  		} + +		// make sure at least header is shown +		panel_height = llmax(panel_height, accordion_tab->getHeaderHeight()); +  		ctrlSetLeftTopAndSize(mAccordionTabs[i], panel_left, panel_top, panel_width, panel_height);  		panel_top-=mAccordionTabs[i]->getRect().getHeight();  	} + +	show_hide_scrollbar(getRect().getWidth(), getRect().getHeight()); +	updateLayout(getRect().getWidth(), getRect().getHeight());  }  void	LLAccordionCtrl::arrangeMultiple() diff --git a/indra/llui/llscrollingpanellist.cpp b/indra/llui/llscrollingpanellist.cpp index 4f55c0507c..b7840d1b59 100644 --- a/indra/llui/llscrollingpanellist.cpp +++ b/indra/llui/llscrollingpanellist.cpp @@ -47,7 +47,12 @@ void LLScrollingPanelList::clearPanels()  {  	deleteAllChildren();  	mPanelList.clear(); -	reshape( 1, 1, FALSE ); + +	LLRect rc = getRect(); +	rc.setLeftTopAndSize(rc.mLeft, rc.mTop, 1, 1); +	setRect(rc); + +	notifySizeChanged(rc.getHeight());  }  S32 LLScrollingPanelList::addPanel( LLScrollingPanel* panel ) @@ -67,7 +72,11 @@ S32 LLScrollingPanelList::addPanel( LLScrollingPanel* panel )  		max_width = llmax( max_width, childp->getRect().getWidth() );  		cur_gap = GAP_BETWEEN_PANELS;  	} -	reshape( max_width, total_height, FALSE ); + 	LLRect rc = getRect(); + 	rc.setLeftTopAndSize(rc.mLeft, rc.mTop, max_width, total_height); + 	setRect(rc); + +	notifySizeChanged(rc.getHeight());  	// Reposition each of the child views  	S32 cur_y = total_height; @@ -131,7 +140,11 @@ void LLScrollingPanelList::removePanel( U32 panel_index )  		max_width = llmax( max_width, childp->getRect().getWidth() );  		cur_gap = GAP_BETWEEN_PANELS;  	} -	reshape( max_width, total_height, FALSE ); +	LLRect rc = getRect(); +	rc.setLeftTopAndSize(rc.mLeft, rc.mTop, max_width, total_height); +	setRect(rc); + +	notifySizeChanged(rc.getHeight());  	// Reposition each of the child views  	S32 cur_y = total_height; @@ -200,3 +213,12 @@ void LLScrollingPanelList::draw()  	LLUICtrl::draw();  } +void LLScrollingPanelList::notifySizeChanged(S32 height) +{ +	LLSD info; +	info["action"] = "size_changes"; +	info["height"] = height; +	notifyParent(info); +} + +// EOF diff --git a/indra/llui/llscrollingpanellist.h b/indra/llui/llscrollingpanellist.h index 3abfbcbbe7..5f1996159b 100644 --- a/indra/llui/llscrollingpanellist.h +++ b/indra/llui/llscrollingpanellist.h @@ -61,7 +61,6 @@ public:  		Params()  		{  			name = "scrolling_panel_list"; -			follows.flags = FOLLOWS_LEFT | FOLLOWS_BOTTOM;  		}  	};  	LLScrollingPanelList(const Params& p) @@ -86,6 +85,11 @@ public:  private:  	void				updatePanelVisiblilty(); +	/** +	 * Notify parent about size change, makes sense when used inside accordion +	 */ +	void				notifySizeChanged(S32 height); +  	panel_list_t		mPanelList;  }; diff --git a/indra/llui/llurlentry.cpp b/indra/llui/llurlentry.cpp index c38e38c900..d7666ca4c3 100644 --- a/indra/llui/llurlentry.cpp +++ b/indra/llui/llurlentry.cpp @@ -499,6 +499,35 @@ std::string LLUrlEntryInventory::getLabel(const std::string &url, const LLUrlLab  	return LLURI::unescape(label.empty() ? url : label);  } +// +// LLUrlEntryObjectIM Describes a Second Life inspector for the object Url, e.g., +// secondlife:///app/objectim/7bcd7864-da6b-e43f-4486-91d28a28d95b?name=Object&owner=3de548e1-57be-cfea-2b78-83ae3ad95998&slurl=Danger!%20Danger!/200/200/30/&groupowned=1 +// +LLUrlEntryObjectIM::LLUrlEntryObjectIM() +{ +	mPattern = boost::regex("secondlife:///app/objectim/[\\da-f-]+\?.*", +							boost::regex::perl|boost::regex::icase); +	mMenuName = "menu_url_objectim.xml"; +} + +std::string LLUrlEntryObjectIM::getLabel(const std::string &url, const LLUrlLabelCallback &cb) +{ +	LLURI uri(url); +	LLSD query_map = uri.queryMap(); +	if (query_map.has("name")) +		return query_map["name"]; +	return unescapeUrl(url); +} + +std::string LLUrlEntryObjectIM::getLocation(const std::string &url) const +{ +	LLURI uri(url); +	LLSD query_map = uri.queryMap(); +	if (query_map.has("slurl")) +		return query_map["slurl"]; +	return LLUrlEntryBase::getLocation(url); +} +  ///  /// LLUrlEntryParcel Describes a Second Life parcel Url, e.g.,  /// secondlife:///app/parcel/0000060e-4b39-e00b-d0c3-d98b1934e3a8/about diff --git a/indra/llui/llurlentry.h b/indra/llui/llurlentry.h index 84d0968779..29575d752c 100644 --- a/indra/llui/llurlentry.h +++ b/indra/llui/llurlentry.h @@ -201,6 +201,18 @@ public:  private:  }; +/// +/// LLUrlEntryObjectIM Describes a Second Life inspector for the object Url, e.g., +/// secondlife:///app/objectim/7bcd7864-da6b-e43f-4486-91d28a28d95b?name=Object&owner=3de548e1-57be-cfea-2b78-83ae3ad95998&slurl=Danger!%20Danger!/200/200/30/&groupowned=1 +/// +class LLUrlEntryObjectIM : public LLUrlEntryBase +{ +public: +	LLUrlEntryObjectIM(); +	/*virtual*/ std::string getLabel(const std::string &url, const LLUrlLabelCallback &cb); +	/*virtual*/ std::string getLocation(const std::string &url) const; +private: +};  ///  /// LLUrlEntryParcel Describes a Second Life parcel Url, e.g., diff --git a/indra/llui/llurlregistry.cpp b/indra/llui/llurlregistry.cpp index faa02e1904..7e09a5a919 100644 --- a/indra/llui/llurlregistry.cpp +++ b/indra/llui/llurlregistry.cpp @@ -55,6 +55,7 @@ LLUrlRegistry::LLUrlRegistry()  	registerUrl(new LLUrlEntryWorldMap());  	registerUrl(new LLUrlEntryPlace());  	registerUrl(new LLUrlEntryInventory()); +	registerUrl(new LLUrlEntryObjectIM());  	//LLUrlEntrySL and LLUrlEntrySLLabel have more common pattern,   	//so it should be registered in the end of list  	registerUrl(new LLUrlEntrySL()); diff --git a/indra/newview/llchathistory.cpp b/indra/newview/llchathistory.cpp index 1e404d611c..31feabe722 100644 --- a/indra/newview/llchathistory.cpp +++ b/indra/newview/llchathistory.cpp @@ -93,7 +93,7 @@ public:  		payload["object_id"] = object_id;  		payload["owner_id"] = query_map["owner"];  		payload["name"] = query_map["name"]; -		payload["slurl"] = query_map["slurl"]; +		payload["slurl"] = LLWeb::escapeURL(query_map["slurl"]);  		payload["group_owned"] = query_map["groupowned"];  		LLFloaterReg::showInstance("inspect_remote_object", payload);  		return true; @@ -632,7 +632,14 @@ void LLChatHistory::appendMessage(const LLChat& chat, const LLSD &args, const LL  	if (use_plain_text_chat_history)  	{ -		mEditor->appendText("[" + chat.mTimeStr + "] ", mEditor->getText().size() != 0, style_params); +		LLStyle::Params timestamp_style(style_params); +		if (!message_from_log) +		{ +			LLColor4 timestamp_color = LLUIColorTable::instance().getColor("ChatTimestampColor"); +			timestamp_style.color(timestamp_color); +			timestamp_style.readonly_color(timestamp_color); +		} +		mEditor->appendText("[" + chat.mTimeStr + "] ", mEditor->getText().size() != 0, timestamp_style);  		if (utf8str_trim(chat.mFromName).size() != 0)  		{ diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index 3a73037ae8..804ef609ec 100644 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -501,13 +501,15 @@ void LLFloaterPreference::onOpen(const LLSD& key)  		// if they're not adult or a god, they shouldn't see the adult selection, so delete it  		if (!gAgent.isAdult() && !gAgent.isGodlike())  		{ -			// we're going to remove the adult entry from the combo. This obviously depends -			// on the order of items in the XML file, but there doesn't seem to be a reasonable -			// way to depend on the field in XML called 'name'. -			maturity_combo->remove(0); +			// we're going to remove the adult entry from the combo +			LLScrollListCtrl* maturity_list = maturity_combo->findChild<LLScrollListCtrl>("ComboBox"); +			if (maturity_list) +			{ +				maturity_list->deleteItems(LLSD(SIM_ACCESS_ADULT)); +			}  		}  		childSetVisible("maturity_desired_combobox", true); -		childSetVisible("maturity_desired_textbox", false);		 +		childSetVisible("maturity_desired_textbox", false);  	}  	else  	{ diff --git a/indra/newview/lllocationinputctrl.cpp b/indra/newview/lllocationinputctrl.cpp index 3b4a4a1344..936e6ed316 100644 --- a/indra/newview/lllocationinputctrl.cpp +++ b/indra/newview/lllocationinputctrl.cpp @@ -390,8 +390,8 @@ LLLocationInputCtrl::LLLocationInputCtrl(const LLLocationInputCtrl::Params& p)  	mAddLandmarkTooltip = LLTrans::getString("LocationCtrlAddLandmarkTooltip");  	mEditLandmarkTooltip = LLTrans::getString("LocationCtrlEditLandmarkTooltip"); -	getChild<LLView>("Location History")->setToolTip(LLTrans::getString("LocationCtrlComboBtnTooltip")); -	getChild<LLView>("Place Information")->setToolTip(LLTrans::getString("LocationCtrlInfoBtnTooltip")); +	mButton->setToolTip(LLTrans::getString("LocationCtrlComboBtnTooltip")); +	mInfoBtn->setToolTip(LLTrans::getString("LocationCtrlInfoBtnTooltip"));  }  LLLocationInputCtrl::~LLLocationInputCtrl() diff --git a/indra/newview/llpaneleditwearable.cpp b/indra/newview/llpaneleditwearable.cpp index 805016f089..c0528da999 100644 --- a/indra/newview/llpaneleditwearable.cpp +++ b/indra/newview/llpaneleditwearable.cpp @@ -489,7 +489,6 @@ void LLPanelEditWearable::initializePanel()  		updateScrollingPanelUI();  	} -	  }  void LLPanelEditWearable::updateScrollingPanelUI() @@ -640,14 +639,9 @@ void LLPanelEditWearable::buildParamList(LLScrollingPanelList *panel_list, value  		{  			LLPanel::Params p;  			p.name("LLScrollingPanelParam"); -			p.rect(LLRect(0, LLScrollingPanelParam::PARAM_PANEL_HEIGHT, LLScrollingPanelParam::PARAM_PANEL_WIDTH, 0 ));  			LLScrollingPanelParam* panel_param = new LLScrollingPanelParam( p, NULL, (*it).second, TRUE, this->getWearable());  			height = panel_list->addPanel( panel_param );  		} -	 -		S32 width = tab->getRect().getWidth(); -	 -		tab->reshape(width,height + tab->getHeaderHeight()+10,FALSE);  	}  } diff --git a/indra/newview/llpaneloutfitedit.cpp b/indra/newview/llpaneloutfitedit.cpp index ba22adc01c..2b25c544e3 100644 --- a/indra/newview/llpaneloutfitedit.cpp +++ b/indra/newview/llpaneloutfitedit.cpp @@ -413,7 +413,11 @@ void LLPanelOutfitEdit::onLookItemSelectionChange(void)  {	  	S32 left_offset = -4;  	S32 top_offset = -10; -	LLRect rect = mLookContents->getLastSelectedItem()->getRect(); +	LLScrollListItem* item = mLookContents->getLastSelectedItem(); +	if (!item) +		return; + +	LLRect rect = item->getRect();  	LLRect btn_rect(  					left_offset + rect.mRight - 50,  					top_offset  + rect.mTop, diff --git a/indra/newview/llsidepanelappearance.cpp b/indra/newview/llsidepanelappearance.cpp index b951434010..a80687da4d 100644 --- a/indra/newview/llsidepanelappearance.cpp +++ b/indra/newview/llsidepanelappearance.cpp @@ -297,6 +297,8 @@ void LLSidepanelAppearance::toggleWearableEditPanel(BOOL visible, LLWearable *we  		return;  	} +	mCurrOutfitPanel->setVisible(!visible); +  	mEditWearable->setVisible(visible);  	mEditWearable->setWearable(wearable);  	mFilterEditor->setVisible(!visible); diff --git a/indra/newview/lltoast.cpp b/indra/newview/lltoast.cpp index 60a89c02e4..60657d3fa7 100644 --- a/indra/newview/lltoast.cpp +++ b/indra/newview/lltoast.cpp @@ -41,6 +41,16 @@  using namespace LLNotificationsUI; +/*virtual*/ +BOOL LLToastLifeTimer::tick() +{ +	if (mEventTimer.hasExpired()) +	{ +		mToast->expire(); +	} +	return FALSE; +} +  //--------------------------------------------------------------------------  LLToast::Params::Params()   :	can_fade("can_fade", true), @@ -57,7 +67,6 @@ LLToast::Params::Params()  LLToast::LLToast(const LLToast::Params& p)   :	LLModalDialog(LLSD(), p.is_modal),  	mPanel(p.panel),  -	mToastLifetime(p.lifetime_secs),  	mToastFadingTime(p.fading_time_secs),  	mNotificationID(p.notif_id),    	mSessionID(p.session_id), @@ -71,6 +80,8 @@ LLToast::LLToast(const LLToast::Params& p)  	mIsTip(p.is_tip),  	mWrapperPanel(NULL)  { +	mTimer.reset(new LLToastLifeTimer(this, p.lifetime_secs)); +  	LLUICtrlFactory::getInstance()->buildFloater(this, "panel_toast.xml", NULL);  	setCanDrag(FALSE); @@ -105,7 +116,7 @@ BOOL LLToast::postBuild()  {  	if(!mCanFade)  	{ -		mTimer.stop(); +		mTimer->stop();  	}  	if (mIsTip) @@ -145,38 +156,10 @@ LLToast::~LLToast()  }  //-------------------------------------------------------------------------- -void LLToast::setAndStartTimer(F32 period) -{ -	if(mCanFade) -	{ -		mToastLifetime = period; -		mTimer.start(); -	} -} - -//-------------------------------------------------------------------------- -bool LLToast::lifetimeHasExpired() -{ -	if (mTimer.getStarted()) -	{ -		F32 elapsed_time = mTimer.getElapsedTimeF32(); -		if ((mToastLifetime - elapsed_time) <= mToastFadingTime)  -		{ -			setBackgroundOpaque(FALSE); -		} -		if (elapsed_time > mToastLifetime)  -		{ -			return true; -		} -	} -	return false; -} - -//--------------------------------------------------------------------------  void LLToast::hide()  {  	setVisible(FALSE); -	mTimer.stop(); +	mTimer->stop();  	mIsHidden = true;  	mOnFadeSignal(this);   } @@ -222,12 +205,13 @@ void LLToast::setCanFade(bool can_fade)  {   	mCanFade = can_fade;   	if(!mCanFade) -		mTimer.stop(); +		mTimer->stop();  }  //-------------------------------------------------------------------------- -void LLToast::tick() +void LLToast::expire()  { +	// if toast has fade property - hide it  	if(mCanFade)  	{  		hide(); @@ -263,11 +247,6 @@ void LLToast::insertPanel(LLPanel* panel)  //--------------------------------------------------------------------------  void LLToast::draw()  { -	if(lifetimeHasExpired()) -	{ -		tick(); -	} -  	LLFloater::draw();  	if(!isBackgroundVisible()) @@ -300,9 +279,9 @@ void LLToast::setVisible(BOOL show)  	if(show)  	{  		setBackgroundOpaque(TRUE); -		if(!mTimer.getStarted() && mCanFade) +		if(!mTimer->getStarted() && mCanFade)  		{ -			mTimer.start(); +			mTimer->start();  		}  		LLModalDialog::setFrontmost(FALSE);  	} diff --git a/indra/newview/lltoast.h b/indra/newview/lltoast.h index 64855020a9..20198a9398 100644 --- a/indra/newview/lltoast.h +++ b/indra/newview/lltoast.h @@ -36,7 +36,7 @@  #include "llpanel.h"  #include "llmodaldialog.h" -#include "lltimer.h" +#include "lleventtimer.h"  #include "llnotificationptr.h"  #include "llviewercontrol.h" @@ -48,12 +48,32 @@  namespace LLNotificationsUI  { +class LLToast; +/** + * Timer for toasts. + */ +class LLToastLifeTimer: public LLEventTimer +{ +public: +	LLToastLifeTimer(LLToast* toast, F32 period) : mToast(toast), LLEventTimer(period){} + +	/*virtual*/ +	BOOL tick(); +	void stop() { mEventTimer.stop(); } +	void start() { mEventTimer.start(); } +	void restart() {mEventTimer.reset(); } +	BOOL getStarted() { return mEventTimer.getStarted(); } +private : +	LLToast* mToast; +}; +  /**   * Represents toast pop-up.   * This is a parent view for all toast panels.   */  class LLToast : public LLModalDialog  { +	friend class LLToastLifeTimer;  public:  	typedef boost::function<void (LLToast* toast)> toast_callback_t;  	typedef boost::signals2::signal<void (LLToast* toast)> toast_signal_t; @@ -107,12 +127,10 @@ public:  	LLPanel* getPanel() { return mPanel; }  	// enable/disable Toast's Hide button  	void setHideButtonEnabled(bool enabled); -	// initialize and start Toast's timer -	void setAndStartTimer(F32 period);  	//  -	void resetTimer() { mTimer.start(); } +	void resetTimer() { mTimer->start(); }  	// -	void stopTimer() { mTimer.stop(); } +	void stopTimer() { mTimer->stop(); }  	//  	virtual void draw();  	// @@ -176,10 +194,7 @@ private:  	void handleTipToastClick(S32 x, S32 y, MASK mask); -	// check timer -	bool	lifetimeHasExpired(); -	// on timer finished function -	void	tick(); +	void	expire();  	LLUUID				mNotificationID;  	LLUUID				mSessionID; @@ -188,8 +203,8 @@ private:  	LLPanel* mWrapperPanel;  	// timer counts a lifetime of a toast -	LLTimer		mTimer; -	F32			mToastLifetime; // in seconds +	std::auto_ptr<LLToastLifeTimer> mTimer; +  	F32			mToastFadingTime; // in seconds  	LLPanel*		mPanel; diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml index 0a906a8063..72b571991a 100644 --- a/indra/newview/skins/default/colors.xml +++ b/indra/newview/skins/default/colors.xml @@ -731,7 +731,10 @@      <color       name="ChatToastAgentNameColor"       reference="EmphasisColor" /> -  <color +    <color      name="ColorSwatchBorderColor"      value="0.45098 0.517647 0.607843 1"/> +    <color +     name="ChatTimestampColor" +     reference="White" />  </colors> diff --git a/indra/newview/skins/default/xui/en/panel_edit_shape.xml b/indra/newview/skins/default/xui/en/panel_edit_shape.xml index 45c4b92338..9a3b5c26ec 100644 --- a/indra/newview/skins/default/xui/en/panel_edit_shape.xml +++ b/indra/newview/skins/default/xui/en/panel_edit_shape.xml @@ -1,38 +1,43 @@  <?xml version="1.0" encoding="utf-8" standalone="yes" ?>   <panel +     background_visible="true"  	 follows="all"  	 height="400"  	 layout="topleft"  	 left="10"  	 name="edit_shape_panel"  	 top_pad="10" -	 width="313" > +	 width="333" >  	 <panel -		 border="true" +		 border="false" +         bg_alpha_color="DkGray2" +         bg_opaque_color="DkGray2" +         background_visible="true" +         background_opaque="true"  		 follows="top|left"  		 height="50"  		 left="10"  		 layout="topleft"  		 name="avatar_sex_panel" -		 top="10" -		 width="293" > +		 top="0" +		 width="313" >     			<text   			 follows="top|left"  			 height="16"  			 layout="topleft"  			 left="10"  			 name="gender_text" -			 width="303"> +			 width="313">  				Gender:  			</text>  		   <radio_group -			 follows="all" +			 follows="left|top|right"  			 left="10" -             height="34" +             height="28"               layout="topleft"               name="sex_radio"  			 top_pad="3" -			 width="200" > +			 width="303" >                  <radio_item  					follows="all"                   height="16" @@ -51,21 +56,41 @@                   width="82" />              </radio_group>  	 </panel> +     <panel +         border="false" +         bg_alpha_color="DkGray2" +         bg_opaque_color="DkGray2" +         background_visible="true" +         background_opaque="true" +         follows="all" +         height="345" +         label="Shirt" +         layout="topleft" +		 left="10" +         name="accordion_panel" +		 top_pad="10" +         width="313">  	 <accordion -		follows="left|top|right|bottom" -		height ="330" -		left="10" +        layout="topleft" +		follows="all" +		height ="345" +		left="0"  		name="wearable_accordion" -		top_pad="10" -		width="303"> +		top="0" +        single_expansion="true" +        fit_parent="false" +		width="313">  		<accordion_tab  			layout="topleft"  			min_height="150"  			name="shape_body_tab" +            fit_panel="false"  			title="Body">  			<scrolling_panel_list +                layout="topleft"   				follows="all"  				left="0" +                height="300"  				name="shape_body_param_list"  				top="0"  				width="303" /> @@ -73,11 +98,13 @@  		<accordion_tab  			layout="topleft"  			min_height="150" +            fit_panel="false"  			name="shape_head_tab"  			title="Head"> -			<scrolling_panel_list +           <scrolling_panel_list +                layout="topleft"  				follows="all" -				left="0" +				left="10"  				name="shape_head_param_list"  				top="0"  				width="303" /> @@ -85,9 +112,11 @@  		<accordion_tab  			layout="topleft"  			min_height="150" +            fit_panel="false"  			name="shape_eyes_tab"  			title="Eyes"> -			<scrolling_panel_list +           <scrolling_panel_list +                layout="topleft"  				follows="all"  				left="0"  				name="shape_eyes_param_list" @@ -97,9 +126,11 @@  		<accordion_tab  			layout="topleft"  			min_height="150" +            fit_panel="false"  			name="shape_ears_tab"  			title="Ears"> -			<scrolling_panel_list +           <scrolling_panel_list +                layout="topleft"  				follows="all"  				left="0"  				name="shape_ears_param_list" @@ -110,8 +141,10 @@  			layout="topleft"  			min_height="150"  			name="shape_nose_tab" +            fit_panel="false"  			title="Nose"> -			<scrolling_panel_list +           <scrolling_panel_list +                layout="topleft"  				follows="all"  				left="0"  				name="shape_nose_param_list" @@ -122,8 +155,10 @@  			layout="topleft"  			min_height="150"  			name="shape_mouth_tab" +            fit_panel="false"  			title="Mouth"> -			<scrolling_panel_list +           <scrolling_panel_list +                layout="topleft"  				follows="all"  				left="0"  				name="shape_mouth_param_list" @@ -134,8 +169,10 @@  			layout="topleft"  			min_height="150"  			name="shape_chin_tab" +            fit_panel="false"  			title="Chin"> -			<scrolling_panel_list +           <scrolling_panel_list +                layout="topleft"  				follows="all"  				left="0"  				name="shape_chin_param_list" @@ -146,8 +183,10 @@  			layout="topleft"  			min_height="150"  			name="shape_torso_tab" +            fit_panel="false"  			title="Torso"> -			<scrolling_panel_list +           <scrolling_panel_list +                layout="topleft"  				follows="all"  				left="0"  				name="shape_torso_param_list" @@ -158,8 +197,10 @@  			layout="topleft"  			min_height="150"  			name="shape_legs_tab" +            fit_panel="false"  			title="Legs"> -			<scrolling_panel_list +           <scrolling_panel_list +                layout="topleft"  				follows="all"  				left="0"  				name="shape_legs_param_list" @@ -167,5 +208,6 @@  				width="303" />  		</accordion_tab>  	</accordion> +    </panel>  </panel> diff --git a/indra/newview/skins/default/xui/en/panel_edit_wearable.xml b/indra/newview/skins/default/xui/en/panel_edit_wearable.xml index f76a56bda4..b4272bb10a 100644 --- a/indra/newview/skins/default/xui/en/panel_edit_wearable.xml +++ b/indra/newview/skins/default/xui/en/panel_edit_wearable.xml @@ -150,7 +150,11 @@ left="0"  	 value="Editing Shape"  	 width="270" />       <panel -         border="true" +         border="false" +         bg_alpha_color="DkGray2" +         bg_opaque_color="DkGray2" +         background_visible="true" +         background_opaque="true"           follows="top|left"           height="60"           label="Shirt" @@ -335,30 +339,76 @@ left="0"  			 visible="false"  			 width="333" />  	 </panel> +     <panel +        follows="left|right|bottom" +        height="38" +        label="gear_buttom_panel" +        layout="bottom|left|right" +        left="0" +        bottom="25" +        name="gear_buttom_panel" +        width="333"> +        <button +            follows="bottom|left" +            tool_tip="Options" +            height="18" +            image_disabled="OptionsMenu_Disabled" +            image_selected="OptionsMenu_Press" +            image_unselected="OptionsMenu_Off" +            layout="topleft" +            left="10" +            name="friends_viewsort_btn" +            top="10" +            width="18" /> +        <button +            follows="bottom|left" +            height="18" +            image_selected="AddItem_Press" +            image_unselected="AddItem_Off" +            image_disabled="AddItem_Disabled" +            layout="topleft" +            left_pad="10" +            name="add_btn" +            tool_tip="TODO" +            width="18" /> +        <button +            follows="bottom|left" +            height="18" +            image_selected="TrashItem_Press" +            image_unselected="TrashItem_Off" +            image_disabled="TrashItem_Disabled" +            layout="topleft" +            left_pad="10" +            right="-10" +            name="del_btn" +            tool_tip="TODO" +            top_delta="0" +            width="18" /> +     </panel>  	 <panel -		 follows="all" +		 follows="bottom|left|right"  		 height="25"  		 layout="bottom|left|right"  		 left="0"  		 name="button_panel" -		 top_pad="10" +		 bottom="5"  		 width="333" >  		 <button  			 follows="bottomleft"  			 layout="topleft"  			 height="23"  			 label="Save As" -			 left="10" +			 left="8"  			 name="save_as_button"  			 top="0" -			 width="100" /> +			 width="153" />  		 <button  			 follows="bottomleft"  			 layout="topleft"  			 height="23"  			 label="Revert" -			 left_pad="10" +			 left_pad="7"  			 name="revert_button" -			 width="100" /> +			 width="153" />  	 </panel>  </panel> 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 701a14e1c5..789d69bc68 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 @@ -98,6 +98,7 @@ background_visible="true"       left="0"       top="0"       single_expansion="true" +     fit_parent="true"       follows="all"       layout="topleft"       name="groups_accordion"> diff --git a/indra/newview/skins/default/xui/en/panel_im_control_panel.xml b/indra/newview/skins/default/xui/en/panel_im_control_panel.xml index 7d7e21d4b0..29c6a17c31 100644 --- a/indra/newview/skins/default/xui/en/panel_im_control_panel.xml +++ b/indra/newview/skins/default/xui/en/panel_im_control_panel.xml @@ -150,7 +150,7 @@              <button               follows="left|top|right"               height="23" -             label="Leave Call" +             label="End Call"               name="end_call_btn"               width="100" />          </layout_panel> diff --git a/indra/newview/skins/default/xui/en/panel_scrolling_param.xml b/indra/newview/skins/default/xui/en/panel_scrolling_param.xml index 44afadf65a..f9c86fc75b 100644 --- a/indra/newview/skins/default/xui/en/panel_scrolling_param.xml +++ b/indra/newview/skins/default/xui/en/panel_scrolling_param.xml @@ -5,7 +5,7 @@   left="0"   name="LLScrollingPanelParam"   top="152" - width="270"> + width="290">      <text       follows="left|top"       height="16" @@ -46,6 +46,36 @@       width="128">          Loading...      </text> +    <view_border  +     layout="topleft" +     follows="left|top" +     left="2" +     top="0" +     width="132" +     height="132" +     thickness="2" +     shadow_light_color="LtGray_50" +     highlight_light_color="LtGray_50" +     highlight_dark_color="LtGray_50" +     shadow_dark_color="LtGray_50" +     bevel_style="in" +     name="left_border" +    /> +    <view_border  +     layout="topleft" +     follows="left|top" +     left_pad="2" +     top_delta="0" +     width="132" +     height="132" +     thickness="2" +     shadow_light_color="LtGray_50" +     highlight_light_color="LtGray_50" +     highlight_dark_color="LtGray_50" +     shadow_dark_color="LtGray_50" +     bevel_style="in" +     name="right_border" +    />      <button       enabled="false"       height="132" diff --git a/indra/newview/skins/default/xui/en/sidepanel_appearance.xml b/indra/newview/skins/default/xui/en/sidepanel_appearance.xml index 20a1de59fc..c5efa2e221 100644 --- a/indra/newview/skins/default/xui/en/sidepanel_appearance.xml +++ b/indra/newview/skins/default/xui/en/sidepanel_appearance.xml @@ -120,6 +120,6 @@ width="333">     layout="topleft"     left="0"     name="panel_edit_wearable" -   top="35" +   top="0"     visible="false" />  </panel> | 
