diff options
| author | Steven Bennetts <steve@lindenlab.com> | 2008-02-19 21:42:32 +0000 | 
|---|---|---|
| committer | Steven Bennetts <steve@lindenlab.com> | 2008-02-19 21:42:32 +0000 | 
| commit | 2e32d44e7165775936beae5d9ef636ff9d3f2bd2 (patch) | |
| tree | 8153bc399994aabf6e1c41c2d8332e4e8c4ddb78 /indra/newview | |
| parent | db0f5847ea8b96b3c1ac08e7aeb43d83daacb8e4 (diff) | |
merge svn+ssh://svn.lindenlab.com/svn/linden/qa/combo-merge-ui-2008-02-13 -r 79986 : 80178 -> release.
QAR-290 = QAR-271 + QAR-191
Diffstat (limited to 'indra/newview')
153 files changed, 1715 insertions, 1951 deletions
| diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp index 51ab279e16..bd885f955c 100644 --- a/indra/newview/llagent.cpp +++ b/indra/newview/llagent.cpp @@ -969,12 +969,12 @@ void LLAgent::sendReliableMessage()  {  	if (gDisconnected)  	{ -		llwarns << "Trying to send message when disconnected!" << llendl; +		lldebugs << "Trying to send message when disconnected!" << llendl;  		return;  	}  	if (!mRegionp)  	{ -		llwarns << "LLAgent::sendReliableMessage No region for agent yet, not sending message!" << llendl; +		lldebugs << "LLAgent::sendReliableMessage No region for agent yet, not sending message!" << llendl;  		return;  	}  	gMessageSystem->sendReliable(mRegionp->getHost()); diff --git a/indra/newview/llagent.h b/indra/newview/llagent.h index 5e5a58cffb..1b21a71212 100644 --- a/indra/newview/llagent.h +++ b/indra/newview/llagent.h @@ -117,6 +117,8 @@ inline bool operator==(const LLGroupData &a, const LLGroupData &b)  class LLAgent : public LLObservable  { +	LOG_CLASS(LLAgent); +	  public:  	// When the agent hasn't typed anything for this duration, it leaves the   	// typing state (for both chat and IM). diff --git a/indra/newview/llcallingcard.cpp b/indra/newview/llcallingcard.cpp index 6d0244e55e..108e2cafe0 100644 --- a/indra/newview/llcallingcard.cpp +++ b/indra/newview/llcallingcard.cpp @@ -266,9 +266,8 @@ S32 LLAvatarTracker::addBuddyList(const LLAvatarTracker::buddy_map_t& buds)  {  	using namespace std; -	U32 new_buddy_count = 0;	 -	char first[DB_FIRST_NAME_BUF_SIZE];		/*Flawfinder: ignore*/ -	char last[DB_LAST_NAME_BUF_SIZE];		/*Flawfinder: ignore*/ +	U32 new_buddy_count = 0; +	std::string first,last;  	LLUUID agent_id;  	for(buddy_map_t::const_iterator itr = buds.begin(); itr != buds.end(); ++itr)  	{ @@ -588,8 +587,7 @@ void LLAvatarTracker::processChange(LLMessageSystem* msg)  			{  				if((mBuddyInfo[agent_id]->getRightsGrantedFrom() ^  new_rights) & LLRelationship::GRANT_MODIFY_OBJECTS)  				{ -					char first[DB_FIRST_NAME_BUF_SIZE];		/*Flawfinder: ignore*/ -					char last[DB_LAST_NAME_BUF_SIZE];		/*Flawfinder: ignore*/ +					std::string first, last;  					LLStringBase<char>::format_map_t args;  					if(gCacheName->getName(agent_id, first, last))  					{ @@ -646,8 +644,7 @@ void LLAvatarTracker::processNotify(LLMessageSystem* msg, bool online)  				setBuddyOnline(agent_id,online);  				if(chat_notify)  				{ -					char first[DB_FIRST_NAME_BUF_SIZE];		/*Flawfinder: ignore*/ -					char last[DB_LAST_NAME_BUF_SIZE];		/*Flawfinder: ignore*/ +					std::string first, last;  					if(gCacheName->getName(agent_id, first, last))  					{  						notify = TRUE; @@ -801,8 +798,6 @@ bool LLCollectProxyBuddies::operator()(const LLUUID& buddy_id, LLRelationship* b  bool LLCollectMappableBuddies::operator()(const LLUUID& buddy_id, LLRelationship* buddy)  { -	mFirst[0] = '\0'; -	mLast[0] = '\0';  	gCacheName->getName(buddy_id, mFirst, mLast);  	std::ostringstream fullname;  	fullname << mFirst << " " << mLast; @@ -816,8 +811,6 @@ bool LLCollectMappableBuddies::operator()(const LLUUID& buddy_id, LLRelationship  bool LLCollectOnlineBuddies::operator()(const LLUUID& buddy_id, LLRelationship* buddy)  { -	mFirst[0] = '\0'; -	mLast[0] = '\0';  	gCacheName->getName(buddy_id, mFirst, mLast);  	std::ostringstream fullname;  	fullname << mFirst << " " << mLast; @@ -831,8 +824,6 @@ bool LLCollectOnlineBuddies::operator()(const LLUUID& buddy_id, LLRelationship*  bool LLCollectAllBuddies::operator()(const LLUUID& buddy_id, LLRelationship* buddy)  { -	mFirst[0] = '\0'; -	mLast[0] = '\0';  	gCacheName->getName(buddy_id, mFirst, mLast);  	std::ostringstream fullname;  	fullname << mFirst << " " << mLast; diff --git a/indra/newview/llcallingcard.h b/indra/newview/llcallingcard.h index f713af389f..c00fe5295d 100644 --- a/indra/newview/llcallingcard.h +++ b/indra/newview/llcallingcard.h @@ -212,8 +212,8 @@ public:  	virtual bool operator()(const LLUUID& buddy_id, LLRelationship* buddy);  	typedef std::map<std::string, LLUUID, LLDictionaryLess> buddy_map_t;  	buddy_map_t mMappable; -	char mFirst[DB_FIRST_NAME_BUF_SIZE];	/* Flawfinder: ignore */ -	char mLast[DB_LAST_NAME_BUF_SIZE];	/* Flawfinder: ignore */ +	std::string mFirst; +	std::string mLast;  };  // collect dictionary sorted map of name -> agent_id for every online buddy @@ -225,8 +225,8 @@ public:  	virtual bool operator()(const LLUUID& buddy_id, LLRelationship* buddy);  	typedef std::map<std::string, LLUUID, LLDictionaryLess> buddy_map_t;  	buddy_map_t mOnline; -	char mFirst[DB_FIRST_NAME_BUF_SIZE];		/*Flawfinder: ignore*/ -	char mLast[DB_LAST_NAME_BUF_SIZE];		/*Flawfinder: ignore*/	 +	std::string mFirst; +	std::string mLast;  };  // collect dictionary sorted map of name -> agent_id for every buddy, @@ -240,8 +240,8 @@ public:  	typedef std::map<std::string, LLUUID, LLDictionaryLess> buddy_map_t;  	buddy_map_t mOnline;  	buddy_map_t mOffline; -	char mFirst[DB_FIRST_NAME_BUF_SIZE];	/*Flawfinder: ignore*/	 -	char mLast[DB_LAST_NAME_BUF_SIZE];		/*Flawfinder: ignore*/ +	std::string mFirst; +	std::string mLast;  };  #endif // LL_LLCALLINGCARD_H diff --git a/indra/newview/llchatbar.cpp b/indra/newview/llchatbar.cpp index 1798aea122..2ea9bf6e5e 100644 --- a/indra/newview/llchatbar.cpp +++ b/indra/newview/llchatbar.cpp @@ -125,6 +125,12 @@ BOOL LLChatBar::postBuild()  	// attempt to bind to an existing combo box named gesture  	setGestureCombo(LLUICtrlFactory::getComboBoxByName(this, "Gesture")); +	LLButton * sayp = getChild<LLButton>("Say"); +	if(sayp) +	{ +		setDefaultBtn(sayp); +	} +  	mInputEditor = LLUICtrlFactory::getLineEditorByName(this, "Chat Editor");  	if (mInputEditor)  	{ diff --git a/indra/newview/llclassifiedstatsresponder.cpp b/indra/newview/llclassifiedstatsresponder.cpp index 0b33ce707e..a605d08448 100644 --- a/indra/newview/llclassifiedstatsresponder.cpp +++ b/indra/newview/llclassifiedstatsresponder.cpp @@ -43,7 +43,7 @@  #include "llview.h"  #include "message.h" -LLClassifiedStatsResponder::LLClassifiedStatsResponder(LLViewHandle classified_panel_handle, LLUUID classified_id) +LLClassifiedStatsResponder::LLClassifiedStatsResponder(LLHandle<LLView> classified_panel_handle, LLUUID classified_id)  : mClassifiedPanelHandle(classified_panel_handle),  mClassifiedID(classified_id)  { @@ -58,7 +58,7 @@ void LLClassifiedStatsResponder::result(const LLSD& content)  	S32 search_map = content["search_map_clicks"].asInteger();  	S32 search_profile = content["search_profile_clicks"].asInteger(); -	LLPanelClassified* classified_panelp = (LLPanelClassified*)LLPanel::getPanelByHandle(mClassifiedPanelHandle); +	LLPanelClassified* classified_panelp = (LLPanelClassified*)mClassifiedPanelHandle.get();  	if(classified_panelp)  	{ diff --git a/indra/newview/llclassifiedstatsresponder.h b/indra/newview/llclassifiedstatsresponder.h index 45d6ec38cf..a2b1daa8da 100644 --- a/indra/newview/llclassifiedstatsresponder.h +++ b/indra/newview/llclassifiedstatsresponder.h @@ -39,14 +39,14 @@  class LLClassifiedStatsResponder : public LLHTTPClient::Responder  {  public: -	LLClassifiedStatsResponder(LLViewHandle classified_panel_handle, LLUUID classified_id); +	LLClassifiedStatsResponder(LLHandle<LLView> classified_panel_handle, LLUUID classified_id);  	//If we get back a normal response, handle it here  	virtual void result(const LLSD& content);  	//If we get back an error (not found, etc...), handle it here  	virtual void error(U32 status, const std::string& reason);  protected: -	LLViewHandle mClassifiedPanelHandle; +	LLHandle<LLView> mClassifiedPanelHandle;  	LLUUID mClassifiedID;  }; diff --git a/indra/newview/llcolorswatch.cpp b/indra/newview/llcolorswatch.cpp index b814f0d63f..b2b29ffc9f 100644 --- a/indra/newview/llcolorswatch.cpp +++ b/indra/newview/llcolorswatch.cpp @@ -61,14 +61,14 @@ LLColorSwatchCtrl::LLColorSwatchCtrl(const std::string& name, const LLRect& rect  	mOnSelectCallback(NULL)  {  	mCaption = new LLTextBox( name, -		LLRect( 0, BTN_HEIGHT_SMALL, mRect.getWidth(), 0 ), -		LLString::null, +		LLRect( 0, BTN_HEIGHT_SMALL, getRect().getWidth(), 0 ), +		name,  		LLFontGL::sSansSerifSmall );  	mCaption->setFollows( FOLLOWS_LEFT | FOLLOWS_RIGHT | FOLLOWS_BOTTOM );  	addChild( mCaption );  	// Scalable UI made this off-by-one, I don't know why. JC -	LLRect border_rect(0, mRect.getHeight()-1, mRect.getWidth()-1, 0); +	LLRect border_rect(0, getRect().getHeight()-1, getRect().getWidth()-1, 0);  	border_rect.mBottom += BTN_HEIGHT_SMALL;  	mBorder = new LLViewBorder("border", border_rect, LLViewBorder::BEVEL_IN);  	addChild(mBorder); @@ -89,14 +89,14 @@ LLColorSwatchCtrl::LLColorSwatchCtrl(const std::string& name, const LLRect& rect  	mOnSelectCallback(NULL)  {  	mCaption = new LLTextBox( label, -		LLRect( 0, BTN_HEIGHT_SMALL, mRect.getWidth(), 0 ), -		LLString::null, +		LLRect( 0, BTN_HEIGHT_SMALL, getRect().getWidth(), 0 ), +		label,  		LLFontGL::sSansSerifSmall );  	mCaption->setFollows( FOLLOWS_LEFT | FOLLOWS_RIGHT | FOLLOWS_BOTTOM );  	addChild( mCaption );  	// Scalable UI made this off-by-one, I don't know why. JC -	LLRect border_rect(0, mRect.getHeight()-1, mRect.getWidth()-1, 0); +	LLRect border_rect(0, getRect().getHeight()-1, getRect().getWidth()-1, 0);  	border_rect.mBottom += BTN_HEIGHT_SMALL;  	mBorder = new LLViewBorder("border", border_rect, LLViewBorder::BEVEL_IN);  	addChild(mBorder); @@ -108,7 +108,7 @@ LLColorSwatchCtrl::LLColorSwatchCtrl(const std::string& name, const LLRect& rect  LLColorSwatchCtrl::~LLColorSwatchCtrl ()  {  	// parent dialog is destroyed so we are too and we need to cancel selection -	LLFloaterColorPicker* pickerp = (LLFloaterColorPicker*)LLFloater::getFloaterByHandle(mPickerHandle); +	LLFloaterColorPicker* pickerp = (LLFloaterColorPicker*)mPickerHandle.get();  	if (pickerp)  	{  		pickerp->cancelSelection(); @@ -130,7 +130,7 @@ BOOL LLColorSwatchCtrl::handleHover(S32 x, S32 y, MASK mask)  BOOL LLColorSwatchCtrl::handleUnicodeCharHere(llwchar uni_char, BOOL called_from_parent)  { -	if( getVisible() && mEnabled && !called_from_parent && ' ' == uni_char ) +	if( getVisible() && getEnabled() && !called_from_parent && ' ' == uni_char )  	{  		showPicker(TRUE);  	} @@ -141,7 +141,7 @@ BOOL LLColorSwatchCtrl::handleUnicodeCharHere(llwchar uni_char, BOOL called_from  void LLColorSwatchCtrl::setOriginal(const LLColor4& color)  {  	mColor = color; -	LLFloaterColorPicker* pickerp = (LLFloaterColorPicker*)LLFloater::getFloaterByHandle(mPickerHandle); +	LLFloaterColorPicker* pickerp = (LLFloaterColorPicker*)mPickerHandle.get();  	if (pickerp)  	{  		pickerp->setOrigRgb(mColor.mV[VRED], mColor.mV[VGREEN], mColor.mV[VBLUE]); @@ -151,7 +151,7 @@ void LLColorSwatchCtrl::setOriginal(const LLColor4& color)  void LLColorSwatchCtrl::set(const LLColor4& color, BOOL update_picker, BOOL from_event)  {  	mColor = color;  -	LLFloaterColorPicker* pickerp = (LLFloaterColorPicker*)LLFloater::getFloaterByHandle(mPickerHandle); +	LLFloaterColorPicker* pickerp = (LLFloaterColorPicker*)mPickerHandle.get();  	if (pickerp && update_picker)  	{  		pickerp->setCurRgb(mColor.mV[VRED], mColor.mV[VGREEN], mColor.mV[VBLUE]); @@ -188,7 +188,7 @@ BOOL LLColorSwatchCtrl::handleMouseUp(S32 x, S32 y, MASK mask)  		// If mouseup in the widget, it's been clicked  		if ( pointInView(x, y) )  		{ -			llassert(mEnabled); +			llassert(getEnabled());  			llassert(getVisible());  			showPicker(FALSE); @@ -206,7 +206,7 @@ void LLColorSwatchCtrl::draw()  	{  		mBorder->setKeyboardFocusHighlight(hasFocus());  		// Draw border -		LLRect border( 0, mRect.getHeight(), mRect.getWidth(), BTN_HEIGHT_SMALL ); +		LLRect border( 0, getRect().getHeight(), getRect().getWidth(), BTN_HEIGHT_SMALL );  		gl_rect_2d( border, mBorderColor, FALSE );  		LLRect interior = border; @@ -253,7 +253,7 @@ void LLColorSwatchCtrl::setEnabled( BOOL enabled )  	if (!enabled)  	{ -		LLFloaterColorPicker* pickerp = (LLFloaterColorPicker*)LLFloater::getFloaterByHandle(mPickerHandle); +		LLFloaterColorPicker* pickerp = (LLFloaterColorPicker*)mPickerHandle.get();  		if (pickerp)  		{  			pickerp->cancelSelection(); @@ -275,7 +275,7 @@ void LLColorSwatchCtrl::onColorChanged ( void* data, EColorPickOp pick_op )  	LLColorSwatchCtrl* subject = ( LLColorSwatchCtrl* )data;  	if ( subject )  	{ -		LLFloaterColorPicker* pickerp = (LLFloaterColorPicker*)LLFloater::getFloaterByHandle(subject->mPickerHandle); +		LLFloaterColorPicker* pickerp = (LLFloaterColorPicker*)subject->mPickerHandle.get();  		if (pickerp)  		{  			// move color across from selector to internal widget storage @@ -300,14 +300,14 @@ void LLColorSwatchCtrl::onColorChanged ( void* data, EColorPickOp pick_op )  				subject->onCommit ();  			}  		} -	}; +	}  }  void LLColorSwatchCtrl::setValid(BOOL valid )  {  	mValid = valid; -	LLFloaterColorPicker* pickerp = (LLFloaterColorPicker*)LLFloater::getFloaterByHandle(mPickerHandle); +	LLFloaterColorPicker* pickerp = (LLFloaterColorPicker*)mPickerHandle.get();  	if (pickerp)  	{  		pickerp->setActive(valid); @@ -316,7 +316,7 @@ void LLColorSwatchCtrl::setValid(BOOL valid )  void LLColorSwatchCtrl::showPicker(BOOL take_focus)  { -	LLFloaterColorPicker* pickerp = (LLFloaterColorPicker*)LLFloater::getFloaterByHandle(mPickerHandle); +	LLFloaterColorPicker* pickerp = (LLFloaterColorPicker*)mPickerHandle.get();  	if (!pickerp)  	{  		pickerp = new LLFloaterColorPicker(this, mCanApplyImmediately); @@ -324,7 +324,7 @@ void LLColorSwatchCtrl::showPicker(BOOL take_focus)  		mPickerHandle = pickerp->getHandle();  	} -	// initialize picker singleton with current color +	// initialize picker with current color  	pickerp->initUI ( mColor.mV [ VRED ], mColor.mV [ VGREEN ], mColor.mV [ VBLUE ] );  	// display it diff --git a/indra/newview/llcolorswatch.h b/indra/newview/llcolorswatch.h index 05b2dc434c..cc9b9ad017 100644 --- a/indra/newview/llcolorswatch.h +++ b/indra/newview/llcolorswatch.h @@ -98,7 +98,7 @@ protected:  	LLColor4		mColor;  	LLColor4		mBorderColor;  	LLTextBox*		mCaption; -	LLViewHandle mPickerHandle; +	LLHandle<LLFloater> mPickerHandle;  	LLViewBorder*	mBorder;  	BOOL			mCanApplyImmediately;  	LLUICtrlCallback mOnCancelCallback; diff --git a/indra/newview/llfasttimerview.cpp b/indra/newview/llfasttimerview.cpp index ee9177c18d..654c33bb93 100644 --- a/indra/newview/llfasttimerview.cpp +++ b/indra/newview/llfasttimerview.cpp @@ -286,7 +286,7 @@ BOOL LLFastTimerView::handleRightMouseDown(S32 x, S32 y, MASK mask)  S32 LLFastTimerView::getLegendIndex(S32 y)  { -	S32 idx = (mRect.getHeight() - y) / ((S32) LLFontGL::sMonospace->getLineHeight()+2) - 5; +	S32 idx = (getRect().getHeight() - y) / ((S32) LLFontGL::sMonospace->getLineHeight()+2) - 5;  	if (idx >= 0 && idx < FTV_DISPLAY_NUM)  	{  		return ft_display_idx[idx]; @@ -415,7 +415,8 @@ void LLFastTimerView::draw()  	S32 height = (S32) (gViewerWindow->getVirtualWindowRect().getHeight()*0.75f);  	S32 width = (S32) (gViewerWindow->getVirtualWindowRect().getWidth() * 0.75f); -	mRect.setLeftTopAndSize(mRect.mLeft, mRect.mTop, width, height); +	// HACK: casting away const. Should use setRect or some helper function instead. +		const_cast<LLRect&>(getRect()).setLeftTopAndSize(getRect().mLeft, getRect().mTop, width, height);  	S32 left, top, right, bottom;  	S32 x, y, barw, barh, dx, dy; @@ -461,7 +462,7 @@ void LLFastTimerView::draw()  	// Draw the window background  	{  		LLGLSNoTexture gls_ui_no_texture; -		gl_rect_2d(0, mRect.getHeight(), mRect.getWidth(), 0, LLColor4(0.f, 0.f, 0.f, 0.25f)); +		gl_rect_2d(0, getRect().getHeight(), getRect().getWidth(), 0, LLColor4(0.f, 0.f, 0.f, 0.25f));  	}  	S32 xleft = margin; @@ -642,7 +643,7 @@ void LLFastTimerView::draw()  	// update rectangle that includes timer bars  	mBarRect.mLeft = xleft; -	mBarRect.mRight = mRect.mRight - xleft; +	mBarRect.mRight = getRect().mRight - xleft;  	mBarRect.mTop = ytop - ((S32)LLFontGL::sMonospace->getLineHeight() + 4);  	mBarRect.mBottom = margin + LINE_GRAPH_HEIGHT; @@ -760,29 +761,29 @@ void LLFastTimerView::draw()  			y -= ((S32)LLFontGL::sMonospace->getLineHeight() + 4);  			//heading -			gl_rect_2d(xleft-5, by, mRect.getWidth()-5, y+5, FALSE); +			gl_rect_2d(xleft-5, by, getRect().getWidth()-5, y+5, FALSE);  			//tree view  			gl_rect_2d(5, by, xleft-10, 5, FALSE);  			by = y + 5;  			//average bar -			gl_rect_2d(xleft-5, by, mRect.getWidth()-5, by-barh-dy-5, FALSE); +			gl_rect_2d(xleft-5, by, getRect().getWidth()-5, by-barh-dy-5, FALSE);  			by -= barh*2+dy;  			//current frame bar -			gl_rect_2d(xleft-5, by, mRect.getWidth()-5, by-barh-dy-2, FALSE); +			gl_rect_2d(xleft-5, by, getRect().getWidth()-5, by-barh-dy-2, FALSE);  			by -= barh+dy+1;  			//history bars -			gl_rect_2d(xleft-5, by, mRect.getWidth()-5, LINE_GRAPH_HEIGHT-barh-dy-2, FALSE);			 +			gl_rect_2d(xleft-5, by, getRect().getWidth()-5, LINE_GRAPH_HEIGHT-barh-dy-2, FALSE);			  			by = LINE_GRAPH_HEIGHT-barh-dy-7;  			//line graph -			graph_rect = LLRect(xleft-5, by, mRect.getWidth()-5, 5); +			graph_rect = LLRect(xleft-5, by, getRect().getWidth()-5, 5);  			gl_rect_2d(graph_rect, FALSE);  		} diff --git a/indra/newview/llfilepicker.cpp b/indra/newview/llfilepicker.cpp index c73b3315cc..5fd0c4ca06 100644 --- a/indra/newview/llfilepicker.cpp +++ b/indra/newview/llfilepicker.cpp @@ -216,6 +216,8 @@ BOOL LLFilePicker::getMultipleOpenFiles(ELoadFilter filter)  			mCurrentFile = mFiles;  			LLString tstr = utf16str_to_utf8str(llutf16string(mFilesW));  			memcpy(mFiles, tstr.c_str(), tstr.size()+1); /*Flawfinder: ignore*/ + +			mCurrentFile = &mFiles[mOFN.nFileOffset];  		}  		else  		{ diff --git a/indra/newview/llfloaterabout.cpp b/indra/newview/llfloaterabout.cpp index 7da2ac79b1..4edf6f3652 100644 --- a/indra/newview/llfloaterabout.cpp +++ b/indra/newview/llfloaterabout.cpp @@ -93,7 +93,7 @@ LLFloaterAbout::LLFloaterAbout()  	if (region)  	{  		const LLVector3d &pos = gAgent.getPositionGlobal(); -		LLUIString pos_text = childGetText("you_are_at"); +		LLUIString pos_text = getUIString("you_are_at");  		pos_text.setArg("[POSITION]",  						llformat("%.1f, %.1f, %.1f ", pos.mdV[VX], pos.mdV[VY], pos.mdV[VZ]));  		support.append(pos_text); @@ -177,7 +177,7 @@ LLFloaterAbout::LLFloaterAbout()  	// Fix views  	childDisable("credits_editor"); -	LLTextEditor * support_widget = (LLTextEditor *) getChildByName("support_editor", true); +	LLTextEditor * support_widget = getChild<LLTextEditor>("support_editor", true);  	if (support_widget)  	{  		support_widget->setEnabled( FALSE ); diff --git a/indra/newview/llfloateranimpreview.cpp b/indra/newview/llfloateranimpreview.cpp index 18c3983b9a..2eddb45f23 100644 --- a/indra/newview/llfloateranimpreview.cpp +++ b/indra/newview/llfloateranimpreview.cpp @@ -280,7 +280,7 @@ BOOL LLFloaterAnimPreview::postBuild()  			childSetValue("hand_pose_combo", LLHandMotion::getHandPoseName(motionp->getHandPose()));  			childSetValue("ease_in_time", LLSD(motionp->getEaseInDuration()));  			childSetValue("ease_out_time", LLSD(motionp->getEaseOutDuration())); -			mEnabled = TRUE; +			setEnabled(TRUE);  			char seconds_string[128];		/*Flawfinder: ignore*/  			snprintf(seconds_string, sizeof(seconds_string), " - %.2f seconds", motionp->getDuration());	/* Flawfinder: ignore */ @@ -291,8 +291,8 @@ BOOL LLFloaterAnimPreview::postBuild()  			delete mAnimPreview;  			mAnimPreview = NULL;  			mMotionID.setNull(); -			childSetValue("bad_animation_text", childGetText("failed_to_initialize")); -			mEnabled = FALSE; +			childSetValue("bad_animation_text", getString("failed_to_initialize")); +			setEnabled(FALSE);  		}  	}  	else @@ -301,20 +301,20 @@ BOOL LLFloaterAnimPreview::postBuild()  		{  			if (loaderp->getDuration() > MAX_ANIM_DURATION)  			{ -				LLUIString out_str = childGetText("anim_too_long"); +				LLUIString out_str = getString("anim_too_long");  				out_str.setArg("[LENGTH]", llformat("%.1f", loaderp->getDuration()));  				out_str.setArg("[MAX_LENGTH]", llformat("%.1f", MAX_ANIM_DURATION));  				childSetValue("bad_animation_text", out_str.getString());  			}  			else  			{ -				LLUIString out_str = childGetText("failed_file_read"); +				LLUIString out_str = getString("failed_file_read");  				out_str.setArg("[STATUS]", loaderp->getStatus()); // *TODO:Translate  				childSetValue("bad_animation_text", out_str.getString());  			}  		} -		mEnabled = FALSE; +		setEnabled(FALSE);  		mMotionID.setNull();  		mAnimPreview = NULL;  	} @@ -334,7 +334,7 @@ LLFloaterAnimPreview::~LLFloaterAnimPreview()  	delete mAnimPreview;  	mAnimPreview = NULL; -	mEnabled = FALSE; +	setEnabled(FALSE);  }  //----------------------------------------------------------------------------- @@ -507,7 +507,7 @@ void LLFloaterAnimPreview::onMouseCaptureLost()  void LLFloaterAnimPreview::onBtnPlay(void* user_data)  {  	LLFloaterAnimPreview* previewp = (LLFloaterAnimPreview*)user_data; -	if (!previewp->mEnabled) return; +	if (!previewp->getEnabled()) return;  	if (previewp->mMotionID.notNull() && previewp->mAnimPreview)  	{ @@ -538,7 +538,7 @@ void LLFloaterAnimPreview::onBtnPlay(void* user_data)  void LLFloaterAnimPreview::onBtnStop(void* user_data)  {  	LLFloaterAnimPreview* previewp = (LLFloaterAnimPreview*)user_data; -	if (!previewp->mEnabled) return; +	if (!previewp->getEnabled()) return;  	if (previewp->mMotionID.notNull() && previewp->mAnimPreview)  	{ @@ -563,7 +563,7 @@ void LLFloaterAnimPreview::onBtnStop(void* user_data)  void LLFloaterAnimPreview::onSliderMove(LLUICtrl* ctrl, void*user_data)  {  	LLFloaterAnimPreview* previewp = (LLFloaterAnimPreview*)user_data; -	if (!previewp->mEnabled) return; +	if (!previewp->getEnabled()) return;  	if (previewp->mAnimPreview)  	{ @@ -609,7 +609,7 @@ void LLFloaterAnimPreview::onCommitBaseAnim(LLUICtrl* ctrl, void* data)  {  	LLFloaterAnimPreview* previewp = (LLFloaterAnimPreview*)data; -	if (!previewp->mEnabled) return; +	if (!previewp->getEnabled()) return;  	if (previewp->mAnimPreview)  	{ @@ -639,7 +639,7 @@ void LLFloaterAnimPreview::onCommitLoop(LLUICtrl* ctrl, void* data)  {  	LLFloaterAnimPreview* previewp = (LLFloaterAnimPreview*)data; -	if (!previewp->mEnabled) return; +	if (!previewp->getEnabled()) return;  	LLVOAvatar* avatarp = previewp->mAnimPreview->getDummyAvatar();  	LLKeyframeMotion* motionp = (LLKeyframeMotion*)avatarp->findMotion(previewp->mMotionID); @@ -657,7 +657,7 @@ void LLFloaterAnimPreview::onCommitLoop(LLUICtrl* ctrl, void* data)  void LLFloaterAnimPreview::onCommitLoopIn(LLUICtrl* ctrl, void* data)  {  	LLFloaterAnimPreview* previewp = (LLFloaterAnimPreview*)data; -	if (!previewp->mEnabled) return; +	if (!previewp->getEnabled()) return;  	LLVOAvatar* avatarp = previewp->mAnimPreview->getDummyAvatar();  	LLKeyframeMotion* motionp = (LLKeyframeMotion*)avatarp->findMotion(previewp->mMotionID); @@ -677,7 +677,7 @@ void LLFloaterAnimPreview::onCommitLoopIn(LLUICtrl* ctrl, void* data)  void LLFloaterAnimPreview::onCommitLoopOut(LLUICtrl* ctrl, void* data)  {  	LLFloaterAnimPreview* previewp = (LLFloaterAnimPreview*)data; -	if (!previewp->mEnabled) return; +	if (!previewp->getEnabled()) return;  	LLVOAvatar* avatarp = previewp->mAnimPreview->getDummyAvatar();  	LLKeyframeMotion* motionp = (LLKeyframeMotion*)avatarp->findMotion(previewp->mMotionID); @@ -697,7 +697,7 @@ void LLFloaterAnimPreview::onCommitLoopOut(LLUICtrl* ctrl, void* data)  void LLFloaterAnimPreview::onCommitName(LLUICtrl* ctrl, void* data)  {  	LLFloaterAnimPreview* previewp = (LLFloaterAnimPreview*)data; -	if (!previewp->mEnabled) return; +	if (!previewp->getEnabled()) return;  	LLVOAvatar* avatarp = previewp->mAnimPreview->getDummyAvatar();  	LLKeyframeMotion* motionp = (LLKeyframeMotion*)avatarp->findMotion(previewp->mMotionID); @@ -716,7 +716,7 @@ void LLFloaterAnimPreview::onCommitName(LLUICtrl* ctrl, void* data)  void LLFloaterAnimPreview::onCommitHandPose(LLUICtrl* ctrl, void* data)  {  	LLFloaterAnimPreview* previewp = (LLFloaterAnimPreview*)data; -	if (!previewp->mEnabled) return; +	if (!previewp->getEnabled()) return;  	LLVOAvatar* avatarp = previewp->mAnimPreview->getDummyAvatar();  	LLKeyframeMotion* motionp = (LLKeyframeMotion*)avatarp->findMotion(previewp->mMotionID); @@ -731,7 +731,7 @@ void LLFloaterAnimPreview::onCommitHandPose(LLUICtrl* ctrl, void* data)  void LLFloaterAnimPreview::onCommitEmote(LLUICtrl* ctrl, void* data)  {  	LLFloaterAnimPreview* previewp = (LLFloaterAnimPreview*)data; -	if (!previewp->mEnabled) return; +	if (!previewp->getEnabled()) return;  	LLVOAvatar* avatarp = previewp->mAnimPreview->getDummyAvatar();  	LLKeyframeMotion* motionp = (LLKeyframeMotion*)avatarp->findMotion(previewp->mMotionID); @@ -746,7 +746,7 @@ void LLFloaterAnimPreview::onCommitEmote(LLUICtrl* ctrl, void* data)  void LLFloaterAnimPreview::onCommitPriority(LLUICtrl* ctrl, void* data)  {  	LLFloaterAnimPreview* previewp = (LLFloaterAnimPreview*)data; -	if (!previewp->mEnabled) return; +	if (!previewp->getEnabled()) return;  	LLVOAvatar* avatarp = previewp->mAnimPreview->getDummyAvatar();  	LLKeyframeMotion* motionp = (LLKeyframeMotion*)avatarp->findMotion(previewp->mMotionID); @@ -760,7 +760,7 @@ void LLFloaterAnimPreview::onCommitPriority(LLUICtrl* ctrl, void* data)  void LLFloaterAnimPreview::onCommitEaseIn(LLUICtrl* ctrl, void* data)  {  	LLFloaterAnimPreview* previewp = (LLFloaterAnimPreview*)data; -	if (!previewp->mEnabled) return; +	if (!previewp->getEnabled()) return;  	LLVOAvatar* avatarp = previewp->mAnimPreview->getDummyAvatar();  	LLKeyframeMotion* motionp = (LLKeyframeMotion*)avatarp->findMotion(previewp->mMotionID); @@ -775,7 +775,7 @@ void LLFloaterAnimPreview::onCommitEaseIn(LLUICtrl* ctrl, void* data)  void LLFloaterAnimPreview::onCommitEaseOut(LLUICtrl* ctrl, void* data)  {  	LLFloaterAnimPreview* previewp = (LLFloaterAnimPreview*)data; -	if (!previewp->mEnabled) return; +	if (!previewp->getEnabled()) return;  	LLVOAvatar* avatarp = previewp->mAnimPreview->getDummyAvatar();  	LLKeyframeMotion* motionp = (LLKeyframeMotion*)avatarp->findMotion(previewp->mMotionID); @@ -791,7 +791,7 @@ BOOL LLFloaterAnimPreview::validateEaseIn(LLUICtrl* spin, void* data)  {  	LLFloaterAnimPreview* previewp = (LLFloaterAnimPreview*)data; -	if (!previewp->mEnabled) return FALSE; +	if (!previewp->getEnabled()) return FALSE;  	LLVOAvatar* avatarp = previewp->mAnimPreview->getDummyAvatar();  	LLKeyframeMotion* motionp = (LLKeyframeMotion*)avatarp->findMotion(previewp->mMotionID); @@ -812,7 +812,7 @@ BOOL LLFloaterAnimPreview::validateEaseOut(LLUICtrl* spin, void* data)  {  	LLFloaterAnimPreview* previewp = (LLFloaterAnimPreview*)data; -	if (!previewp->mEnabled) return FALSE; +	if (!previewp->getEnabled()) return FALSE;  	LLVOAvatar* avatarp = previewp->mAnimPreview->getDummyAvatar();  	LLKeyframeMotion* motionp = (LLKeyframeMotion*)avatarp->findMotion(previewp->mMotionID); @@ -833,7 +833,7 @@ BOOL LLFloaterAnimPreview::validateLoopIn(LLUICtrl* ctrl, void* data)  {  	LLFloaterAnimPreview* previewp = (LLFloaterAnimPreview*)data; -	if (!previewp->mEnabled) return FALSE; +	if (!previewp->getEnabled()) return FALSE;  	F32 loop_in_value = (F32)previewp->childGetValue("loop_in_point").asReal();  	F32 loop_out_value = (F32)previewp->childGetValue("loop_out_point").asReal(); @@ -862,7 +862,7 @@ BOOL LLFloaterAnimPreview::validateLoopOut(LLUICtrl* spin, void* data)  {  	LLFloaterAnimPreview* previewp = (LLFloaterAnimPreview*)data; -	if (!previewp->mEnabled) return FALSE; +	if (!previewp->getEnabled()) return FALSE;  	F32 loop_out_value = (F32)previewp->childGetValue("loop_out_point").asReal();  	F32 loop_in_value = (F32)previewp->childGetValue("loop_in_point").asReal(); @@ -947,7 +947,7 @@ void LLFloaterAnimPreview::refresh()  void LLFloaterAnimPreview::onBtnOK(void* userdata)  {  	LLFloaterAnimPreview* floaterp = (LLFloaterAnimPreview*)userdata; -	if (!floaterp->mEnabled) return; +	if (!floaterp->getEnabled()) return;  	if (floaterp->mAnimPreview)  	{ @@ -1153,3 +1153,4 @@ void LLPreviewAnimation::pan(F32 right, F32 up)  } + diff --git a/indra/newview/llfloaterauction.cpp b/indra/newview/llfloaterauction.cpp index e044ead818..094cbb6c33 100644 --- a/indra/newview/llfloaterauction.cpp +++ b/indra/newview/llfloaterauction.cpp @@ -123,7 +123,7 @@ void LLFloaterAuction::initialize()  		mParcelHost.invalidate();  		if(parcelp && parcelp->getForSale())  		{ -			childSetText("parcel_text", childGetText("already for sale")); +			childSetText("parcel_text", getString("already for sale"));  		}  		else  		{ diff --git a/indra/newview/llfloaterauction.h b/indra/newview/llfloaterauction.h index 135c9fa26b..10e08c14b1 100644 --- a/indra/newview/llfloaterauction.h +++ b/indra/newview/llfloaterauction.h @@ -69,7 +69,7 @@ private:  	LLTransactionID mTransactionID;  	LLAssetID mImageID;  	LLPointer<LLImageGL> mImage; -	LLHandle<LLParcelSelection> mParcelp; +	LLSafeHandle<LLParcelSelection> mParcelp;  	S32 mParcelID;  	LLHost mParcelHost;  }; diff --git a/indra/newview/llfloateravatarpicker.cpp b/indra/newview/llfloateravatarpicker.cpp index 2cfcc47af3..a44b3b3755 100644 --- a/indra/newview/llfloateravatarpicker.cpp +++ b/indra/newview/llfloateravatarpicker.cpp @@ -347,8 +347,9 @@ void LLFloaterAvatarPicker::processAvatarPickerReply(LLMessageSystem* msg, void*  			LLString avatar_name;  			if (avatar_id.isNull())  			{ -				self->childSetTextArg("NotFound", "[TEXT]", self->childGetText("Edit")); -				avatar_name = self->childGetValue("NotFound").asString(); +				LLString::format_map_t map; +				map["[TEXT]"] = self->childGetText("Edit"); +				avatar_name = self->getString("NotFound", map);  				self->mListNames->setEnabled(FALSE);  			}  			else diff --git a/indra/newview/llfloateravatartextures.cpp b/indra/newview/llfloateravatartextures.cpp index 64dc96807c..f05f9a7b52 100644 --- a/indra/newview/llfloateravatartextures.cpp +++ b/indra/newview/llfloateravatartextures.cpp @@ -67,26 +67,26 @@ LLFloaterAvatarTextures* LLFloaterAvatarTextures::show(const LLUUID &id)  BOOL LLFloaterAvatarTextures::postBuild()  { -	mBakedHead = (LLTextureCtrl*)getChildByName("baked_head"); -	mBakedEyes = (LLTextureCtrl*)getChildByName("baked_eyes"); -	mBakedUpper = (LLTextureCtrl*)getChildByName("baked_upper_body"); -	mBakedLower = (LLTextureCtrl*)getChildByName("baked_lower_body"); -	mBakedSkirt = (LLTextureCtrl*)getChildByName("baked_skirt"); -	mHair = (LLTextureCtrl*)getChildByName("hair"); -	mMakeup = (LLTextureCtrl*)getChildByName("head_bodypaint"); -	mEye = (LLTextureCtrl*)getChildByName("eye_texture"); -	mShirt = (LLTextureCtrl*)getChildByName("shirt"); -	mUpperTattoo = (LLTextureCtrl*)getChildByName("upper_bodypaint"); -	mUpperJacket = (LLTextureCtrl*)getChildByName("upper_jacket"); -	mGloves = (LLTextureCtrl*)getChildByName("gloves"); -	mUndershirt = (LLTextureCtrl*)getChildByName("undershirt"); -	mPants = (LLTextureCtrl*)getChildByName("pants"); -	mLowerTattoo = (LLTextureCtrl*)getChildByName("lower_bodypaint"); -	mShoes = (LLTextureCtrl*)getChildByName("shoes"); -	mSocks = (LLTextureCtrl*)getChildByName("socks"); -	mJacket = (LLTextureCtrl*)getChildByName("jacket"); -	mUnderpants = (LLTextureCtrl*)getChildByName("underpants"); -	mSkirt = (LLTextureCtrl*)getChildByName("skirt_texture"); +	mBakedHead = getChild<LLTextureCtrl>("baked_head"); +	mBakedEyes = getChild<LLTextureCtrl>("baked_eyes"); +	mBakedUpper = getChild<LLTextureCtrl>("baked_upper_body"); +	mBakedLower = getChild<LLTextureCtrl>("baked_lower_body"); +	mBakedSkirt = getChild<LLTextureCtrl>("baked_skirt"); +	mHair = getChild<LLTextureCtrl>("hair"); +	mMakeup = getChild<LLTextureCtrl>("head_bodypaint"); +	mEye = getChild<LLTextureCtrl>("eye_texture"); +	mShirt = getChild<LLTextureCtrl>("shirt"); +	mUpperTattoo = getChild<LLTextureCtrl>("upper_bodypaint"); +	mUpperJacket = getChild<LLTextureCtrl>("upper_jacket"); +	mGloves = getChild<LLTextureCtrl>("gloves"); +	mUndershirt = getChild<LLTextureCtrl>("undershirt"); +	mPants = getChild<LLTextureCtrl>("pants"); +	mLowerTattoo = getChild<LLTextureCtrl>("lower_bodypaint"); +	mShoes = getChild<LLTextureCtrl>("shoes"); +	mSocks = getChild<LLTextureCtrl>("socks"); +	mJacket = getChild<LLTextureCtrl>("jacket"); +	mUnderpants = getChild<LLTextureCtrl>("underpants"); +	mSkirt = getChild<LLTextureCtrl>("skirt_texture");  	mTitle = getTitle();  	childSetAction("Dump", onClickDump, this); @@ -142,16 +142,10 @@ void LLFloaterAvatarTextures::refresh()  	LLVOAvatar *avatarp = find_avatar(mID);  	if (avatarp)  	{ -		char firstname[DB_FIRST_NAME_BUF_SIZE];	/*Flawfinder: ignore*/ -		char lastname[DB_LAST_NAME_BUF_SIZE];		/*Flawfinder: ignore*/ -		if (gCacheName->getName(avatarp->getID(), firstname, lastname)) +		std::string fullname; +		if (gCacheName->getFullName(avatarp->getID(), fullname))  		{ -			LLString name; -			name.assign( firstname ); -			name.append( " " ); -			name.append( lastname ); - -			setTitle(mTitle + ": " + name); +			setTitle(mTitle + ": " + fullname);  		}  		update_texture_ctrl(avatarp, mBakedHead,	LLVOAvatar::TEX_HEAD_BAKED);  		update_texture_ctrl(avatarp, mBakedEyes,	LLVOAvatar::TEX_EYES_BAKED); diff --git a/indra/newview/llfloaterbump.cpp b/indra/newview/llfloaterbump.cpp index abae92a854..3f6ed92868 100644 --- a/indra/newview/llfloaterbump.cpp +++ b/indra/newview/llfloaterbump.cpp @@ -85,7 +85,7 @@ void LLFloaterBump::show(void *contents)  	if (gMeanCollisionList.isEmpty())  	{ -		LLString none_detected = sInstance->childGetText("none_detected"); +		LLString none_detected = sInstance->getString("none_detected");  		LLSD row;  		row["columns"][0]["value"] = none_detected;  		row["columns"][0]["font"] = "SansSerifBold"; @@ -151,7 +151,7 @@ void LLFloaterBump::add(LLScrollListCtrl* list, LLMeanCollisionData* mcd)  	}  	// All above action strings are in XML file -	LLUIString text = sInstance->childGetText(action); +	LLUIString text = sInstance->getUIString(action);  	text.setArg("[TIME]", time);  	text.setArg("[FIRST]", mcd->mFirstName);  	text.setArg("[LAST]", mcd->mLastName); diff --git a/indra/newview/llfloaterbuy.cpp b/indra/newview/llfloaterbuy.cpp index 707ec0e852..5ce5d8616b 100644 --- a/indra/newview/llfloaterbuy.cpp +++ b/indra/newview/llfloaterbuy.cpp @@ -121,11 +121,11 @@ void LLFloaterBuy::show(const LLSaleInfo& sale_info)  	switch (sale_info.getSaleType())  	{  	  case LLSaleInfo::FS_ORIGINAL: -		title = sInstance->childGetText("title_buy_text"); +		title = sInstance->getString("title_buy_text");  		break;  	  case LLSaleInfo::FS_COPY:  	  default: -		title = sInstance->childGetText("title_buy_copy_text"); +		title = sInstance->getString("title_buy_copy_text");  		break;  	}  	title.setArg("[NAME]", node->mName); @@ -165,15 +165,15 @@ void LLFloaterBuy::show(const LLSaleInfo& sale_info)  	LLString text = node->mName;  	if (!(next_owner_mask & PERM_COPY))  	{ -		text.append(sInstance->childGetText("no_copy_text")); +		text.append(sInstance->getString("no_copy_text"));  	}  	if (!(next_owner_mask & PERM_MODIFY))  	{ -		text.append(sInstance->childGetText("no_modify_text")); +		text.append(sInstance->getString("no_modify_text"));  	}  	if (!(next_owner_mask & PERM_TRANSFER))  	{ -		text.append(sInstance->childGetText("no_transfer_text")); +		text.append(sInstance->getString("no_transfer_text"));  	}  	row["columns"][1]["column"] = "text"; diff --git a/indra/newview/llfloaterbuy.h b/indra/newview/llfloaterbuy.h index cdf79da954..7f18a894e7 100644 --- a/indra/newview/llfloaterbuy.h +++ b/indra/newview/llfloaterbuy.h @@ -71,7 +71,7 @@ protected:  private:  	static LLFloaterBuy* sInstance; -	LLHandle<LLObjectSelection>	mObjectSelection; +	LLSafeHandle<LLObjectSelection>	mObjectSelection;  	LLSaleInfo mSaleInfo;  }; diff --git a/indra/newview/llfloaterbuycontents.cpp b/indra/newview/llfloaterbuycontents.cpp index 38266797cf..b133a1e88b 100644 --- a/indra/newview/llfloaterbuycontents.cpp +++ b/indra/newview/llfloaterbuycontents.cpp @@ -124,9 +124,7 @@ void LLFloaterBuyContents::show(const LLSaleInfo& sale_info)  	if (!node) return;  	if(node->mPermissions->isGroupOwned())  	{ -		char group_name[MAX_STRING];	/*Flawfinder: ignore*/ -		gCacheName->getGroupName(owner_id, group_name); -		owner_name.assign(group_name); +		gCacheName->getGroupName(owner_id, owner_name);  	}  	sInstance->childSetTextArg("contains_text", "[NAME]", node->mName); @@ -240,15 +238,15 @@ void LLFloaterBuyContents::inventoryChanged(LLViewerObject* obj,  		if (!(next_owner_mask & PERM_COPY))  		{ -			text.append(childGetText("no_copy_text")); +			text.append(getString("no_copy_text"));  		}  		if (!(next_owner_mask & PERM_MODIFY))  		{ -			text.append(childGetText("no_modify_text")); +			text.append(getString("no_modify_text"));  		}  		if (!(next_owner_mask & PERM_TRANSFER))  		{ -			text.append(childGetText("no_transfer_text")); +			text.append(getString("no_transfer_text"));  		}  		row["columns"][1]["column"] = "text"; diff --git a/indra/newview/llfloaterbuycontents.h b/indra/newview/llfloaterbuycontents.h index 8231174579..6b08bb4ad7 100644 --- a/indra/newview/llfloaterbuycontents.h +++ b/indra/newview/llfloaterbuycontents.h @@ -67,7 +67,7 @@ protected:  protected:  	static LLFloaterBuyContents* sInstance; -	LLHandle<LLObjectSelection> mObjectSelection; +	LLSafeHandle<LLObjectSelection> mObjectSelection;  	LLSaleInfo mSaleInfo;  }; diff --git a/indra/newview/llfloaterbuycurrency.cpp b/indra/newview/llfloaterbuycurrency.cpp index 4b5bb3548b..8866ad7ed1 100644 --- a/indra/newview/llfloaterbuycurrency.cpp +++ b/indra/newview/llfloaterbuycurrency.cpp @@ -316,7 +316,7 @@ void LLFloaterBuyCurrencyUI::onClickBuy(void* data)  	LLFloaterBuyCurrencyUI* self = LLFloaterBuyCurrencyUI::soleInstance(false);  	if (self)  	{ -		self->mManager.buy(self->childGetText("buy_currency")); +		self->mManager.buy(self->getString("buy_currency"));  		self->updateUI();  		// JC: updateUI() doesn't get called again until progress is made  		// with transaction processing, so the "Purchase" button would be diff --git a/indra/newview/llfloaterbuyland.cpp b/indra/newview/llfloaterbuyland.cpp index 12722b6d95..52736c8c60 100644 --- a/indra/newview/llfloaterbuyland.cpp +++ b/indra/newview/llfloaterbuyland.cpp @@ -390,13 +390,13 @@ void LLFloaterBuyLandUI::updateParcelInfo()  	if (!mParcelValid)  	{ -		mCannotBuyReason= childGetText("no_land_selected"); +		mCannotBuyReason = getString("no_land_selected");  		return;  	}  	if (mParcel->getMultipleOwners())  	{ -		mCannotBuyReason = childGetText("multiple_parcels_selected"); +		mCannotBuyReason = getString("multiple_parcels_selected");  		return;  	} @@ -454,13 +454,13 @@ void LLFloaterBuyLandUI::updateParcelInfo()  	bool haveEnoughCash = mParcelPrice <= mAgentCashBalance;  	S32 cashBuy = haveEnoughCash ? 0 : (mParcelPrice - mAgentCashBalance);  	mCurrency.setAmount(cashBuy, true); -	mCurrency.setZeroMessage(haveEnoughCash ? childGetText("none_needed") : ""); +	mCurrency.setZeroMessage(haveEnoughCash ? getString("none_needed") : "");  	// checks that we can buy the land  	if(mIsForGroup && !gAgent.hasPowerInActiveGroup(GP_LAND_DEED))  	{ -		mCannotBuyReason = childGetText("cant_buy_for_group"); +		mCannotBuyReason = getString("cant_buy_for_group");  		return;  	} @@ -474,7 +474,7 @@ void LLFloaterBuyLandUI::updateParcelInfo()  			|| (mParcelPrice == 0  &&  authorizedBuyer.isNull()))  		{ -			mCannotBuyReason = childGetText("parcel_not_for_sale"); +			mCannotBuyReason = getString("parcel_not_for_sale");  			return;  		} @@ -482,18 +482,18 @@ void LLFloaterBuyLandUI::updateParcelInfo()  		{  			if (mIsForGroup)  			{ -				mCannotBuyReason = childGetText("group_already_owns"); +				mCannotBuyReason = getString("group_already_owns");  			}  			else  			{ -				mCannotBuyReason = childGetText("you_already_own"); +				mCannotBuyReason = getString("you_already_own");  			}  			return;  		}  		if (!authorizedBuyer.isNull()  &&  buyer != authorizedBuyer)  		{ -			mCannotBuyReason = childGetText("set_to_sell_to_other"); +			mCannotBuyReason = getString("set_to_sell_to_other");  			return;  		}  	} @@ -501,14 +501,14 @@ void LLFloaterBuyLandUI::updateParcelInfo()  	{  		if (mParcelActualArea == 0)  		{ -			mCannotBuyReason = childGetText("no_public_land"); +			mCannotBuyReason = getString("no_public_land");  			return;  		}  		if (mParcel->hasOthersSelected())  		{  			// Policy: Must not have someone else's land selected -			mCannotBuyReason = childGetText("not_owned_by_you"); +			mCannotBuyReason = getString("not_owned_by_you");  			return;  		}  	} @@ -521,39 +521,39 @@ void LLFloaterBuyLandUI::updateCovenantInfo()  	LLViewerRegion* region = gParcelMgr->getSelectionRegion();  	if(!region) return; -	LLTextBox* region_name = (LLTextBox*)getChildByName("region_name_text"); +	LLTextBox* region_name = getChild<LLTextBox>("region_name_text");  	if (region_name)  	{  		region_name->setText(region->getName());  	} -	LLTextBox* resellable_clause = (LLTextBox*)getChildByName("resellable_clause"); +	LLTextBox* resellable_clause = getChild<LLTextBox>("resellable_clause");  	if (resellable_clause)  	{  		if (region->getRegionFlags() & REGION_FLAGS_BLOCK_LAND_RESELL)  		{ -			resellable_clause->setText(childGetText("can_not_resell")); +			resellable_clause->setText(getString("can_not_resell"));  		}  		else  		{ -			resellable_clause->setText(childGetText("can_resell")); +			resellable_clause->setText(getString("can_resell"));  		}  	} -	LLTextBox* changeable_clause = (LLTextBox*)getChildByName("changeable_clause"); +	LLTextBox* changeable_clause = getChild<LLTextBox>("changeable_clause");  	if (changeable_clause)  	{  		if (region->getRegionFlags() & REGION_FLAGS_ALLOW_PARCEL_CHANGES)  		{ -			changeable_clause->setText(childGetText("can_change")); +			changeable_clause->setText(getString("can_change"));  		}  		else  		{ -			changeable_clause->setText(childGetText("can_not_change")); +			changeable_clause->setText(getString("can_not_change"));  		}  	} -	LLCheckBoxCtrl* check = (LLCheckBoxCtrl*)getChildByName("agree_covenant"); +	LLCheckBoxCtrl* check = getChild<LLCheckBoxCtrl>("agree_covenant");  	if(check)  	{  		check->set(false); @@ -562,7 +562,7 @@ void LLFloaterBuyLandUI::updateCovenantInfo()  		check->setCommitCallback(onChangeAgreeCovenant);  	} -	LLTextBox* box = (LLTextBox*)getChildByName("covenant_text"); +	LLTextBox* box = getChild<LLTextBox>("covenant_text");  	if(box)  	{  		box->setVisible(FALSE); @@ -589,14 +589,14 @@ void LLFloaterBuyLandUI::onChangeAgreeCovenant(LLUICtrl* ctrl, void* user_data)  void LLFloaterBuyLandUI::updateCovenantText(const std::string &string, const LLUUID& asset_id)  { -	LLViewerTextEditor* editor = (LLViewerTextEditor*)getChildByName("covenant_editor"); +	LLViewerTextEditor* editor = getChild<LLViewerTextEditor>("covenant_editor");  	if (editor)  	{  		editor->setHandleEditKeysDirectly(FALSE);  		editor->setText(string); -		LLCheckBoxCtrl* check = (LLCheckBoxCtrl*)getChildByName("agree_covenant"); -		LLTextBox* box = (LLTextBox*)getChildByName("covenant_text"); +		LLCheckBoxCtrl* check = getChild<LLCheckBoxCtrl>("agree_covenant"); +		LLTextBox* box = getChild<LLTextBox>("covenant_text");  		if(check && box)  		{  			if (asset_id.isNull()) @@ -621,19 +621,19 @@ void LLFloaterBuyLandUI::updateCovenantText(const std::string &string, const LLU  void LLFloaterBuyLandUI::updateEstateName(const std::string& name)  { -	LLTextBox* box = (LLTextBox*)getChildByName("estate_name_text"); +	LLTextBox* box = getChild<LLTextBox>("estate_name_text");  	if (box) box->setText(name);  }  void LLFloaterBuyLandUI::updateLastModified(const std::string& text)  { -	LLTextBox* editor = (LLTextBox*)getChildByName("covenant_timestamp_text"); +	LLTextBox* editor = getChild<LLTextBox>("covenant_timestamp_text");  	if (editor) editor->setText(text);  }  void LLFloaterBuyLandUI::updateEstateOwnerName(const std::string& name)  { -	LLTextBox* box = (LLTextBox*)getChildByName("estate_owner_text"); +	LLTextBox* box = getChild<LLTextBox>("estate_owner_text");  	if (box) box->setText(name);  } @@ -819,18 +819,11 @@ void LLFloaterBuyLandUI::updateNames()  	}  	else if (parcelp->getIsGroupOwned())  	{ -		char groupName[DB_LAST_NAME_BUF_SIZE];	/*Flawfinder: ignore*/ -		 -		gCacheName->getGroupName(parcelp->getGroupID(), &groupName[0]); -		mParcelSellerName = groupName; +		gCacheName->getGroupName(parcelp->getGroupID(), mParcelSellerName);  	}  	else  	{ -		char firstName[DB_LAST_NAME_BUF_SIZE];		/*Flawfinder: ignore*/ -		char lastName[DB_LAST_NAME_BUF_SIZE];		/*Flawfinder: ignore*/ -		 -		gCacheName->getName(parcelp->getOwnerID(), firstName, lastName); -		mParcelSellerName = llformat("%s %s", firstName, lastName); +		gCacheName->getFullName(parcelp->getOwnerID(), mParcelSellerName);  	}  } @@ -908,7 +901,7 @@ void LLFloaterBuyLandUI::tellUserError(  {  	mCanBuy = false;  	mCannotBuyIsError = true; -	mCannotBuyReason = childGetText("fetching_error"); +	mCannotBuyReason = getString("fetching_error");  	mCannotBuyReason += message;  	mCannotBuyURI = uri;  } @@ -998,17 +991,15 @@ void LLFloaterBuyLandUI::refreshUI()  				mParcelValid ? mParcelSnapshot : LLUUID::null);  		} -		 -			  		if (mParcelValid)  		{  			childSetText("info_parcel", mParcelLocation); -			 -			childSetTextArg("meters_supports_object", "[AMOUNT]",  llformat("%d", mParcelActualArea)); -			childSetTextArg("meters_supports_object", "[AMOUNT2]",  llformat("%d", mParcelSupportedObjects)); -			 -			childSetText("info_size", childGetText("meters_supports_object")); +			LLString::format_map_t string_args; +			string_args["[AMOUNT]"] = llformat("%d", mParcelActualArea); +			string_args["[AMOUNT2]"] = llformat("%d", mParcelSupportedObjects); +		 +			childSetText("info_size", getString("meters_supports_object", string_args));  			childSetText("info_price", @@ -1022,7 +1013,7 @@ void LLFloaterBuyLandUI::refreshUI()  		}  		else  		{ -			childSetText("info_parcel", childGetText("no_parcel_selected")); +			childSetText("info_parcel", getString("no_parcel_selected"));  			childSetText("info_size", LLString::null);  			childSetText("info_price", LLString::null);  		} @@ -1031,12 +1022,12 @@ void LLFloaterBuyLandUI::refreshUI()  			mCanBuy  				?  					mIsForGroup -						? childGetText("buying_for_group")//"Buying land for group:" -						: childGetText("buying_will")//"Buying this land will:" +						? getString("buying_for_group")//"Buying land for group:" +						: getString("buying_will")//"Buying this land will:"  				:   					mCannotBuyIsError -						? childGetText("cannot_buy_now")//"Cannot buy now:" -						: childGetText("not_for_sale")//"Not for sale:" +						? getString("cannot_buy_now")//"Cannot buy now:" +						: getString("not_for_sale")//"Not for sale:"  			);  	} @@ -1081,8 +1072,8 @@ void LLFloaterBuyLandUI::refreshUI()  		childSetText("account_action", mSiteMembershipAction);  		childSetText("account_reason",   			mSiteMembershipUpgrade -				?	childGetText("must_upgrade") -				:	childGetText("cant_own_land") +				?	getString("must_upgrade") +				:	getString("cant_own_land")  			);  		LLComboBox* levels = LLUICtrlFactory::getComboBoxByName(this, "account_level"); @@ -1127,18 +1118,17 @@ void LLFloaterBuyLandUI::refreshUI()  		if (mIsForGroup)  		{ -			childSetTextArg("insufficient_land_credits", "[GROUP]", LLString(gAgent.mGroupName)); +			LLString::format_map_t string_args; +			string_args["[GROUP]"] = LLString(gAgent.mGroupName); - -			message += childGetText("insufficient_land_credits"); +			message += getString("insufficient_land_credits", string_args);  		}  		else  		{ -		 -		childSetTextArg("land_holdings", "[BUYER]", llformat("%d", mAgentCommittedTier)); -		message += childGetText("land_holdings"); - +			LLString::format_map_t string_args; +			string_args["[BUYER]"] = llformat("%d", mAgentCommittedTier); +			message += getString("land_holdings", string_args);  		}  		if (!mParcelValid) @@ -1147,21 +1137,24 @@ void LLFloaterBuyLandUI::refreshUI()  		}  		else if (mParcelBillableArea == mParcelActualArea)  		{ -			childSetTextArg("parcel_meters", "[AMOUNT]", llformat("%d", mParcelActualArea)); -			message += childGetText("parcel_meters"); +			LLString::format_map_t string_args; +			string_args["[AMOUNT]"] = llformat("%d", mParcelActualArea); +			message += getString("parcel_meters", string_args);  		}  		else  		{  			if (mParcelBillableArea > mParcelActualArea)  			{	 -				childSetTextArg("premium_land", "[AMOUNT]", llformat("%d", mParcelBillableArea) ); -				message += childGetText("premium_land"); +				LLString::format_map_t string_args; +				string_args["[AMOUNT]"] = llformat("%d", mParcelBillableArea); +				message += getString("premium_land", string_args);  			}  			else  			{ -				childSetTextArg("discounted_land", "[AMOUNT]", llformat("%d", mParcelBillableArea) ); -				message += childGetText("discounted_land"); +				LLString::format_map_t string_args; +				string_args["[AMOUNT]"] = llformat("%d", mParcelBillableArea); +				message += getString("discounted_land", string_args);  			}  		} @@ -1208,35 +1201,36 @@ void LLFloaterBuyLandUI::refreshUI()  		if (haveEnough)  		{ -			 -			childSetTextArg("have_enough_lindens", "[AMOUNT]", llformat("%d", mAgentCashBalance)); -			childSetText("currency_reason", childGetText("have_enough_lindens")); +			LLString::format_map_t string_args; +			string_args["[AMOUNT]"] = llformat("%d", mAgentCashBalance); + +			childSetText("currency_reason", getString("have_enough_lindens", string_args));  		}  		else  		{ -			childSetTextArg("not_enough_lindens", "[AMOUNT]", llformat("%d", mAgentCashBalance)); -			childSetTextArg("not_enough_lindens", "[AMOUNT2]", llformat("%d", mParcelPrice - mAgentCashBalance)); +			LLString::format_map_t string_args; +			string_args["[AMOUNT]"] = llformat("%d", mAgentCashBalance); +			string_args["[AMOUNT2]"] = llformat("%d", mParcelPrice - mAgentCashBalance); -			childSetText("currency_reason", childGetText("not_enough_lindens")); +			childSetText("currency_reason", getString("not_enough_lindens", string_args));  			childSetTextArg("currency_est", "[AMOUNT2]", llformat("%#.2f", mCurrency.getEstimate() / 100.0)); -			  		}  		if (willHaveEnough)  		{ +			LLString::format_map_t string_args; +			string_args["[AMOUNT]"] = llformat("%d", finalBalance); -			childSetTextArg("balance_left", "[AMOUNT]", llformat("%d", finalBalance)); -			 -			childSetText("currency_balance", childGetText("balance_left")); +			childSetText("currency_balance", getString("balance_left", string_args));  		}  		else  		{ +			LLString::format_map_t string_args; +			string_args["[AMOUNT]"] = llformat("%d", mParcelPrice - mAgentCashBalance); -			childSetTextArg("balance_needed", "[AMOUNT]", llformat("%d", mParcelPrice - mAgentCashBalance)); -		 -			childSetText("currency_balance", childGetText("balance_needed")); +			childSetText("currency_balance", getString("balance_needed", string_args));  		} @@ -1264,7 +1258,7 @@ void LLFloaterBuyLandUI::refreshUI()  	bool agrees_to_covenant = false; -	LLCheckBoxCtrl* check = (LLCheckBoxCtrl*)getChildByName("agree_covenant"); +	LLCheckBoxCtrl* check = getChild<LLCheckBoxCtrl>("agree_covenant");  	if (check)  	{  	    agrees_to_covenant = check->get(); @@ -1298,17 +1292,17 @@ void LLFloaterBuyLandUI::startBuyPreConfirm()  	}  	if (mCurrency.getAmount() > 0)  	{ +		LLString::format_map_t string_args; +		string_args["[AMOUNT]"] = llformat("%d", mCurrency.getAmount()); +		string_args["[AMOUNT2]"] = llformat("%#.2f", mCurrency.getEstimate() / 100.0); -		childSetTextArg("buy_for_US", "[AMOUNT]", llformat("%d", mCurrency.getAmount())); -		childSetTextArg("buy_for_US", "[AMOUNT2]", llformat("%#.2f", mCurrency.getEstimate() / 100.0)); - -		action += childGetText("buy_for_US"); +		action += getString("buy_for_US", string_args);  	} -	childSetTextArg("pay_to_for_land", "[AMOUNT]", llformat("%d", mParcelPrice)); -	childSetTextArg("pay_to_for_land", "[SELLER]", mParcelSellerName); - -	action += childGetText("pay_to_for_land"); +	LLString::format_map_t string_args; +	string_args["[AMOUNT]"] = llformat("%d", mParcelPrice); +	string_args["[SELLER]"] = mParcelSellerName; +	action += getString("pay_to_for_land", string_args);  	LLConfirmationManager::confirm(mSiteConfirm, @@ -1322,7 +1316,7 @@ void LLFloaterBuyLandUI::startBuyPostConfirm(const std::string& password)  	runWebSitePrep(password);  	mCanBuy = false; -	mCannotBuyReason = childGetText("processing"); +	mCannotBuyReason = getString("processing");  	refreshUI();  } diff --git a/indra/newview/llfloaterbuyland.h b/indra/newview/llfloaterbuyland.h index dd7cb393ca..19ad83bb27 100644 --- a/indra/newview/llfloaterbuyland.h +++ b/indra/newview/llfloaterbuyland.h @@ -40,7 +40,7 @@ class LLFloaterBuyLand  {  public:  	static void buyLand(LLViewerRegion* region, -						LLHandle<LLParcelSelection> parcel, +						LLSafeHandle<LLParcelSelection> parcel,  						bool is_for_group);  	static void updateCovenantText(const std::string& string, const LLUUID& asset_id);  	static void updateEstateName(const std::string& name); diff --git a/indra/newview/llfloaterchat.cpp b/indra/newview/llfloaterchat.cpp index 82fe16172b..851d81f349 100644 --- a/indra/newview/llfloaterchat.cpp +++ b/indra/newview/llfloaterchat.cpp @@ -128,7 +128,7 @@ void LLFloaterChat::draw()  	childSetValue("toggle_active_speakers_btn", childIsVisible("active_speakers_panel")); -	LLChatBar* chat_barp = (LLChatBar*)getChildByName("chat_panel", TRUE); +	LLChatBar* chat_barp = getChild<LLChatBar>("chat_panel", TRUE);  	if (chat_barp)  	{  		chat_barp->refresh(); @@ -142,7 +142,7 @@ BOOL LLFloaterChat::postBuild()  {  	mPanel = (LLPanelActiveSpeakers*)LLUICtrlFactory::getPanelByName(this, "active_speakers_panel"); -	LLChatBar* chat_barp = (LLChatBar*)getChildByName("chat_panel", TRUE); +	LLChatBar* chat_barp = getChild<LLChatBar>("chat_panel", TRUE);  	if (chat_barp)  	{  		chat_barp->setGestureCombo(LLUICtrlFactory::getComboBoxByName(this, "Gesture")); @@ -221,8 +221,8 @@ void LLFloaterChat::addChatHistory(const LLChat& chat, bool log_to_file)  	// could flash the chat button in the status bar here. JC  	LLFloaterChat* chat_floater = LLFloaterChat::getInstance(LLSD()); -	LLViewerTextEditor*	history_editor = (LLViewerTextEditor*)chat_floater->getChildByName("Chat History Editor", TRUE); -	LLViewerTextEditor*	history_editor_with_mute = (LLViewerTextEditor*)chat_floater->getChildByName("Chat History Editor with mute", TRUE); +	LLViewerTextEditor*	history_editor = chat_floater->getChild<LLViewerTextEditor>("Chat History Editor"); +	LLViewerTextEditor*	history_editor_with_mute = chat_floater->getChild<LLViewerTextEditor>("Chat History Editor with mute");  	history_editor->setParseHTML(TRUE);  	history_editor_with_mute->setParseHTML(TRUE); @@ -255,8 +255,8 @@ void LLFloaterChat::addChatHistory(const LLChat& chat, bool log_to_file)  // static  void LLFloaterChat::setHistoryCursorAndScrollToEnd()  { -	LLViewerTextEditor*	history_editor = (LLViewerTextEditor*)LLFloaterChat::getInstance(LLSD())->getChildByName("Chat History Editor", TRUE); -	LLViewerTextEditor*	history_editor_with_mute = (LLViewerTextEditor*)LLFloaterChat::getInstance(LLSD())->getChildByName("Chat History Editor with mute", TRUE); +	LLViewerTextEditor*	history_editor = LLFloaterChat::getInstance(LLSD())->getChild<LLViewerTextEditor>("Chat History Editor"); +	LLViewerTextEditor*	history_editor_with_mute = LLFloaterChat::getInstance(LLSD())->getChild<LLViewerTextEditor>("Chat History Editor with mute");  	if (history_editor)   	{ @@ -299,8 +299,8 @@ void LLFloaterChat::onClickToggleShowMute(LLUICtrl* caller, void *data)  	//LLCheckBoxCtrl*	  	BOOL show_mute = LLUICtrlFactory::getCheckBoxByName(floater,"show mutes")->get(); -	LLViewerTextEditor*	history_editor = (LLViewerTextEditor*)floater->getChildByName("Chat History Editor", TRUE); -	LLViewerTextEditor*	history_editor_with_mute = (LLViewerTextEditor*)floater->getChildByName("Chat History Editor with mute", TRUE); +	LLViewerTextEditor*	history_editor = floater->getChild<LLViewerTextEditor>("Chat History Editor"); +	LLViewerTextEditor*	history_editor_with_mute = floater->getChild<LLViewerTextEditor>("Chat History Editor with mute");  	if (!history_editor || !history_editor_with_mute)  		return; @@ -455,26 +455,35 @@ void* LLFloaterChat::createChatPanel(void* data)  	return chatp;  } +// static +void LLFloaterChat::onClickToggleActiveSpeakers(void* userdata) +{ +	LLFloaterChat* self = (LLFloaterChat*)userdata; + +	self->childSetVisible("active_speakers_panel", !self->childIsVisible("active_speakers_panel")); +} + +//static  +bool LLFloaterChat::visible(LLFloater* instance, const LLSD& key) +{ +	return VisibilityPolicy<LLFloater>::visible(instance, key); +} +  //static  -void LLFloaterChat::hideInstance(const LLSD& id) +void LLFloaterChat::show(LLFloater* instance, const LLSD& key)  { -	LLFloaterChat* floaterp = LLFloaterChat::getInstance(LLSD()); +	VisibilityPolicy<LLFloater>::show(instance, key); +} -	if(floaterp->getHost()) +//static  +void LLFloaterChat::hide(LLFloater* instance, const LLSD& key) +{ +	if(instance->getHost())  	{ -		LLFloaterChatterBox::hideInstance(LLSD()); +		LLFloaterChatterBox::hideInstance();  	}  	else  	{ -		LLUISingleton<LLFloaterChat>::hideInstance(id); +		VisibilityPolicy<LLFloater>::hide(instance, key);  	}  } - -// static -void LLFloaterChat::onClickToggleActiveSpeakers(void* userdata) -{ -	LLFloaterChat* self = (LLFloaterChat*)userdata; - -	self->childSetVisible("active_speakers_panel", !self->childIsVisible("active_speakers_panel")); -} - diff --git a/indra/newview/llfloaterchat.h b/indra/newview/llfloaterchat.h index 58fa607b38..c8ce7c0b55 100644 --- a/indra/newview/llfloaterchat.h +++ b/indra/newview/llfloaterchat.h @@ -50,7 +50,7 @@ class LLCheckBoxCtrl;  class LLPanelActiveSpeakers;  class LLFloaterChat -:	public LLFloater, public LLUISingleton<LLFloaterChat> +	:	public LLFloater, public LLUISingleton<LLFloaterChat, LLFloaterChat>  {  public:  	LLFloaterChat(const LLSD& seed); @@ -78,9 +78,12 @@ public:  	static void loadHistory();  	static void* createSpeakersPanel(void* data);  	static void* createChatPanel(void* data); -	static void hideInstance(const LLSD& id); -protected: +	// visibility policy for LLUISingleton +	static bool visible(LLFloater* instance, const LLSD& key); +	static void show(LLFloater* instance, const LLSD& key); +	static void hide(LLFloater* instance, const LLSD& key); +  	LLPanelActiveSpeakers* mPanel;  	BOOL mScrolledToEnd;  }; diff --git a/indra/newview/llfloaterchatterbox.cpp b/indra/newview/llfloaterchatterbox.cpp index 85bc8182a5..f18c31baf9 100644 --- a/indra/newview/llfloaterchatterbox.cpp +++ b/indra/newview/llfloaterchatterbox.cpp @@ -73,42 +73,6 @@ void LLFloaterMyFriends::onClose(bool app_quitting)  	setVisible(FALSE);  } -//static  -LLFloaterMyFriends* LLFloaterMyFriends::showInstance(const LLSD& id) -{ -	LLFloaterMyFriends* floaterp = LLUIInstanceMgr<LLFloaterMyFriends>::showInstance(id); -	// garbage values in id will be interpreted as 0, or the friends tab -	floaterp->mTabs->selectTab(id); - -	return floaterp; -} - -//static  -void LLFloaterMyFriends::hideInstance(const LLSD& id) -{ -	LLFloaterMyFriends* floaterp = LLFloaterMyFriends::getInstance(); - -	if(floaterp->getHost()) -	{ -		LLFloaterChatterBox::hideInstance(); -	} -	else -	{ -		LLUISingleton<LLFloaterMyFriends>::hideInstance(id); -	} -} - -// is the specified panel currently visible -//static -BOOL LLFloaterMyFriends::instanceVisible(const LLSD& id) -{ -	// if singleton not created yet, trivially return false -	if (!findInstance(id)) return FALSE; - -	LLFloaterMyFriends* floaterp = getInstance(id); -	return floaterp->isInVisibleChain() && floaterp->mTabs->getCurrentPanelIndex() == id.asInteger(); -} -  //static  void* LLFloaterMyFriends::createFriendsPanel(void* data)  { @@ -271,7 +235,7 @@ void LLFloaterChatterBox::removeFloater(LLFloater* floaterp)  void LLFloaterChatterBox::addFloater(LLFloater* floaterp,   									BOOL select_added_floater,  -									LLTabContainerCommon::eInsertionPoint insertion_point) +									LLTabContainer::eInsertionPoint insertion_point)  {  	S32 num_locked_tabs = mTabContainer->getNumLockedTabs(); @@ -322,48 +286,6 @@ void LLFloaterChatterBox::addFloater(LLFloater* floaterp,  	}  } - -//static  -LLFloaterChatterBox* LLFloaterChatterBox::showInstance(const LLSD& seed) -{ -	LLFloaterChatterBox* chatterbox_floater = LLUISingleton<LLFloaterChatterBox>::showInstance(seed); - -	// if TRUE, show tab for active voice channel, otherwise, just show last tab -	LLFloater* floater_to_show = NULL; -	LLUUID session_id = seed.asUUID(); -	if (session_id.notNull()) -	{ -		floater_to_show = gIMMgr->findFloaterBySession(session_id); -	} - -	if (floater_to_show) -	{ -		floater_to_show->open(); -	} -	else -	{ -		// just open chatterbox to the last selected tab -		chatterbox_floater->open(); -	} -	 -	return chatterbox_floater; -} - -//static -BOOL LLFloaterChatterBox::instanceVisible(const LLSD &seed) -{ -	if (seed.asBoolean()) -	{ -		LLFloater* floater_to_show = getCurrentVoiceFloater(); -		if (floater_to_show) -		{ -			return floater_to_show->isInVisibleChain(); -		} -	} - -	return LLUISingleton<LLFloaterChatterBox>::instanceVisible(seed); -} -  //static   LLFloater* LLFloaterChatterBox::getCurrentVoiceFloater()  { diff --git a/indra/newview/llfloaterchatterbox.h b/indra/newview/llfloaterchatterbox.h index bf06ee9d38..4b1da9c9bc 100644 --- a/indra/newview/llfloaterchatterbox.h +++ b/indra/newview/llfloaterchatterbox.h @@ -36,32 +36,12 @@  #include "llfloater.h"  #include "llstring.h" +#include "llimview.h" +#include "llimpanel.h" -class LLTabContainerCommon; +class LLTabContainer; -class LLFloaterMyFriends : public LLFloater, public LLUISingleton<LLFloaterMyFriends> -{ -public: -	LLFloaterMyFriends(const LLSD& seed); -	virtual ~LLFloaterMyFriends(); - -	virtual BOOL postBuild(); - -	void onClose(bool app_quitting); - -	// override LLUISingleton behavior -	static LLFloaterMyFriends* showInstance(const LLSD& id = LLSD()); -	static void hideInstance(const LLSD& id); -	static BOOL instanceVisible(const LLSD& id); - -	static void* createFriendsPanel(void* data); -	static void* createGroupsPanel(void* data); - -protected: -	LLTabContainerCommon* mTabs; -}; - -class LLFloaterChatterBox : public LLMultiFloater, public LLUISingleton<LLFloaterChatterBox> +class LLFloaterChatterBox : public LLMultiFloater, public LLUISingleton<LLFloaterChatterBox, LLFloaterChatterBox>  {  public:  	LLFloaterChatterBox(const LLSD& seed); @@ -75,16 +55,103 @@ public:  	/*virtual*/ void removeFloater(LLFloater* floaterp);  	/*virtual*/ void addFloater(LLFloater* floaterp,   								BOOL select_added_floater,  -								LLTabContainerCommon::eInsertionPoint insertion_point = LLTabContainerCommon::END); - -	static LLFloaterChatterBox* showInstance(const LLSD& seed = LLSD()); -	static BOOL instanceVisible(const LLSD& seed); +								LLTabContainer::eInsertionPoint insertion_point = LLTabContainer::END);  	static LLFloater* getCurrentVoiceFloater(); +	 +	// visibility policy for LLUISingleton +	static bool visible(LLFloater* instance, const LLSD& key) +	{ +		LLFloater* floater_to_check = ((LLFloaterChatterBox*)instance)->getFloater(key); + +		if (floater_to_check) +		{ +			return floater_to_check->isInVisibleChain(); +		} + +		// otherwise use default visibility rule for chatterbox +		return VisibilityPolicy<LLFloater>::visible(instance, key); +	} + +	static void show(LLFloater* instance, const LLSD& key) +	{ +		LLFloater* floater_to_show = ((LLFloaterChatterBox*)instance)->getFloater(key); +		VisibilityPolicy<LLFloater>::show(instance, key); + +		if (floater_to_show) +		{ +			floater_to_show->open(); +		} +	} + +	static void hide(LLFloater* instance, const LLSD& key) +	{ +		VisibilityPolicy<LLFloater>::hide(instance, key); +	} + +private: +	LLFloater* getFloater(const LLSD& key) +	{ +		LLFloater* floater = NULL; + +		//try to show requested session +		LLUUID session_id = key.asUUID(); +		if (session_id.notNull()) +		{ +			floater = LLIMMgr::getInstance()->findFloaterBySession(session_id); +		} + +		// if TRUE, show tab for active voice channel, otherwise, just show last tab +		if (key.asBoolean()) +		{ +			floater = getCurrentVoiceFloater(); +		} + +		return floater; +	}  protected:  	LLFloater* mActiveVoiceFloater;  }; +class LLFloaterMyFriends : public LLFloater, public LLUISingleton<LLFloaterMyFriends, LLFloaterMyFriends> +{ +public: +	LLFloaterMyFriends(const LLSD& seed); +	virtual ~LLFloaterMyFriends(); + +	virtual BOOL postBuild(); + +	void onClose(bool app_quitting); + +	static void* createFriendsPanel(void* data); +	static void* createGroupsPanel(void* data); + +	// visibility policy for LLUISingleton +	static bool visible(LLFloater* instance, const LLSD& key) +	{ +		LLFloaterMyFriends* floaterp = (LLFloaterMyFriends*)instance; +		return floaterp->isInVisibleChain() && floaterp->mTabs->getCurrentPanelIndex() == key.asInteger(); +	} + +	static void show(LLFloater* instance, const LLSD& key) +	{ +		VisibilityPolicy<LLFloater>::show(instance, key); +		// garbage values in id will be interpreted as 0, or the friends tab +		((LLFloaterMyFriends*)instance)->mTabs->selectTab(key); +	} + +	static void hide(LLFloater* instance, const LLSD& key) +	{ +		if (visible(instance, key)) +		{ +			LLFloaterChatterBox::hideInstance(); +		} +	} + +protected: +	LLTabContainer* mTabs; +}; +  #endif // LL_LLFLOATERCHATTERBOX_H diff --git a/indra/newview/llfloatercolorpicker.cpp b/indra/newview/llfloatercolorpicker.cpp index 324da688f8..137b35c3ee 100644 --- a/indra/newview/llfloatercolorpicker.cpp +++ b/indra/newview/llfloatercolorpicker.cpp @@ -577,7 +577,7 @@ void LLFloaterColorPicker::draw()  		glEnd();  	} -	if (gFocusMgr.childHasMouseCapture(mDragHandle)) +	if (gFocusMgr.childHasMouseCapture(getDragHandle()))  	{  		mContextConeOpacity = lerp(mContextConeOpacity, gSavedSettings.getF32("PickerContextOpacity"), LLCriticalDamp::getInterpolant(CONTEXT_FADE_TIME));  	} @@ -902,104 +902,103 @@ BOOL  LLFloaterColorPicker::  handleMouseDown ( S32 x, S32 y, MASK mask )  { -	// if this window is in the foreground -	if ( mForeground ) -	{ +	BOOL ret = LLFloater::handleMouseDown ( x, y, mask ); +  		// make it the frontmost -		gFloaterView->bringToFront(this); +	gFloaterView->bringToFront(this); -		// rect containing RGB area -		LLRect rgbAreaRect ( mRGBViewerImageLeft, -							 mRGBViewerImageTop, -							 mRGBViewerImageLeft + mRGBViewerImageWidth, -							 mRGBViewerImageTop - mRGBViewerImageHeight ); +	// rect containing RGB area +	LLRect rgbAreaRect ( mRGBViewerImageLeft, +						 mRGBViewerImageTop, +						 mRGBViewerImageLeft + mRGBViewerImageWidth, +						 mRGBViewerImageTop - mRGBViewerImageHeight ); -		if ( rgbAreaRect.pointInRect ( x, y ) ) -		{ -			gViewerWindow->setMouseCapture(this); -			// mouse button down -			setMouseDownInHueRegion ( TRUE ); +	if ( rgbAreaRect.pointInRect ( x, y ) ) +	{ +		gViewerWindow->setMouseCapture(this); +		// mouse button down +		setMouseDownInHueRegion ( TRUE ); -			// update all values based on initial click -			updateRgbHslFromPoint ( x, y ); +		// update all values based on initial click +		updateRgbHslFromPoint ( x, y ); -			// required by base class -			return TRUE; -		} +		// required by base class +		return TRUE; +	} -		// rect containing RGB area -		LLRect lumAreaRect ( mLumRegionLeft, -							 mLumRegionTop, -							 mLumRegionLeft + mLumRegionWidth + mLumMarkerSize, -							 mLumRegionTop - mLumRegionHeight ); +	// rect containing RGB area +	LLRect lumAreaRect ( mLumRegionLeft, +						 mLumRegionTop, +						 mLumRegionLeft + mLumRegionWidth + mLumMarkerSize, +						 mLumRegionTop - mLumRegionHeight ); -		if ( lumAreaRect.pointInRect ( x, y ) ) -		{ -			gViewerWindow->setMouseCapture(this); -			// mouse button down -			setMouseDownInLumRegion ( TRUE ); +	if ( lumAreaRect.pointInRect ( x, y ) ) +	{ +		gViewerWindow->setMouseCapture(this); +		// mouse button down +		setMouseDownInLumRegion ( TRUE ); -			// required by base class -			return TRUE; -		} +		// required by base class +		return TRUE; +	} -		// rect containing swatch area -		LLRect swatchRect ( mSwatchRegionLeft, -							mSwatchRegionTop, -							mSwatchRegionLeft + mSwatchRegionWidth, -							mSwatchRegionTop - mSwatchRegionHeight ); +	// rect containing swatch area +	LLRect swatchRect ( mSwatchRegionLeft, +						mSwatchRegionTop, +						mSwatchRegionLeft + mSwatchRegionWidth, +						mSwatchRegionTop - mSwatchRegionHeight ); -		setMouseDownInSwatch( FALSE ); -		if ( swatchRect.pointInRect ( x, y ) ) -		{ -			setMouseDownInSwatch( TRUE ); +	setMouseDownInSwatch( FALSE ); +	if ( swatchRect.pointInRect ( x, y ) ) +	{ +		setMouseDownInSwatch( TRUE ); -			// required - dont drag windows here. -			return TRUE; -		} +		// required - dont drag windows here. +		return TRUE; +	} -		// rect containing palette area -		LLRect paletteRect ( mPaletteRegionLeft, -							 mPaletteRegionTop, -							 mPaletteRegionLeft + mPaletteRegionWidth, -							 mPaletteRegionTop - mPaletteRegionHeight ); +	// rect containing palette area +	LLRect paletteRect ( mPaletteRegionLeft, +						 mPaletteRegionTop, +						 mPaletteRegionLeft + mPaletteRegionWidth, +						 mPaletteRegionTop - mPaletteRegionHeight ); -		if ( paletteRect.pointInRect ( x, y ) ) +	if ( paletteRect.pointInRect ( x, y ) ) +	{ +		// release keyboard focus so we can change text values +		if (gFocusMgr.childHasKeyboardFocus(this))  		{ -			// release keyboard focus so we can change text values -			if (gFocusMgr.childHasKeyboardFocus(this)) -			{ -				mSelectBtn->setFocus(TRUE); -			} - -			// calculate which palette index we selected -			S32 c = ( ( x - mPaletteRegionLeft ) * numPaletteColumns ) / mPaletteRegionWidth; -			S32 r = ( ( y - ( mPaletteRegionTop - mPaletteRegionHeight ) ) * numPaletteRows ) / mPaletteRegionHeight; +			mSelectBtn->setFocus(TRUE); +		} -			U32 index = ( numPaletteRows - r - 1 ) * numPaletteColumns + c; +		// calculate which palette index we selected +		S32 c = ( ( x - mPaletteRegionLeft ) * numPaletteColumns ) / mPaletteRegionWidth; +		S32 r = ( ( y - ( mPaletteRegionTop - mPaletteRegionHeight ) ) * numPaletteRows ) / mPaletteRegionHeight; -			if ( index <= mPalette.size () ) -			{ -				LLColor4 selected = *mPalette [ index ]; +		U32 index = ( numPaletteRows - r - 1 ) * numPaletteColumns + c; -				setCurRgb ( selected [ 0 ], selected [ 1 ], selected [ 2 ] ); +		if ( index <= mPalette.size () ) +		{ +			LLColor4 selected = *mPalette [ index ]; -				if (mApplyImmediateCheck->get()) -				{ -					LLColorSwatchCtrl::onColorChanged ( getSwatch (), LLColorSwatchCtrl::COLOR_CHANGE ); -				} +			setCurRgb ( selected [ 0 ], selected [ 1 ], selected [ 2 ] ); -				// HACK: turn off the call back wilst we update the text or we recurse ourselves into oblivion -				enableTextCallbacks ( FALSE ); -				updateTextEntry (); -				enableTextCallbacks ( TRUE ); +			if (mApplyImmediateCheck->get()) +			{ +				LLColorSwatchCtrl::onColorChanged ( getSwatch (), LLColorSwatchCtrl::COLOR_CHANGE );  			} -			return TRUE; +			// HACK: turn off the call back wilst we update the text or we recurse ourselves into oblivion +			enableTextCallbacks ( FALSE ); +			updateTextEntry (); +			enableTextCallbacks ( TRUE );  		} + +		return TRUE;  	} +  	// dispatch to base class for the rest of things -	return LLFloater::handleMouseDown ( x, y, mask ); +	return ret;  }  ////////////////////////////////////////////////////////////////////////////// diff --git a/indra/newview/llfloaterfriends.cpp b/indra/newview/llfloaterfriends.cpp index 9d52107a20..30326dc496 100644 --- a/indra/newview/llfloaterfriends.cpp +++ b/indra/newview/llfloaterfriends.cpp @@ -60,6 +60,7 @@  //Maximum number of people you can select to do an operation on at once.  #define MAX_FRIEND_SELECT 20 +#define DEFAULT_PERIOD 5.0  #define RIGHTS_CHANGE_TIMEOUT 5.0  #define OBSERVER_TIMEOUT 0.5 @@ -80,7 +81,6 @@ public:  		// events can arrive quickly in bulk - we need not process EVERY one of them -  		// so we wait a short while to let others pile-in, and process them in aggregate.  		mEventTimer.start(); -		mEventTimer.reset();  		// save-up all the mask-bits which have come-in  		mMask |= mask; @@ -102,7 +102,7 @@ protected:  LLPanelFriends::LLPanelFriends() :  	LLPanel(), -	LLEventTimer(1000000), +	LLEventTimer(DEFAULT_PERIOD),  	mObserver(NULL),  	mShowMaxSelectWarning(TRUE),  	mAllowRightsChange(TRUE), @@ -122,7 +122,7 @@ LLPanelFriends::~LLPanelFriends()  BOOL LLPanelFriends::tick()  {  	mEventTimer.stop(); -	mPeriod = 1000000; +	mPeriod = DEFAULT_PERIOD;  	mAllowRightsChange = TRUE;  	updateFriends(LLFriendObserver::ADD);  	return FALSE; @@ -152,7 +152,6 @@ void LLPanelFriends::updateFriends(U32 changed_mask)  		{  			mPeriod = RIGHTS_CHANGE_TIMEOUT;	  			mEventTimer.start(); -			mEventTimer.reset();  			mAllowRightsChange = FALSE;  		}  		else @@ -208,17 +207,20 @@ BOOL LLPanelFriends::postBuild()  } -void LLPanelFriends::addFriend(const std::string& name, const LLUUID& agent_id) +BOOL LLPanelFriends::addFriend(const LLUUID& agent_id)  {  	LLAvatarTracker& at = LLAvatarTracker::instance();  	const LLRelationship* relationInfo = at.getBuddyInfo(agent_id); -	if(!relationInfo) return; +	if(!relationInfo) return FALSE;  	BOOL online = relationInfo->isOnline(); +	std::string fullname; +	BOOL have_name = gCacheName->getFullName(agent_id, fullname); +	  	LLSD element;  	element["id"] = agent_id;  	element["columns"][LIST_FRIEND_NAME]["column"] = "friend_name"; -	element["columns"][LIST_FRIEND_NAME]["value"] = name.c_str(); +	element["columns"][LIST_FRIEND_NAME]["value"] = fullname;  	element["columns"][LIST_FRIEND_NAME]["font"] = "SANSSERIF";  	element["columns"][LIST_FRIEND_NAME]["font-style"] = "NORMAL";	  	element["columns"][LIST_ONLINE_STATUS]["column"] = "icon_online_status"; @@ -247,30 +249,39 @@ void LLPanelFriends::addFriend(const std::string& name, const LLUUID& agent_id)  	element["columns"][LIST_EDIT_THEIRS]["value"] = relationInfo->isRightGrantedFrom(LLRelationship::GRANT_MODIFY_OBJECTS);  	element["columns"][LIST_FRIEND_UPDATE_GEN]["column"] = "friend_last_update_generation"; -	element["columns"][LIST_FRIEND_UPDATE_GEN]["value"] = relationInfo->getChangeSerialNum(); +	element["columns"][LIST_FRIEND_UPDATE_GEN]["value"] = have_name ? relationInfo->getChangeSerialNum() : -1;  	mFriendsList->addElement(element, ADD_BOTTOM); +	return have_name;  }  // propagate actual relationship to UI -void LLPanelFriends::updateFriendItem(LLScrollListItem* itemp, const LLRelationship* info) +BOOL LLPanelFriends::updateFriendItem(const LLUUID& agent_id, const LLRelationship* info)  { -	if (!itemp) return; -	if (!info) return; +	if (!info) return FALSE; +	LLScrollListItem* itemp = mFriendsList->getItem(agent_id); +	if (!itemp) return FALSE; + +	std::string fullname; +	BOOL have_name = gCacheName->getFullName(agent_id, fullname);  	itemp->getColumn(LIST_ONLINE_STATUS)->setValue(info->isOnline() ? gViewerArt.getString("icon_avatar_online.tga") : LLString()); +	itemp->getColumn(LIST_FRIEND_NAME)->setValue(fullname);  	// render name of online friends in bold text  	((LLScrollListText*)itemp->getColumn(LIST_FRIEND_NAME))->setFontStyle(info->isOnline() ? LLFontGL::BOLD : LLFontGL::NORMAL);	  	itemp->getColumn(LIST_VISIBLE_ONLINE)->setValue(info->isRightGrantedTo(LLRelationship::GRANT_ONLINE_STATUS));  	itemp->getColumn(LIST_VISIBLE_MAP)->setValue(info->isRightGrantedTo(LLRelationship::GRANT_MAP_LOCATION));  	itemp->getColumn(LIST_EDIT_MINE)->setValue(info->isRightGrantedTo(LLRelationship::GRANT_MODIFY_OBJECTS)); -	itemp->getColumn(LIST_FRIEND_UPDATE_GEN)->setValue(info->getChangeSerialNum()); +	S32 change_generation = have_name ? info->getChangeSerialNum() : -1; +	itemp->getColumn(LIST_FRIEND_UPDATE_GEN)->setValue(change_generation);  	// enable this item, in case it was disabled after user input  	itemp->setEnabled(TRUE);  	// changed item in place, need to request sort  	mFriendsList->sortItems(); + +	return have_name;  }  void LLPanelFriends::refreshRightsChangeList() @@ -354,7 +365,8 @@ void LLPanelFriends::refreshNames()  	std::vector<LLScrollListItem*>::iterator item_it = items.begin();  	std::vector<LLScrollListItem*>::iterator item_end = items.end(); -	 + +	BOOL have_names = TRUE;  	LLAvatarTracker::buddy_map_t::iterator buddy_it;  	for (buddy_it = all_buddies.begin() ; buddy_it != all_buddies.end(); ++buddy_it)  	{ @@ -379,24 +391,24 @@ void LLPanelFriends::refreshNames()  			if (last_change_generation < info->getChangeSerialNum())  			{  				// update existing item in UI -				updateFriendItem(mFriendsList->getItem(buddy_it->first), info); +				have_names &= updateFriendItem(buddy_it->first, info);  			}  			++item_it;  		}  		// add new friend to list  		else   		{ -			const LLUUID& buddy_id = buddy_it->first; -			char first_name[DB_FIRST_NAME_BUF_SIZE];	/*Flawfinder: ignore*/	 -			char last_name[DB_LAST_NAME_BUF_SIZE];		/*Flawfinder: ignore*/ - -			gCacheName->getName(buddy_id, first_name, last_name); -			std::ostringstream fullname; -			fullname << first_name << " " << last_name; -			addFriend(fullname.str(), buddy_id); +			have_names &= addFriend(buddy_it->first);  		}  	} +	if (!have_names) +	{ +		mEventTimer.start(); +	} +	// changed item in place, need to request sort and update columns +	mFriendsList->sortItems(); +	// re-select items  	mFriendsList->selectMultiple(selected_ids);  	mFriendsList->setScrollPos(pos);  } @@ -412,7 +424,7 @@ void LLPanelFriends::refreshUI()  		single_selected = TRUE;  		if(num_selected > 1)  		{ -			childSetText("friend_name_label", childGetText("Multiple")); +			childSetText("friend_name_label", getString("Multiple"));  			multiple_selected = TRUE;		  		}  		else @@ -501,26 +513,17 @@ void LLPanelFriends::onClickIM(void* user_data)  		{  			LLUUID agent_id = ids[0];  			const LLRelationship* info = LLAvatarTracker::instance().getBuddyInfo(agent_id); -			char first[DB_FIRST_NAME_BUF_SIZE];	/* Flawfinder: ignore */ -			char last[DB_LAST_NAME_BUF_SIZE];	/* Flawfinder: ignore */ -			if(info && gCacheName->getName(agent_id, first, last)) +			std::string fullname; +			if(info && gCacheName->getFullName(agent_id, fullname))  			{ -				char buffer[MAX_STRING];	/* Flawfinder: ignore */ -				snprintf(buffer, MAX_STRING, "%s %s", first, last);	/* Flawfinder: ignore */  				gIMMgr->setFloaterOpen(TRUE); -				gIMMgr->addSession( -					buffer, -					IM_NOTHING_SPECIAL, -					agent_id); +				gIMMgr->addSession(fullname, IM_NOTHING_SPECIAL, agent_id);  			}		  		}  		else  		{  			gIMMgr->setFloaterOpen(TRUE); -			gIMMgr->addSession("Friends Conference", -								IM_SESSION_CONFERENCE_START, -								ids[0], -								ids); +			gIMMgr->addSession("Friends Conference", IM_SESSION_CONFERENCE_START, ids[0], ids);  		}  		make_ui_sound("UISndStartIM");  	} @@ -612,8 +615,7 @@ void LLPanelFriends::onClickRemove(void* user_data)  		if(ids.size() == 1)  		{  			LLUUID agent_id = ids[0]; -			char first[DB_FIRST_NAME_BUF_SIZE];		/*Flawfinder: ignore*/ -			char last[DB_LAST_NAME_BUF_SIZE];		/*Flawfinder: ignore*/ +			std::string first, last;  			if(gCacheName->getName(agent_id, first, last))  			{  				args["[FIRST_NAME]"] = first; @@ -671,8 +673,7 @@ void LLPanelFriends::confirmModifyRights(rights_map_t& ids, EGrantRevoke command  		if(ids.size() == 1)  		{  			LLUUID agent_id = ids.begin()->first; -			char first[DB_FIRST_NAME_BUF_SIZE];		/*Flawfinder: ignore*/ -			char last[DB_LAST_NAME_BUF_SIZE];		/*Flawfinder: ignore*/ +			std::string first, last;  			if(gCacheName->getName(agent_id, first, last))  			{  				args["[FIRST_NAME]"] = first; @@ -720,9 +721,8 @@ void LLPanelFriends::modifyRightsConfirmation(S32 option, void* user_data)  			rights_map_t::iterator rights_it;  			for (rights_it = rights->begin(); rights_it != rights->end(); ++rights_it)  			{ -				LLScrollListItem* itemp = panelp->mFriendsList->getItem(rights_it->first);  				const LLRelationship* info = LLAvatarTracker::instance().getBuddyInfo(rights_it->first); -				panelp->updateFriendItem(itemp, info); +				panelp->updateFriendItem(rights_it->first, info);  			}  		}  		panelp->refreshUI(); diff --git a/indra/newview/llfloaterfriends.h b/indra/newview/llfloaterfriends.h index 46e4eaaf79..2e87688f8e 100644 --- a/indra/newview/llfloaterfriends.h +++ b/indra/newview/llfloaterfriends.h @@ -41,7 +41,8 @@  class LLFriendObserver;  class LLRelationship; - +class LLScrollListItem; +class LLScrollListCtrl;  /**    * @class LLPanelFriends @@ -100,8 +101,8 @@ private:  	void refreshUI();  	void refreshRightsChangeList();  	void applyRightsToFriends(); -	void addFriend(const std::string& name, const LLUUID& agent_id);	 -	void updateFriendItem(LLScrollListItem* itemp, const LLRelationship* relationship); +	BOOL addFriend(const LLUUID& agent_id);	 +	BOOL updateFriendItem(const LLUUID& agent_id, const LLRelationship* relationship);  	typedef enum   	{ @@ -138,7 +139,7 @@ private:  	LLFriendObserver* mObserver;  	LLUUID mAddFriendID;  	LLString mAddFriendName; -	LLScrollListCtrl*			mFriendsList; +	LLScrollListCtrl* mFriendsList;  	BOOL mShowMaxSelectWarning;  	BOOL mAllowRightsChange;  	S32 mNumRightsChanged; diff --git a/indra/newview/llfloatergesture.cpp b/indra/newview/llfloatergesture.cpp index 3bc7f5a28c..44d158d2e3 100644 --- a/indra/newview/llfloatergesture.cpp +++ b/indra/newview/llfloatergesture.cpp @@ -99,7 +99,7 @@ LLFloaterGesture::~LLFloaterGesture()  	// Custom saving rectangle, since load must be done  	// after postBuild. -	gSavedSettings.setRect("FloaterGestureRect", mRect); +	gSavedSettings.setRect("FloaterGestureRect", getRect());  }  // virtual diff --git a/indra/newview/llfloatergroupinvite.cpp b/indra/newview/llfloatergroupinvite.cpp index 6d76f7685a..a82e6e914e 100644 --- a/indra/newview/llfloatergroupinvite.cpp +++ b/indra/newview/llfloatergroupinvite.cpp @@ -83,7 +83,7 @@ LLFloaterGroupInvite::LLFloaterGroupInvite(const std::string& name,  										   const LLUUID& group_id)  :	LLFloater(name, rect, title)  { -	LLRect contents(mRect); +	LLRect contents(getRect());  	contents.mTop -= LLFLOATER_HEADER_SIZE;  	mImpl = new impl(group_id); diff --git a/indra/newview/llfloatergroups.h b/indra/newview/llfloatergroups.h index 63b9096e77..a1740861d5 100644 --- a/indra/newview/llfloatergroups.h +++ b/indra/newview/llfloatergroups.h @@ -53,9 +53,9 @@ class LLScrollListCtrl;  class LLButton;  class LLFloaterGroupPicker; -class LLFloaterGroupPicker : public LLFloater, public LLUIInstanceMgr<LLFloaterGroupPicker> +class LLFloaterGroupPicker : public LLFloater, public LLUIFactory<LLFloaterGroupPicker, LLFloaterGroupPicker, VisibilityPolicy<LLFloater> >  { -	friend class LLUIInstanceMgr<LLFloaterGroupPicker>; +	friend class LLUIFactory<LLFloaterGroupPicker>;  public:  	~LLFloaterGroupPicker();  	void setSelectCallback( void (*callback)(LLUUID, void*),  @@ -63,11 +63,13 @@ public:  	void setPowersMask(U64 powers_mask);  	BOOL postBuild(); +	// implementation of factory policy +	static LLFloaterGroupPicker* findInstance(const LLSD& seed); +	static LLFloaterGroupPicker* createInstance(const LLSD& seed); +  protected:  	LLFloaterGroupPicker(const LLSD& seed);  	void ok(); -	static LLFloaterGroupPicker* findInstance(const LLSD& seed); -	static LLFloaterGroupPicker* createInstance(const LLSD& seed);  	static void onBtnOK(void* userdata);  	static void onBtnCancel(void* userdata); diff --git a/indra/newview/llfloaterinspect.cpp b/indra/newview/llfloaterinspect.cpp index 9f1624d20c..4280e250d7 100644 --- a/indra/newview/llfloaterinspect.cpp +++ b/indra/newview/llfloaterinspect.cpp @@ -211,18 +211,13 @@ void LLFloaterInspect::refresh()  	{  		LLSelectNode* obj = *iter;  		LLSD row; -		char owner_first_name[MAX_STRING], owner_last_name[MAX_STRING]; -		char creator_first_name[MAX_STRING], creator_last_name[MAX_STRING];  		char time[MAX_STRING]; -		std::ostringstream owner_name, creator_name, date; +		std::string owner_name, creator_name;  		time_t timestamp = (time_t) (obj->mCreationDate/1000000);  		LLString::copy(time, ctime(×tamp), MAX_STRING);  		time[24] = '\0'; -		date << obj->mCreationDate; -		gCacheName->getName(obj->mPermissions->getOwner(), owner_first_name, owner_last_name); -		owner_name << owner_first_name << " " << owner_last_name; -		gCacheName->getName(obj->mPermissions->getCreator(), creator_first_name, creator_last_name); -		creator_name << creator_first_name << " " << creator_last_name; +		gCacheName->getFullName(obj->mPermissions->getOwner(), owner_name); +		gCacheName->getFullName(obj->mPermissions->getCreator(), creator_name);  		row["id"] = obj->getObject()->getID();  		row["columns"][0]["column"] = "object_name";  		row["columns"][0]["type"] = "text"; @@ -238,10 +233,10 @@ void LLFloaterInspect::refresh()  		}  		row["columns"][1]["column"] = "owner_name";  		row["columns"][1]["type"] = "text"; -		row["columns"][1]["value"] = owner_name.str().c_str(); +		row["columns"][1]["value"] = owner_name;  		row["columns"][2]["column"] = "creator_name";  		row["columns"][2]["type"] = "text"; -		row["columns"][2]["value"] = creator_name.str().c_str(); +		row["columns"][2]["value"] = creator_name;  		row["columns"][3]["column"] = "creation_date";  		row["columns"][3]["type"] = "text";  		row["columns"][3]["value"] = time; diff --git a/indra/newview/llfloaterinspect.h b/indra/newview/llfloaterinspect.h index 8656f13124..befb133f68 100644 --- a/indra/newview/llfloaterinspect.h +++ b/indra/newview/llfloaterinspect.h @@ -67,7 +67,7 @@ private:  	// static data  	static LLFloaterInspect* sInstance; -	LLHandle<LLObjectSelection> mObjectSelection; +	LLSafeHandle<LLObjectSelection> mObjectSelection;  };  #endif //LL_LLFLOATERINSPECT_H diff --git a/indra/newview/llfloaterlagmeter.cpp b/indra/newview/llfloaterlagmeter.cpp index 04a5cf6a24..9f1bef5be7 100644 --- a/indra/newview/llfloaterlagmeter.cpp +++ b/indra/newview/llfloaterlagmeter.cpp @@ -72,49 +72,49 @@ LLFloaterLagMeter::LLFloaterLagMeter()  	mServerText = LLUICtrlFactory::getTextBoxByName(this, "server_text");  	mServerCause = LLUICtrlFactory::getTextBoxByName(this, "server_lag_cause"); -	LLString config_string = childGetText("client_frame_rate_critical_fps"); +	LLString config_string = getString("client_frame_rate_critical_fps", mStringArgs);  	mClientFrameTimeCritical = 1.0f / (float)atof( config_string.c_str() ); -	config_string = childGetText("client_frame_rate_warning_fps"); +	config_string = getString("client_frame_rate_warning_fps", mStringArgs);  	mClientFrameTimeWarning = 1.0f / (float)atof( config_string.c_str() ); -	config_string = childGetText("network_packet_loss_critical_pct"); +	config_string = getString("network_packet_loss_critical_pct", mStringArgs);  	mNetworkPacketLossCritical = (float)atof( config_string.c_str() ); -	config_string = childGetText("network_packet_loss_warning_pct"); +	config_string = getString("network_packet_loss_warning_pct", mStringArgs);  	mNetworkPacketLossWarning = (float)atof( config_string.c_str() ); -	config_string = childGetText("network_ping_critical_ms"); +	config_string = getString("network_ping_critical_ms", mStringArgs);  	mNetworkPingCritical = (float)atof( config_string.c_str() ); -	config_string = childGetText("network_ping_warning_ms"); +	config_string = getString("network_ping_warning_ms", mStringArgs);  	mNetworkPingWarning = (float)atof( config_string.c_str() ); -	config_string = childGetText("server_frame_rate_critical_fps"); +	config_string = getString("server_frame_rate_critical_fps", mStringArgs);  	mServerFrameTimeCritical = 1000.0f / (float)atof( config_string.c_str() ); -	config_string = childGetText("server_frame_rate_warning_fps"); +	config_string = getString("server_frame_rate_warning_fps", mStringArgs);  	mServerFrameTimeWarning = 1000.0f / (float)atof( config_string.c_str() ); -	config_string = childGetText("server_single_process_max_time_ms"); +	config_string = getString("server_single_process_max_time_ms", mStringArgs);  	mServerSingleProcessMaxTime = (float)atof( config_string.c_str() );  	mShrunk = false; -	config_string = childGetText("max_width_px"); +	config_string = getString("max_width_px", mStringArgs);  	mMaxWidth = atoi( config_string.c_str() ); -	config_string = childGetText("min_width_px"); +	config_string = getString("min_width_px", mStringArgs);  	mMinWidth = atoi( config_string.c_str() ); -	childSetTextArg("client_frame_time_critical_msg", "[CLIENT_FRAME_RATE_CRITICAL]", childGetText("client_frame_rate_critical_fps")); -	childSetTextArg("client_frame_time_warning_msg", "[CLIENT_FRAME_RATE_CRITICAL]", childGetText("client_frame_rate_critical_fps")); -	childSetTextArg("client_frame_time_warning_msg", "[CLIENT_FRAME_RATE_WARNING]", childGetText("client_frame_rate_warning_fps")); +	mStringArgs["[CLIENT_FRAME_RATE_CRITICAL]"] = getString("client_frame_rate_critical_fps"); +	mStringArgs["[CLIENT_FRAME_RATE_CRITICAL]"] = getString("client_frame_rate_critical_fps"); +	mStringArgs["[CLIENT_FRAME_RATE_WARNING]"] = getString("client_frame_rate_warning_fps"); -	childSetTextArg("network_packet_loss_critical_msg", "[NETWORK_PACKET_LOSS_CRITICAL]", childGetText("network_packet_loss_critical_pct")); -	childSetTextArg("network_packet_loss_warning_msg", "[NETWORK_PACKET_LOSS_CRITICAL]", childGetText("network_packet_loss_critical_pct")); -	childSetTextArg("network_packet_loss_warning_msg", "[NETWORK_PACKET_LOSS_WARNING]", childGetText("network_packet_loss_warning_pct")); +	mStringArgs["[NETWORK_PACKET_LOSS_CRITICAL]"] = getString("network_packet_loss_critical_pct"); +	mStringArgs["[NETWORK_PACKET_LOSS_CRITICAL]"] = getString("network_packet_loss_critical_pct"); +	mStringArgs["[NETWORK_PACKET_LOSS_WARNING]"] = getString("network_packet_loss_warning_pct"); -	childSetTextArg("network_ping_critical_msg", "[NETWORK_PING_CRITICAL]", childGetText("network_ping_critical_ms")); -	childSetTextArg("network_ping_warning_msg", "[NETWORK_PING_CRITICAL]", childGetText("network_ping_critical_ms")); -	childSetTextArg("network_ping_warning_msg", "[NETWORK_PING_WARNING]", childGetText("network_ping_warning_ms")); +	mStringArgs["[NETWORK_PING_CRITICAL]"] = getString("network_ping_critical_ms"); +	mStringArgs["[NETWORK_PING_CRITICAL]"] = getString("network_ping_critical_ms"); +	mStringArgs["[NETWORK_PING_WARNING]"] = getString("network_ping_warning_ms"); -	childSetTextArg("server_frame_time_critical_msg", "[SERVER_FRAME_RATE_CRITICAL]", childGetText("server_frame_rate_critical_fps")); -	childSetTextArg("server_frame_time_warning_msg", "[SERVER_FRAME_RATE_CRITICAL]", childGetText("server_frame_rate_critical_fps")); -	childSetTextArg("server_frame_time_warning_msg", "[SERVER_FRAME_RATE_WARNING]", childGetText("server_frame_rate_warning_fps")); +	mStringArgs["[SERVER_FRAME_RATE_CRITICAL]"] = getString("server_frame_rate_critical_fps"); +	mStringArgs["[SERVER_FRAME_RATE_CRITICAL]"] = getString("server_frame_rate_critical_fps"); +	mStringArgs["[SERVER_FRAME_RATE_WARNING]"] = getString("server_frame_rate_warning_fps");  	childSetAction("minimize", onClickShrink, this); @@ -162,25 +162,25 @@ void LLFloaterLagMeter::determineClient()  	if (!gFocusMgr.getAppHasFocus())  	{  		mClientButton->setImageUnselected(LAG_GOOD_IMAGE_NAME); -		mClientText->setText( childGetText("client_frame_time_window_bg_msg") ); +		mClientText->setText( getString("client_frame_time_window_bg_msg", mStringArgs) );  		mClientCause->setText( LLString::null );  	}  	else if(client_frame_time >= mClientFrameTimeCritical)  	{  		mClientButton->setImageUnselected(LAG_CRITICAL_IMAGE_NAME); -		mClientText->setText( childGetText("client_frame_time_critical_msg") ); +		mClientText->setText( getString("client_frame_time_critical_msg", mStringArgs) );  		find_cause = true;  	}  	else if(client_frame_time >= mClientFrameTimeWarning)  	{  		mClientButton->setImageUnselected(LAG_WARNING_IMAGE_NAME); -		mClientText->setText( childGetText("client_frame_time_warning_msg") ); +		mClientText->setText( getString("client_frame_time_warning_msg", mStringArgs) );  		find_cause = true;  	}  	else  	{  		mClientButton->setImageUnselected(LAG_GOOD_IMAGE_NAME); -		mClientText->setText( childGetText("client_frame_time_normal_msg") ); +		mClientText->setText( getString("client_frame_time_normal_msg", mStringArgs) );  		mClientCause->setText( LLString::null );  	}	 @@ -188,19 +188,19 @@ void LLFloaterLagMeter::determineClient()  	{  		if(gSavedSettings.getF32("RenderFarClip") > 128)  		{ -			mClientCause->setText( childGetText("client_draw_distance_cause_msg") ); +			mClientCause->setText( getString("client_draw_distance_cause_msg", mStringArgs) );  		}  		else if(LLAppViewer::instance()->getTextureFetch()->getNumRequests() > 2)  		{ -			mClientCause->setText( childGetText("client_texture_loading_cause_msg") ); +			mClientCause->setText( getString("client_texture_loading_cause_msg", mStringArgs) );  		}  		else if(LLViewerImage::sBoundTextureMemory > LLViewerImage::sMaxBoundTextureMem)  		{ -			mClientCause->setText( childGetText("client_texture_memory_cause_msg") ); +			mClientCause->setText( getString("client_texture_memory_cause_msg", mStringArgs) );  		}  		else   		{ -			mClientCause->setText( childGetText("client_complex_objects_cause_msg") ); +			mClientCause->setText( getString("client_complex_objects_cause_msg", mStringArgs) );  		}  	}  } @@ -215,40 +215,40 @@ void LLFloaterLagMeter::determineNetwork()  	if(packet_loss >= mNetworkPacketLossCritical)  	{  		mNetworkButton->setImageUnselected(LAG_CRITICAL_IMAGE_NAME); -		mNetworkText->setText( childGetText("network_packet_loss_critical_msg") ); +		mNetworkText->setText( getString("network_packet_loss_critical_msg", mStringArgs) );  		find_cause_loss = true;  	}  	else if(ping_time >= mNetworkPingCritical)  	{  		mNetworkButton->setImageUnselected(LAG_CRITICAL_IMAGE_NAME); -		mNetworkText->setText( childGetText("network_ping_critical_msg") ); +		mNetworkText->setText( getString("network_ping_critical_msg", mStringArgs) );  		find_cause_ping = true;  	}  	else if(packet_loss >= mNetworkPacketLossWarning)  	{  		mNetworkButton->setImageUnselected(LAG_WARNING_IMAGE_NAME); -		mNetworkText->setText( childGetText("network_packet_loss_warning_msg") ); +		mNetworkText->setText( getString("network_packet_loss_warning_msg", mStringArgs) );  		find_cause_loss = true;  	}  	else if(ping_time >= mNetworkPingWarning)  	{  		mNetworkButton->setImageUnselected(LAG_WARNING_IMAGE_NAME); -		mNetworkText->setText( childGetText("network_ping_warning_msg") ); +		mNetworkText->setText( getString("network_ping_warning_msg", mStringArgs) );  		find_cause_ping = true;  	}  	else  	{  		mNetworkButton->setImageUnselected(LAG_GOOD_IMAGE_NAME); -		mNetworkText->setText( childGetText("network_performance_normal_msg") ); +		mNetworkText->setText( getString("network_performance_normal_msg", mStringArgs) );  	}  	if(find_cause_loss)   	{ -		mNetworkCause->setText( childGetText("network_packet_loss_cause_msg") ); +		mNetworkCause->setText( getString("network_packet_loss_cause_msg", mStringArgs) );   	}  	else if(find_cause_ping)  	{ -		mNetworkCause->setText( childGetText("network_ping_cause_msg") ); +		mNetworkCause->setText( getString("network_ping_cause_msg", mStringArgs) );  	}  	else  	{ @@ -264,19 +264,19 @@ void LLFloaterLagMeter::determineServer()  	if(sim_frame_time >= mServerFrameTimeCritical)  	{  		mServerButton->setImageUnselected(LAG_CRITICAL_IMAGE_NAME); -		mServerText->setText( childGetText("server_frame_time_critical_msg") ); +		mServerText->setText( getString("server_frame_time_critical_msg", mStringArgs) );  		find_cause = true;  	}  	else if(sim_frame_time >= mServerFrameTimeWarning)  	{  		mServerButton->setImageUnselected(LAG_WARNING_IMAGE_NAME); -		mServerText->setText( childGetText("server_frame_time_warning_msg") ); +		mServerText->setText( getString("server_frame_time_warning_msg", mStringArgs) );  		find_cause = true;  	}  	else  	{  		mServerButton->setImageUnselected(LAG_GOOD_IMAGE_NAME); -		mServerText->setText( childGetText("server_frame_time_normal_msg") ); +		mServerText->setText( getString("server_frame_time_normal_msg", mStringArgs) );  		mServerCause->setText( LLString::null );  	}	 @@ -284,27 +284,27 @@ void LLFloaterLagMeter::determineServer()  	{  		if(gViewerStats->mSimSimPhysicsMsec.getCurrent() > mServerSingleProcessMaxTime)  		{ -			mServerCause->setText( childGetText("server_physics_cause_msg") ); +			mServerCause->setText( getString("server_physics_cause_msg", mStringArgs) );  		}  		else if(gViewerStats->mSimScriptMsec.getCurrent() > mServerSingleProcessMaxTime)  		{ -			mServerCause->setText( childGetText("server_scripts_cause_msg") ); +			mServerCause->setText( getString("server_scripts_cause_msg", mStringArgs) );  		}  		else if(gViewerStats->mSimNetMsec.getCurrent() > mServerSingleProcessMaxTime)  		{ -			mServerCause->setText( childGetText("server_net_cause_msg") ); +			mServerCause->setText( getString("server_net_cause_msg", mStringArgs) );  		}  		else if(gViewerStats->mSimAgentMsec.getCurrent() > mServerSingleProcessMaxTime)  		{ -			mServerCause->setText( childGetText("server_agent_cause_msg") ); +			mServerCause->setText( getString("server_agent_cause_msg", mStringArgs) );  		}  		else if(gViewerStats->mSimImagesMsec.getCurrent() > mServerSingleProcessMaxTime)  		{ -			mServerCause->setText( childGetText("server_images_cause_msg") ); +			mServerCause->setText( getString("server_images_cause_msg", mStringArgs) );  		}  		else  		{ -			mServerCause->setText( childGetText("server_generic_cause_msg") ); +			mServerCause->setText( getString("server_generic_cause_msg", mStringArgs) );  		}  	}  } @@ -314,38 +314,38 @@ void LLFloaterLagMeter::onClickShrink(void * data)  {  	LLFloaterLagMeter * self = (LLFloaterLagMeter*)data; -	LLButton * button = (LLButton*)self->getChildByName("minimize"); +	LLButton * button = self->getChild<LLButton>("minimize");  	S32 delta_width = self->mMaxWidth - self->mMinWidth;  	LLRect r = self->getRect();  	if(self->mShrunk)  	{ -		self->setTitle( self->childGetText("max_title_msg") ); +		self->setTitle( self->getString("max_title_msg", self->mStringArgs) );  		// make left edge appear to expand  		r.translate(-delta_width, 0);  		self->setRect(r);  		self->reshape(self->mMaxWidth, self->getRect().getHeight()); -		self->childSetText("client", self->childGetText("client_text_msg") + ":"); -		self->childSetText("network", self->childGetText("network_text_msg") + ":"); -		self->childSetText("server", self->childGetText("server_text_msg") + ":"); +		self->childSetText("client", self->getString("client_text_msg", self->mStringArgs) + ":"); +		self->childSetText("network", self->getString("network_text_msg", self->mStringArgs) + ":"); +		self->childSetText("server", self->getString("server_text_msg", self->mStringArgs) + ":");  		// usually "<<" -		button->setLabel( self->childGetText("smaller_label") ); +		button->setLabel( self->getString("smaller_label", self->mStringArgs) );  	}  	else  	{ -		self->setTitle( self->childGetText("min_title_msg") ); +		self->setTitle( self->getString("min_title_msg", self->mStringArgs) );  		// make left edge appear to collapse  		r.translate(delta_width, 0);  		self->setRect(r);  		self->reshape(self->mMinWidth, self->getRect().getHeight()); -		self->childSetText("client", self->childGetText("client_text_msg") ); -		self->childSetText("network", self->childGetText("network_text_msg") ); -		self->childSetText("server", self->childGetText("server_text_msg") ); +		self->childSetText("client", self->getString("client_text_msg", self->mStringArgs) ); +		self->childSetText("network", self->getString("network_text_msg", self->mStringArgs) ); +		self->childSetText("server", self->getString("server_text_msg", self->mStringArgs) );  		// usually ">>" -		button->setLabel( self->childGetText("bigger_label") ); +		button->setLabel( self->getString("bigger_label", self->mStringArgs) );  	}  	// Don't put keyboard focus on the button  	button->setFocus(FALSE); diff --git a/indra/newview/llfloaterlagmeter.h b/indra/newview/llfloaterlagmeter.h index 0309f199f7..83603826c4 100644 --- a/indra/newview/llfloaterlagmeter.h +++ b/indra/newview/llfloaterlagmeter.h @@ -74,6 +74,8 @@ private:  	LLTextBox * mServerText;  	LLTextBox * mServerCause; +	LLString::format_map_t mStringArgs; +  	static LLFloaterLagMeter * sInstance;  }; diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp index f340ff2569..aafd5d7cb4 100644 --- a/indra/newview/llfloaterland.cpp +++ b/indra/newview/llfloaterland.cpp @@ -112,7 +112,7 @@ static const BOOL BUY_PERSONAL_LAND = FALSE;  LLParcelSelectionObserver* LLFloaterLand::sObserver = NULL;  S32 LLFloaterLand::sLastTab = 0; -LLViewHandle LLPanelLandGeneral::sBuyPassDialogHandle; +LLHandle<LLFloater> LLPanelLandGeneral::sBuyPassDialogHandle;  // Local classes  class LLParcelSelectionObserver : public LLParcelObserver @@ -189,10 +189,6 @@ void LLFloaterLand::refreshAll()  void LLFloaterLand::onOpen()  { -	// Select tab from last view -	mTabLand->selectTab(sLastTab); - -  	// Done automatically when the selected parcel's properties arrive  	// (and hence we have the local id).  	// gParcelMgr->sendParcelAccessListRequest(AL_ACCESS | AL_BAN | AL_RENTER); @@ -237,7 +233,7 @@ LLFloaterLand::LLFloaterLand(const LLSD& seed)  	factory_map["land_media_panel"] =	LLCallbackMap(createPanelLandMedia, this);  	factory_map["land_access_panel"] =	LLCallbackMap(createPanelLandAccess, this); -	gUICtrlFactory->buildFloater(this, "floater_about_land.xml", &factory_map); +	gUICtrlFactory->buildFloater(this, "floater_about_land.xml", &factory_map, false);  	sObserver = new LLParcelSelectionObserver();  	gParcelMgr->addObserver( sObserver ); @@ -245,7 +241,7 @@ LLFloaterLand::LLFloaterLand(const LLSD& seed)  BOOL LLFloaterLand::postBuild()  { -	LLTabContainerCommon* tab = LLUICtrlFactory::getTabContainerByName(this, "landtab"); +	LLTabContainer* tab = LLUICtrlFactory::getTabContainerByName(this, "landtab");  	mTabLand = (LLTabContainer*) tab; @@ -483,7 +479,7 @@ void LLPanelLandGeneral::refresh()  		mCheckContributeWithDeed->setEnabled(FALSE);  		mTextOwner->setText(LLString::null); -		mBtnProfile->setLabel(childGetText("profile_text")); +		mBtnProfile->setLabel(getString("profile_text"));  		mBtnProfile->setEnabled(FALSE);  		mTextClaimDate->setText(LLString::null); @@ -537,12 +533,12 @@ void LLPanelLandGeneral::refresh()  		{  			mTextSalePending->setText(LLString::null);  			mTextSalePending->setEnabled(FALSE); -			mTextOwner->setText(childGetText("public_text")); +			mTextOwner->setText(getString("public_text"));  			mTextOwner->setEnabled(FALSE);  			mBtnProfile->setEnabled(FALSE);  			mTextClaimDate->setText(LLString::null);  			mTextClaimDate->setEnabled(FALSE); -			mTextGroup->setText(childGetText("none_text")); +			mTextGroup->setText(getString("none_text"));  			mTextGroup->setEnabled(FALSE);  			mBtnStartAuction->setEnabled(FALSE);  		} @@ -550,12 +546,12 @@ void LLPanelLandGeneral::refresh()  		{  			if(!is_leased && (owner_id == gAgent.getID()))  			{ -				mTextSalePending->setText(childGetText("need_tier_to_modify")); +				mTextSalePending->setText(getString("need_tier_to_modify"));  				mTextSalePending->setEnabled(TRUE);  			}  			else if(parcel->getAuctionID())  			{ -				mTextSalePending->setText(childGetText("auction_id_text")); +				mTextSalePending->setText(getString("auction_id_text"));  				mTextSalePending->setTextArg("[ID]", llformat("%u", parcel->getAuctionID()));  				mTextSalePending->setEnabled(TRUE);  			} @@ -574,15 +570,15 @@ void LLPanelLandGeneral::refresh()  			if (parcel->getGroupID().isNull())  			{  				// Not group owned, so "Profile" -				mBtnProfile->setLabel(childGetText("profile_text")); +				mBtnProfile->setLabel(getString("profile_text")); -				mTextGroup->setText(childGetText("none_text")); +				mTextGroup->setText(getString("none_text"));  				mTextGroup->setEnabled(FALSE);  			}  			else  			{  				// Group owned, so "Info" -				mBtnProfile->setLabel(childGetText("info_text")); +				mBtnProfile->setLabel(getString("info_text"));  				//mTextGroup->setText("HIPPOS!");//parcel->getGroupName());  				mTextGroup->setEnabled(TRUE); @@ -692,9 +688,9 @@ void LLPanelLandGeneral::refresh()  								   &dwell);  		// Area -		LLUIString price = childGetText("area_size_text"); +		LLUIString price = getString("area_size_text");  		price.setArg("[AREA]", llformat("%d",area));	 -		mTextPriceLabel->setText(childGetText("area_text")); +		mTextPriceLabel->setText(getString("area_text"));  		mTextPrice->setText(price.getString());  		mTextDwell->setText(llformat("%.0f", dwell)); @@ -732,29 +728,24 @@ void LLPanelLandGeneral::refreshNames()  	LLString owner;  	if (parcel->getIsGroupOwned())  	{ -		owner = childGetText("group_owned_text"); +		owner = getString("group_owned_text");  	}  	else  	{  		// Figure out the owner's name -		char owner_first[MAX_STRING];	/*Flawfinder: ignore*/ -		char owner_last[MAX_STRING];	/*Flawfinder: ignore*/ -		gCacheName->getName(parcel->getOwnerID(), owner_first, owner_last); -		owner = llformat("%s %s", owner_first, owner_last); +		gCacheName->getFullName(parcel->getOwnerID(), owner);  	}  	if(LLParcel::OS_LEASE_PENDING == parcel->getOwnershipStatus())  	{ -		owner += childGetText("sale_pending_text"); +		owner += getString("sale_pending_text");  	}  	mTextOwner->setText(owner);  	LLString group;  	if(!parcel->getGroupID().isNull())  	{ -		char buffer[MAX_STRING];	/*Flawfinder: ignore*/ -		gCacheName->getGroupName(parcel->getGroupID(), buffer); -		group = buffer; +		gCacheName->getGroupName(parcel->getGroupID(), group);  	}  	mTextGroup->setText(group); @@ -762,18 +753,12 @@ void LLPanelLandGeneral::refreshNames()  	if(auth_buyer_id.notNull())  	{  		LLString name; -		char firstname[MAX_STRING];		/*Flawfinder: ignore*/ -		char lastname[MAX_STRING];		/*Flawfinder: ignore*/ -		gCacheName->getName(auth_buyer_id, firstname, lastname); -		name.assign(firstname); -		name.append(" "); -		name.append(lastname); - +		gCacheName->getFullName(auth_buyer_id, name);  		mSaleInfoForSale2->setTextArg("[BUYER]", name);  	}  	else  	{ -		mSaleInfoForSale2->setTextArg("[BUYER]", childGetText("anyone")); +		mSaleInfoForSale2->setTextArg("[BUYER]", getString("anyone"));  	}  } @@ -949,7 +934,7 @@ void LLPanelLandGeneral::cbBuyPass(S32 option, void* data)  //static   BOOL LLPanelLandGeneral::buyPassDialogVisible()  { -	return LLFloater::getFloaterByHandle(sBuyPassDialogHandle) != NULL; +	return sBuyPassDialogHandle.get() != NULL;  }  // static @@ -1071,7 +1056,7 @@ BOOL LLPanelLandObjects::postBuild()  	image_id.set( gViewerArt.getString("icon_group.tga") );  	mIconGroup = gImageList.getImage(image_id, MIPMAP_FALSE, TRUE); -	mOwnerList = LLUICtrlFactory::getNameListByName(this, "owner list"); +	mOwnerList = getChild<LLNameListCtrl>("owner list");  	mOwnerList->sortByColumn(3, FALSE);  	childSetCommitCallback("owner list", onCommitList, this);  	mOwnerList->setDoubleClickCallback(onDoubleClickOwner); @@ -1181,12 +1166,12 @@ void LLPanelLandObjects::refresh()  		if (sw_total > sw_max)  		{ -			mSWTotalObjects->setText(childGetText("objects_deleted_text")); +			mSWTotalObjects->setText(getString("objects_deleted_text"));  			mSWTotalObjects->setTextArg("[DELETED]", llformat("%d", sw_total - sw_max));  		}  		else  		{ -			mSWTotalObjects->setText(childGetText("objects_available_text")); +			mSWTotalObjects->setText(getString("objects_available_text"));  			mSWTotalObjects->setTextArg("[AVAILABLE]", llformat("%d", sw_max - sw_total));  		}  		mSWTotalObjects->setTextArg("[COUNT]", llformat("%d", sw_total)); @@ -1311,8 +1296,7 @@ void LLPanelLandObjects::callbackReturnOwnerObjects(S32 option, void* userdata)  			}  			else  			{ -				char first[DB_FIRST_NAME_BUF_SIZE];	/*Flawfinder: ignore*/ -				char last[DB_LAST_NAME_BUF_SIZE];	/*Flawfinder: ignore*/ +				std::string first, last;  				gCacheName->getName(owner_id, first, last);  				args["[FIRST]"] = first;  				args["[LAST]"] = last; @@ -1336,7 +1320,7 @@ void LLPanelLandObjects::callbackReturnGroupObjects(S32 option, void* userdata)  	{  		if (parcel)  		{ -			char group_name[MAX_STRING];		/*Flawfinder: ignore*/ +			std::string group_name;  			gCacheName->getGroupName(parcel->getGroupID(), group_name);  			LLString::format_map_t args;  			args["[GROUPNAME]"] = group_name; @@ -1639,12 +1623,8 @@ void LLPanelLandObjects::onClickReturnOwnerObjects(void* userdata)  	}  	else  	{ -		char first[DB_FIRST_NAME_BUF_SIZE];	/*Flawfinder: ignore*/ -		char last[DB_LAST_NAME_BUF_SIZE];	/*Flawfinder: ignore*/ -		gCacheName->getName(owner_id, first, last); -		std::string name = first; -		name += " "; -		name += last; +		std::string name; +		gCacheName->getFullName(owner_id, name);  		args["[NAME]"] = name;  		gViewerWindow->alertXml("ReturnObjectsOwnedByUser", args, callbackReturnOwnerObjects, userdata);  	} @@ -1659,7 +1639,7 @@ void LLPanelLandObjects::onClickReturnGroupObjects(void* userdata)  	send_parcel_select_objects(parcel->getLocalID(), RT_GROUP); -	char group_name[MAX_STRING];	/*Flawfinder: ignore*/ +	std::string group_name;  	gCacheName->getGroupName(parcel->getGroupID(), group_name);  	LLStringBase<char>::format_map_t args; @@ -1688,7 +1668,7 @@ void LLPanelLandObjects::onClickReturnOtherObjects(void* userdata)  	if (parcel->getIsGroupOwned())  	{ -		char group_name[MAX_STRING];	/*Flawfinder: ignore*/ +		std::string group_name;  		gCacheName->getGroupName(parcel->getGroupID(), group_name);  		args["[NAME]"] = group_name; @@ -1704,13 +1684,8 @@ void LLPanelLandObjects::onClickReturnOtherObjects(void* userdata)  		}  		else  		{ -			char first[DB_FIRST_NAME_BUF_SIZE];	/*Flawfinder: ignore*/ -			char last[DB_LAST_NAME_BUF_SIZE];	/*Flawfinder: ignore*/ -			gCacheName->getName(owner_id, first, last);  			std::string name; -			name += first; -			name += " "; -			name += last; +			gCacheName->getFullName(owner_id, name);  			args["[NAME]"] = name;  			gViewerWindow->alertXml("ReturnObjectsNotOwnedByUser", args, callbackReturnOtherObjects, userdata); @@ -1857,7 +1832,7 @@ BOOL LLPanelLandOptions::postBuild()  	}*/ -	mSnapshotCtrl = LLUICtrlFactory::getTexturePickerByName(this, "snapshot_ctrl"); +	mSnapshotCtrl = getChild<LLTextureCtrl>("snapshot_ctrl");  	if (mSnapshotCtrl)  	{  		mSnapshotCtrl->setCommitCallback( onCommitAny ); @@ -1948,7 +1923,7 @@ void LLPanelLandOptions::refresh()  		mSnapshotCtrl->setImageAssetID(LLUUID::null);  		mSnapshotCtrl->setEnabled(FALSE); -		mLocationText->setTextArg("[LANDING]", childGetText("landing_point_none")); +		mLocationText->setTextArg("[LANDING]", getString("landing_point_none"));  		mSetBtn->setEnabled(FALSE);  		mClearBtn->setEnabled(FALSE); @@ -1995,13 +1970,13 @@ void LLPanelLandOptions::refresh()  		mPushRestrictionCtrl->set( parcel->getRestrictPushObject() );  		if(parcel->getRegionPushOverride())  		{ -			mPushRestrictionCtrl->setLabel(childGetText("push_restrict_region_text")); +			mPushRestrictionCtrl->setLabel(getString("push_restrict_region_text"));  			mPushRestrictionCtrl->setEnabled(false);  			mPushRestrictionCtrl->set(TRUE);  		}  		else  		{ -			mPushRestrictionCtrl->setLabel(childGetText("push_restrict_text")); +			mPushRestrictionCtrl->setLabel(getString("push_restrict_text"));  			mPushRestrictionCtrl->setEnabled(can_change_options);  		} @@ -2025,7 +2000,7 @@ void LLPanelLandOptions::refresh()  		LLVector3 pos = parcel->getUserLocation();  		if (pos.isExactlyZero())  		{ -			mLocationText->setTextArg("[LANDING]", childGetText("landing_point_none")); +			mLocationText->setTextArg("[LANDING]", getString("landing_point_none"));  		}  		else  		{ @@ -2245,11 +2220,11 @@ BOOL LLPanelLandAccess::postBuild()  	childSetAction("add_banned", onClickAddBanned, this);  	childSetAction("remove_banned", onClickRemoveBanned, this); -	mListAccess = LLUICtrlFactory::getNameListByName(this, "AccessList"); +	mListAccess = getChild<LLNameListCtrl>("AccessList");  	if (mListAccess)  		mListAccess->sortByColumn(0, TRUE); // ascending -	mListBanned = LLUICtrlFactory::getNameListByName(this, "BannedList"); +	mListBanned = getChild<LLNameListCtrl>("BannedList");  	if (mListBanned)  		mListBanned->sortByColumn(0, TRUE); // ascending @@ -2280,9 +2255,9 @@ void LLPanelLandAccess::refresh()  		childSetValue("public_access", public_access );  		childSetValue("GroupCheck", use_group ); -		char group_name[MAX_STRING];	/*Flawfinder: ignore*/ +		std::string group_name;  		gCacheName->getGroupName(parcel->getGroupID(), group_name); -		childSetLabelArg("GroupCheck", "[GROUP]", LLString(group_name) ); +		childSetLabelArg("GroupCheck", "[GROUP]", group_name );  		// Allow list  		{ @@ -2503,13 +2478,12 @@ void LLPanelLandAccess::refresh_ui()  void LLPanelLandAccess::refreshNames()  {  	LLParcel* parcel = mParcel->getParcel(); -	char group_name[DB_GROUP_NAME_BUF_SIZE];		/*Flawfinder: ignore*/ -	group_name[0] = '\0'; +	std::string group_name;  	if(parcel)  	{  		gCacheName->getGroupName(parcel->getGroupID(), group_name);  	} -	childSetLabelArg("GroupCheck", "[GROUP]", LLString(group_name)); +	childSetLabelArg("GroupCheck", "[GROUP]", group_name);  } @@ -2561,7 +2535,7 @@ void LLPanelLandAccess::onCommitAny(LLUICtrl *ctrl, void *userdata)  	BOOL use_access_group = self->childGetValue("GroupCheck").asBoolean();  	if (use_access_group)  	{ -		char group_name[MAX_STRING];	/*Flawfinder: ignore*/ +		std::string group_name;  		if (!gCacheName->getGroupName(parcel->getGroupID(), group_name))  		{  			use_access_group = FALSE; @@ -2738,35 +2712,35 @@ void LLPanelLandCovenant::refresh()  	LLViewerRegion* region = gParcelMgr->getSelectionRegion();  	if(!region) return; -	LLTextBox* region_name = (LLTextBox*)getChildByName("region_name_text"); +	LLTextBox* region_name = getChild<LLTextBox>("region_name_text");  	if (region_name)  	{  		region_name->setText(region->getName());  	} -	LLTextBox* resellable_clause = (LLTextBox*)getChildByName("resellable_clause"); +	LLTextBox* resellable_clause = getChild<LLTextBox>("resellable_clause");  	if (resellable_clause)  	{  		if (region->getRegionFlags() & REGION_FLAGS_BLOCK_LAND_RESELL)  		{ -			resellable_clause->setText(childGetText("can_not_resell")); +			resellable_clause->setText(getString("can_not_resell"));  		}  		else  		{ -			resellable_clause->setText(childGetText("can_resell")); +			resellable_clause->setText(getString("can_resell"));  		}  	} -	LLTextBox* changeable_clause = (LLTextBox*)getChildByName("changeable_clause"); +	LLTextBox* changeable_clause = getChild<LLTextBox>("changeable_clause");  	if (changeable_clause)  	{  		if (region->getRegionFlags() & REGION_FLAGS_ALLOW_PARCEL_CHANGES)  		{ -			changeable_clause->setText(childGetText("can_change")); +			changeable_clause->setText(getString("can_change"));  		}  		else  		{ -			changeable_clause->setText(childGetText("can_not_change")); +			changeable_clause->setText(getString("can_not_change"));  		}  	} @@ -2785,7 +2759,7 @@ void LLPanelLandCovenant::updateCovenantText(const std::string &string)  	LLPanelLandCovenant* self = LLFloaterLand::getCurrentPanelLandCovenant();  	if (self)  	{ -		LLViewerTextEditor* editor = (LLViewerTextEditor*)self->getChildByName("covenant_editor"); +		LLViewerTextEditor* editor = self->getChild<LLViewerTextEditor>("covenant_editor");  		if (editor)  		{  			editor->setHandleEditKeysDirectly(TRUE); @@ -2800,7 +2774,7 @@ void LLPanelLandCovenant::updateEstateName(const std::string& name)  	LLPanelLandCovenant* self = LLFloaterLand::getCurrentPanelLandCovenant();  	if (self)  	{ -		LLTextBox* editor = (LLTextBox*)self->getChildByName("estate_name_text"); +		LLTextBox* editor = self->getChild<LLTextBox>("estate_name_text");  		if (editor) editor->setText(name);  	}  } @@ -2811,7 +2785,7 @@ void LLPanelLandCovenant::updateLastModified(const std::string& text)  	LLPanelLandCovenant* self = LLFloaterLand::getCurrentPanelLandCovenant();  	if (self)  	{ -		LLTextBox* editor = (LLTextBox*)self->getChildByName("covenant_timestamp_text"); +		LLTextBox* editor = self->getChild<LLTextBox>("covenant_timestamp_text");  		if (editor) editor->setText(text);  	}  } @@ -2822,7 +2796,7 @@ void LLPanelLandCovenant::updateEstateOwnerName(const std::string& name)  	LLPanelLandCovenant* self = LLFloaterLand::getCurrentPanelLandCovenant();  	if (self)  	{ -		LLTextBox* editor = (LLTextBox*)self->getChildByName("estate_owner_text"); +		LLTextBox* editor = self->getChild<LLTextBox>("estate_owner_text");  		if (editor) editor->setText(name);  	}  } diff --git a/indra/newview/llfloaterland.h b/indra/newview/llfloaterland.h index e504e27f21..38d58fabfe 100644 --- a/indra/newview/llfloaterland.h +++ b/indra/newview/llfloaterland.h @@ -68,8 +68,9 @@ class LLPanelLandRenters;  class LLPanelLandCovenant;  class LLFloaterLand -:	public LLFloater, public LLUISingleton<LLFloaterLand> +:	public LLFloater, public LLUISingleton<LLFloaterLand, VisibilityPolicy<LLFloater> >  { +	friend class LLUISingleton<LLFloaterLand, VisibilityPolicy<LLFloater> >;  public:  	static void refreshAll(); @@ -82,7 +83,6 @@ public:  	virtual BOOL postBuild();  protected: -	friend class LLUISingleton<LLFloaterLand>;  	// Does its own instance management, so clients not allowed  	// to allocate or destroy. @@ -113,7 +113,7 @@ protected:  	LLPanelLandAccess*		mPanelAccess;  	LLPanelLandCovenant*	mPanelCovenant; -	LLHandle<LLParcelSelection>	mParcel; +	LLSafeHandle<LLParcelSelection>	mParcel;  public:  	// When closing the dialog, we want to deselect the land.  But when @@ -128,7 +128,7 @@ class LLPanelLandGeneral  :	public LLPanel  {  public: -	LLPanelLandGeneral(LLHandle<LLParcelSelection>& parcelp); +	LLPanelLandGeneral(LLSafeHandle<LLParcelSelection>& parcelp);  	virtual ~LLPanelLandGeneral();  	void refresh();  	void refreshNames(); @@ -220,16 +220,16 @@ protected:  	LLButton*		mBtnBuyPass;  	LLButton* mBtnStartAuction; -	LLHandle<LLParcelSelection>&	mParcel; +	LLSafeHandle<LLParcelSelection>&	mParcel; -	static LLViewHandle sBuyPassDialogHandle; +	static LLHandle<LLFloater> sBuyPassDialogHandle;  };  class LLPanelLandObjects  :	public LLPanel  {  public: -	LLPanelLandObjects(LLHandle<LLParcelSelection>& parcelp); +	LLPanelLandObjects(LLSafeHandle<LLParcelSelection>& parcelp);  	virtual ~LLPanelLandObjects();  	void refresh();  	virtual void draw(); @@ -292,7 +292,7 @@ protected:  	S32				mSelectedCount;  	BOOL			mSelectedIsGroup; -	LLHandle<LLParcelSelection>&	mParcel; +	LLSafeHandle<LLParcelSelection>&	mParcel;  }; @@ -300,7 +300,7 @@ class LLPanelLandOptions  :	public LLPanel  {  public: -	LLPanelLandOptions(LLHandle<LLParcelSelection>& parcelp); +	LLPanelLandOptions(LLSafeHandle<LLParcelSelection>& parcelp);  	virtual ~LLPanelLandOptions();  	void refresh(); @@ -339,7 +339,7 @@ protected:  	LLCheckBoxCtrl		*mPushRestrictionCtrl;  	LLButton			*mPublishHelpButton; -	LLHandle<LLParcelSelection>&	mParcel; +	LLSafeHandle<LLParcelSelection>&	mParcel;  }; @@ -347,7 +347,7 @@ class LLPanelLandAccess  :	public LLPanel  {  public: -	LLPanelLandAccess(LLHandle<LLParcelSelection>& parcelp); +	LLPanelLandAccess(LLSafeHandle<LLParcelSelection>& parcelp);  	virtual ~LLPanelLandAccess();  	void refresh();  	void refresh_ui(); @@ -369,7 +369,7 @@ protected:  	LLNameListCtrl*		mListAccess;  	LLNameListCtrl*		mListBanned; -	LLHandle<LLParcelSelection>&	mParcel; +	LLSafeHandle<LLParcelSelection>&	mParcel;  }; @@ -377,7 +377,7 @@ class LLPanelLandCovenant  :	public LLPanel  {  public: -	LLPanelLandCovenant(LLHandle<LLParcelSelection>& parcelp); +	LLPanelLandCovenant(LLSafeHandle<LLParcelSelection>& parcelp);  	virtual ~LLPanelLandCovenant();  	virtual BOOL postBuild();  	void refresh(); @@ -387,7 +387,7 @@ public:  	static void updateEstateOwnerName(const std::string& name);  protected: -	LLHandle<LLParcelSelection>&	mParcel; +	LLSafeHandle<LLParcelSelection>&	mParcel;  };  #endif diff --git a/indra/newview/llfloatermap.cpp b/indra/newview/llfloatermap.cpp index ef628be471..4097abc22d 100644 --- a/indra/newview/llfloatermap.cpp +++ b/indra/newview/llfloatermap.cpp @@ -128,7 +128,7 @@ LLFloaterMap::LLFloaterMap(const std::string& name)  				TRUE)	// close button  {  	const S32 LEFT = LLPANEL_BORDER_WIDTH; -	const S32 TOP = mRect.getHeight(); +	const S32 TOP = getRect().getHeight();  	S32 y = 0; @@ -136,7 +136,7 @@ LLFloaterMap::LLFloaterMap(const std::string& name)  	LLRect map_rect(  		LEFT,   		TOP - LLPANEL_BORDER_WIDTH, -		mRect.getWidth() - LLPANEL_BORDER_WIDTH, +		getRect().getWidth() - LLPANEL_BORDER_WIDTH,  		y );  	LLColor4 bg_color = gColors.getColor( "NetMapBackgroundColor" );  	mMap = new LLNetMap("Net Map", map_rect, bg_color); @@ -144,8 +144,7 @@ LLFloaterMap::LLFloaterMap(const std::string& name)  	addChildAtEnd(mMap);  	// Get the drag handle all the way in back -	removeChild(mDragHandle); -	addChildAtEnd(mDragHandle); +	sendChildToBack(getDragHandle());  	setIsChrome(TRUE);  } @@ -191,14 +190,14 @@ void LLFloaterMap::draw()  		if( gAgent.cameraMouselook())  		{  			setMouseOpaque(FALSE); -			mDragHandle->setMouseOpaque(FALSE); +			getDragHandle()->setMouseOpaque(FALSE);  			drawChild(mMap);  		}  		else  		{  			setMouseOpaque(TRUE); -			mDragHandle->setMouseOpaque(TRUE); +			getDragHandle()->setMouseOpaque(TRUE);  			LLFloater::draw();  		} diff --git a/indra/newview/llfloaternamedesc.cpp b/indra/newview/llfloaternamedesc.cpp index d4c9478fdf..1cac8fd4c5 100644 --- a/indra/newview/llfloaternamedesc.cpp +++ b/indra/newview/llfloaternamedesc.cpp @@ -106,10 +106,10 @@ BOOL LLFloaterNameDesc::postBuild()  	setTitle(mFilename); -	centerWindow(); +	centerWithin(gViewerWindow->getRootView()->getRect()); -	S32 line_width = mRect.getWidth() - 2 * PREVIEW_HPAD; -	S32 y = mRect.getHeight() - PREVIEW_LINE_HEIGHT; +	S32 line_width = getRect().getWidth() - 2 * PREVIEW_HPAD; +	S32 y = getRect().getHeight() - PREVIEW_LINE_HEIGHT;  	r.setLeftTopAndSize( PREVIEW_HPAD, y, line_width, PREVIEW_LINE_HEIGHT );  	y -= PREVIEW_LINE_HEIGHT; @@ -158,19 +158,6 @@ LLFloaterNameDesc::~LLFloaterNameDesc()  	gFocusMgr.releaseFocusIfNeeded( this ); // calls onCommit()  } -//----------------------------------------------------------------------------- -// centerWindow() -//----------------------------------------------------------------------------- -void LLFloaterNameDesc::centerWindow() -{ -	LLRect window_rect = gViewerWindow->getRootView()->getRect(); - -	S32 dialog_left = window_rect.mLeft + (window_rect.getWidth() - mRect.getWidth()) / 2; -	S32 dialog_bottom = window_rect.mBottom + (window_rect.getHeight() - mRect.getHeight()) / 2; - -	translate( dialog_left - mRect.mLeft, dialog_bottom - mRect.mBottom ); -} -  // Sub-classes should override this function if they allow editing  //-----------------------------------------------------------------------------  // onCommit() diff --git a/indra/newview/llfloaternamedesc.h b/indra/newview/llfloaternamedesc.h index 2b0ec9b78a..8c968329c2 100644 --- a/indra/newview/llfloaternamedesc.h +++ b/indra/newview/llfloaternamedesc.h @@ -50,7 +50,6 @@ public:  	static void			doCommit(class LLUICtrl *, void* userdata);  protected:  	virtual void		onCommit(); -	virtual void	    centerWindow();  protected:  	BOOL        mIsAudio; diff --git a/indra/newview/llfloateropenobject.h b/indra/newview/llfloateropenobject.h index cd656bccaa..76d9291d47 100644 --- a/indra/newview/llfloateropenobject.h +++ b/indra/newview/llfloateropenobject.h @@ -73,7 +73,7 @@ protected:  	static LLFloaterOpenObject* sInstance;  	LLPanelInventory*	mPanelInventory; -	LLHandle<LLObjectSelection> mObjectSelection; +	LLSafeHandle<LLObjectSelection> mObjectSelection;  	BOOL mDirty;  }; diff --git a/indra/newview/llfloaterpostcard.cpp b/indra/newview/llfloaterpostcard.cpp index 1f5ebec684..044c8c9d90 100644 --- a/indra/newview/llfloaterpostcard.cpp +++ b/indra/newview/llfloaterpostcard.cpp @@ -157,9 +157,9 @@ void LLFloaterPostcard::draw()  	LLGLSUIDefault gls_ui;  	LLFloater::draw(); -	if(getVisible() && !mMinimized && mViewerImage.notNull() && mJPEGImage.notNull())  +	if(getVisible() && !isMinimized() && mViewerImage.notNull() && mJPEGImage.notNull())   	{ -		LLRect rect(mRect); +		LLRect rect(getRect());  		// first set the max extents of our preview  		rect.translate(-rect.mLeft, -rect.mBottom); @@ -352,14 +352,14 @@ void LLFloaterPostcard::missingSubjMsgAlertCallback(S32 option, void* data)  			if((self->childGetValue("subject_form").asString()).empty())  			{  				// Stuff the subject back into the form. -				self->childSetValue("subject_form", self->childGetText("default_subject")); +				self->childSetValue("subject_form", self->getString("default_subject"));  			}  			if(!self->mHasFirstMsgFocus)  			{  				// The user never switched focus to the messagee window.   				// Using the default string. -				self->childSetValue("msg_form", self->childGetText("default_message")); +				self->childSetValue("msg_form", self->getString("default_message"));  			}  			self->sendPostcard(); diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index 060952667b..cac2d0a0b6 100644 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -127,7 +127,7 @@ S32 pref_min_height()  } -LLPreferenceCore::LLPreferenceCore(LLTabContainerCommon* tab_container, LLButton * default_btn) : +LLPreferenceCore::LLPreferenceCore(LLTabContainer* tab_container, LLButton * default_btn) :  	mTabContainer(tab_container),  	mGeneralPanel(NULL),  	mInputPanel(NULL), @@ -314,7 +314,7 @@ void LLPreferenceCore::cancel()  // static  void LLPreferenceCore::onTabChanged(void* user_data, bool from_click)  { -	LLTabContainerCommon* self = (LLTabContainerCommon*)user_data; +	LLTabContainer* self = (LLTabContainer*)user_data;  	gSavedSettings.setS32("LastPrefTab", self->getCurrentPanelIndex());  } @@ -363,7 +363,7 @@ BOOL LLFloaterPreference::postBuild()  	mPreferenceCore = new LLPreferenceCore(  		LLUICtrlFactory::getTabContainerByName(this, "pref core"), -		static_cast<LLButton *>(getChildByName("OK")) +		getChild<LLButton>("OK")  		);  	sInstance = this; diff --git a/indra/newview/llfloaterpreference.h b/indra/newview/llfloaterpreference.h index bf554766b7..7396467d8c 100644 --- a/indra/newview/llfloaterpreference.h +++ b/indra/newview/llfloaterpreference.h @@ -62,13 +62,13 @@ class LLPreferenceCore  {  public: -	LLPreferenceCore(LLTabContainerCommon* tab_container, LLButton * default_btn); +	LLPreferenceCore(LLTabContainer* tab_container, LLButton * default_btn);  	~LLPreferenceCore();  	void apply();  	void cancel(); -	LLTabContainerCommon* getTabContainer() { return mTabContainer; } +	LLTabContainer* getTabContainer() { return mTabContainer; }  	void setPersonalInfo(  		const char* visibility, @@ -78,7 +78,7 @@ public:  	static void onTabChanged(void* user_data, bool from_click);  private: -	LLTabContainerCommon	*mTabContainer; +	LLTabContainer	*mTabContainer;  	LLPanelGeneral	        *mGeneralPanel;  	LLPanelInput			*mInputPanel;  	LLPanelNetwork	        *mNetworkPanel; diff --git a/indra/newview/llfloaterproperties.cpp b/indra/newview/llfloaterproperties.cpp index 82f72103f7..ace3eeac66 100644 --- a/indra/newview/llfloaterproperties.cpp +++ b/indra/newview/llfloaterproperties.cpp @@ -303,18 +303,13 @@ void LLFloaterProperties::refreshFromItem(LLInventoryItem* item)  	//////////////////  	// CREATOR NAME //  	////////////////// -	char first_name[DB_FIRST_NAME_BUF_SIZE];		/* Flawfinder: ignore */ -	char last_name[DB_LAST_NAME_BUF_SIZE];		/* Flawfinder: ignore */  	if(!gCacheName) return;  	if(!gAgent.getRegion()) return;  	if (item->getCreatorUUID().notNull())  	{ -		gCacheName->getName(item->getCreatorUUID(), first_name, last_name); -		LLString name(first_name); -		name.append(1, ' '); -		name.append(last_name); - +		std::string name; +		gCacheName->getFullName(item->getCreatorUUID(), name);  		childSetEnabled("BtnCreator",TRUE);  		childSetEnabled("LabelCreatorTitle",TRUE);  		childSetEnabled("LabelCreatorName",TRUE); @@ -325,7 +320,7 @@ void LLFloaterProperties::refreshFromItem(LLInventoryItem* item)  		childSetEnabled("BtnCreator",FALSE);  		childSetEnabled("LabelCreatorTitle",FALSE);  		childSetEnabled("LabelCreatorName",FALSE); -		childSetText("LabelCreatorName",childGetText("unknown")); +		childSetText("LabelCreatorName",getString("unknown"));  	}  	//////////////// @@ -336,16 +331,11 @@ void LLFloaterProperties::refreshFromItem(LLInventoryItem* item)  		LLString name;  		if (perm.isGroupOwned())  		{ -			char group_name[DB_GROUP_NAME_BUF_SIZE];		/* Flawfinder: ignore */ -			gCacheName->getGroupName(perm.getGroup(), group_name); -			name.assign(group_name); +			gCacheName->getGroupName(perm.getGroup(), name);  		}  		else  		{ -			gCacheName->getName(perm.getOwner(), first_name, last_name); -			name.assign(first_name); -			name.append(1, ' '); -			name.append(last_name); +			gCacheName->getFullName(perm.getOwner(), name);  		}  		childSetEnabled("BtnOwner",TRUE);  		childSetEnabled("LabelOwnerTitle",TRUE); @@ -357,7 +347,7 @@ void LLFloaterProperties::refreshFromItem(LLInventoryItem* item)  		childSetEnabled("BtnOwner",FALSE);  		childSetEnabled("LabelOwnerTitle",FALSE);  		childSetEnabled("LabelOwnerName",FALSE); -		childSetText("LabelOwnerName",childGetText("public")); +		childSetText("LabelOwnerName",getString("public"));  	}  	////////////////// @@ -368,7 +358,7 @@ void LLFloaterProperties::refreshFromItem(LLInventoryItem* item)  	time_t time_utc = (time_t)item->getCreationDate();  	if (0 == time_utc)  	{ -		childSetText("LabelAcquiredDate",childGetText("unknown")); +		childSetText("LabelAcquiredDate",getString("unknown"));  	}  	else  	{ @@ -380,11 +370,11 @@ void LLFloaterProperties::refreshFromItem(LLInventoryItem* item)  	///////////////////////  	if(can_agent_manipulate)  	{ -		childSetText("OwnerLabel",childGetText("you_can")); +		childSetText("OwnerLabel",getString("you_can"));  	}  	else  	{ -		childSetText("OwnerLabel",childGetText("owner_can")); +		childSetText("OwnerLabel",getString("owner_can"));  	}  	U32 base_mask		= perm.getMaskBase(); diff --git a/indra/newview/llfloaterregioninfo.cpp b/indra/newview/llfloaterregioninfo.cpp index c3ded7de4f..4a3b2192c0 100644 --- a/indra/newview/llfloaterregioninfo.cpp +++ b/indra/newview/llfloaterregioninfo.cpp @@ -214,7 +214,6 @@ BOOL LLFloaterRegionInfo::postBuild()  LLFloaterRegionInfo::~LLFloaterRegionInfo()  { -	sInstance = NULL;  }  void LLFloaterRegionInfo::onOpen() @@ -248,14 +247,17 @@ void LLFloaterRegionInfo::requestRegionInfo()  void LLFloaterRegionInfo::processEstateOwnerRequest(LLMessageSystem* msg,void**)  {  	static LLDispatcher dispatch; -	if(!sInstance) return; - +	if(!findInstance()) +	{ +		return; +	} +	  	if (!estate_dispatch_initialized)  	{  		LLPanelEstateInfo::initDispatch(dispatch);  	} -	LLTabContainerCommon* tab = LLUICtrlFactory::getTabContainerByName(sInstance, "region_panels"); +	LLTabContainer* tab = LLUICtrlFactory::getTabContainerByName(findInstance(), "region_panels");  	if (!tab) return;  	LLPanelEstateInfo* panel = (LLPanelEstateInfo*)LLUICtrlFactory::getPanelByName(tab, "Estate"); @@ -283,8 +285,12 @@ void LLFloaterRegionInfo::processRegionInfo(LLMessageSystem* msg)  	LLPanel* panel;  	llinfos << "LLFloaterRegionInfo::processRegionInfo" << llendl; -	if(!sInstance) return; -	LLTabContainerCommon* tab = LLUICtrlFactory::getTabContainerByName(sInstance, "region_panels"); +	if(!findInstance()) +	{ +		return; +	} +	 +	LLTabContainer* tab = LLUICtrlFactory::getTabContainerByName(findInstance(), "region_panels");  	if(!tab) return;  	// extract message @@ -361,7 +367,7 @@ void LLFloaterRegionInfo::processRegionInfo(LLMessageSystem* msg)  	panel->childSetValue("sun_hour_slider", LLSD(sun_hour));  	panel->childSetEnabled("sun_hour_slider", allow_modify && !use_estate_sun); -	sInstance->refreshFromRegion( gAgent.getRegion() ); +	getInstance()->refreshFromRegion( gAgent.getRegion() );  }  // static @@ -369,7 +375,7 @@ LLPanelEstateInfo* LLFloaterRegionInfo::getPanelEstate()  {  	LLFloaterRegionInfo* floater = LLFloaterRegionInfo::getInstance();  	if (!floater) return NULL; -	LLTabContainerCommon* tab = LLUICtrlFactory::getTabContainerByName(floater, "region_panels"); +	LLTabContainer* tab = LLUICtrlFactory::getTabContainerByName(floater, "region_panels");  	if (!tab) return NULL;  	LLPanelEstateInfo* panel = (LLPanelEstateInfo*)LLUICtrlFactory::getPanelByName(tab,"Estate");  	return panel; @@ -380,7 +386,7 @@ LLPanelEstateCovenant* LLFloaterRegionInfo::getPanelCovenant()  {  	LLFloaterRegionInfo* floater = LLFloaterRegionInfo::getInstance();  	if (!floater) return NULL; -	LLTabContainerCommon* tab = LLUICtrlFactory::getTabContainerByName(floater, "region_panels"); +	LLTabContainer* tab = LLUICtrlFactory::getTabContainerByName(floater, "region_panels");  	if (!tab) return NULL;  	LLPanelEstateCovenant* panel = (LLPanelEstateCovenant*)LLUICtrlFactory::getPanelByName(tab, "Covenant");  	return panel; @@ -1249,7 +1255,7 @@ BOOL LLPanelRegionTerrainInfo::sendUpdate()  	LLFloaterRegionInfo* floater = LLFloaterRegionInfo::getInstance();  	if (!floater) return true; -	LLTabContainerCommon* tab = LLUICtrlFactory::getTabContainerByName(floater, "region_panels"); +	LLTabContainer* tab = LLUICtrlFactory::getTabContainerByName(floater, "region_panels");  	if (!tab) return true;  	LLPanelEstateInfo* panel = (LLPanelEstateInfo*)LLUICtrlFactory::getPanelByName(tab, "Estate"); @@ -2543,35 +2549,35 @@ LLPanelEstateCovenant::LLPanelEstateCovenant()  // virtual   bool LLPanelEstateCovenant::refreshFromRegion(LLViewerRegion* region)  { -	LLTextBox* region_name = (LLTextBox*)getChildByName("region_name_text"); +	LLTextBox* region_name = getChild<LLTextBox>("region_name_text");  	if (region_name)  	{  		region_name->setText(region->getName());  	} -	LLTextBox* resellable_clause = (LLTextBox*)getChildByName("resellable_clause"); +	LLTextBox* resellable_clause = getChild<LLTextBox>("resellable_clause");  	if (resellable_clause)  	{  		if (region->getRegionFlags() & REGION_FLAGS_BLOCK_LAND_RESELL)  		{ -			resellable_clause->setText(childGetText("can_not_resell")); +			resellable_clause->setText(getString("can_not_resell"));  		}  		else  		{ -			resellable_clause->setText(childGetText("can_resell")); +			resellable_clause->setText(getString("can_resell"));  		}  	} -	LLTextBox* changeable_clause = (LLTextBox*)getChildByName("changeable_clause"); +	LLTextBox* changeable_clause = getChild<LLTextBox>("changeable_clause");  	if (changeable_clause)  	{  		if (region->getRegionFlags() & REGION_FLAGS_ALLOW_PARCEL_CHANGES)  		{ -			changeable_clause->setText(childGetText("can_change")); +			changeable_clause->setText(getString("can_change"));  		}  		else  		{ -			changeable_clause->setText(childGetText("can_not_change")); +			changeable_clause->setText(getString("can_not_change"));  		}  	} @@ -2597,12 +2603,12 @@ bool LLPanelEstateCovenant::estateUpdate(LLMessageSystem* msg)  BOOL LLPanelEstateCovenant::postBuild()  {  	initHelpBtn("covenant_help",		"HelpEstateCovenant"); -	mEstateNameText = (LLTextBox*)getChildByName("estate_name_text"); -	mEstateOwnerText = (LLTextBox*)getChildByName("estate_owner_text"); -	mLastModifiedText = (LLTextBox*)getChildByName("covenant_timestamp_text"); -	mEditor = (LLViewerTextEditor*)getChildByName("covenant_editor"); +	mEstateNameText = getChild<LLTextBox>("estate_name_text"); +	mEstateOwnerText = getChild<LLTextBox>("estate_owner_text"); +	mLastModifiedText = getChild<LLTextBox>("covenant_timestamp_text"); +	mEditor = getChild<LLViewerTextEditor>("covenant_editor");  	if (mEditor) mEditor->setHandleEditKeysDirectly(TRUE); -	LLButton* reset_button = (LLButton*)getChildByName("reset_covenant"); +	LLButton* reset_button = getChild<LLButton>("reset_covenant");  	reset_button->setEnabled(gAgent.canManageEstate());  	reset_button->setClickedCallback(LLPanelEstateCovenant::resetCovenantID, NULL); diff --git a/indra/newview/llfloaterregioninfo.h b/indra/newview/llfloaterregioninfo.h index 96cf8af667..cdda7e532c 100644 --- a/indra/newview/llfloaterregioninfo.h +++ b/indra/newview/llfloaterregioninfo.h @@ -58,9 +58,9 @@ class LLPanelRegionTerrainInfo;  class LLPanelEstateInfo;  class LLPanelEstateCovenant; -class LLFloaterRegionInfo : public LLFloater, public LLUISingleton<LLFloaterRegionInfo> +class LLFloaterRegionInfo : public LLFloater, public LLFloaterSingleton<LLFloaterRegionInfo>  { -	friend class LLUISingleton<LLFloaterRegionInfo>; +	friend class LLUISingleton<LLFloaterRegionInfo, VisibilityPolicy<LLFloater> >;  public:  	~LLFloaterRegionInfo(); @@ -90,7 +90,7 @@ protected:  	void refreshFromRegion(LLViewerRegion* region);  	// member data -	LLTabContainerCommon* mTab; +	LLTabContainer* mTab;  	typedef std::vector<LLPanelRegionInfo*> info_panels_t;  	info_panels_t mInfoPanels;  	//static S32 sRequestSerial;	// serial # of last EstateOwnerRequest diff --git a/indra/newview/llfloaterreporter.cpp b/indra/newview/llfloaterreporter.cpp index 2da9ed4e14..63d7d7b958 100644 --- a/indra/newview/llfloaterreporter.cpp +++ b/indra/newview/llfloaterreporter.cpp @@ -903,7 +903,7 @@ void LLFloaterReporter::takeScreenshot()  	gImageList.addImage(image_in_list);   	// the texture picker then uses that texture -	LLTexturePicker* texture = LLUICtrlFactory::getTexturePickerByName(this, "screenshot"); +	LLTexturePicker* texture = getChild<LLTextureCtrl>("screenshot");  	if (texture)  	{  		texture->setImageAssetID(mResourceDatap->mAssetInfo.mUuid); diff --git a/indra/newview/llfloaterscriptdebug.cpp b/indra/newview/llfloaterscriptdebug.cpp index 80a686d162..3a17e232b6 100644 --- a/indra/newview/llfloaterscriptdebug.cpp +++ b/indra/newview/llfloaterscriptdebug.cpp @@ -163,14 +163,14 @@ LLFloaterScriptDebugOutput::LLFloaterScriptDebugOutput()  LLFloaterScriptDebugOutput::LLFloaterScriptDebugOutput(const LLUUID& object_id)  : LLFloater("script instance floater", LLRect(0, 200, 200, 0), "Script", TRUE), mObjectID(object_id)  { -	S32 y = mRect.getHeight() - LLFLOATER_HEADER_SIZE - LLFLOATER_VPAD; +	S32 y = getRect().getHeight() - LLFLOATER_HEADER_SIZE - LLFLOATER_VPAD;  	S32 x = LLFLOATER_HPAD;  	// History editor  	// Give it a border on the top  	LLRect history_editor_rect(  		x,  		y, -		mRect.getWidth() - LLFLOATER_HPAD, +		getRect().getWidth() - LLFLOATER_HPAD,  				LLFLOATER_VPAD );  	mHistoryEditor = new LLViewerTextEditor( "Chat History Editor",   										history_editor_rect, S32_MAX, "", LLFontGL::sSansSerif); @@ -186,14 +186,14 @@ void LLFloaterScriptDebugOutput::init(const LLString& title, BOOL resizable,  						BOOL minimizable, BOOL close_btn)  {  	LLFloater::init(title, resizable, min_width, min_height, drag_on_left, minimizable, close_btn); -	S32 y = mRect.getHeight() - LLFLOATER_HEADER_SIZE - LLFLOATER_VPAD; +	S32 y = getRect().getHeight() - LLFLOATER_HEADER_SIZE - LLFLOATER_VPAD;  	S32 x = LLFLOATER_HPAD;  	// History editor  	// Give it a border on the top  	LLRect history_editor_rect(  		x,  		y, -		mRect.getWidth() - LLFLOATER_HPAD, +		getRect().getWidth() - LLFLOATER_HPAD,  				LLFLOATER_VPAD );  	mHistoryEditor = new LLViewerTextEditor( "Chat History Editor",   										history_editor_rect, S32_MAX, "", LLFontGL::sSansSerif); diff --git a/indra/newview/llfloatersellland.cpp b/indra/newview/llfloatersellland.cpp index ffa1e13bf2..f3d8996b6a 100644 --- a/indra/newview/llfloatersellland.cpp +++ b/indra/newview/llfloatersellland.cpp @@ -244,13 +244,7 @@ void LLFloaterSellLandUI::updateParcelInfo()  	if(mSellToBuyer)  	{  		LLString name; -		char firstname[MAX_STRING];		/* Flawfinder: ignore */ -		char lastname[MAX_STRING];		/* Flawfinder: ignore */ -		gCacheName->getName(mAuthorizedBuyer, firstname, lastname); -		name.assign(firstname); -		name.append(" "); -		name.append(lastname); - +		gCacheName->getFullName(mAuthorizedBuyer, name);  		childSetText("sell_to_agent", name);  	}  } diff --git a/indra/newview/llfloatersellland.h b/indra/newview/llfloatersellland.h index 8cada4e579..d8eb5d0a0a 100644 --- a/indra/newview/llfloatersellland.h +++ b/indra/newview/llfloatersellland.h @@ -40,7 +40,7 @@ class LLFloaterSellLand  {  public:  	static void sellLand(LLViewerRegion* region, -						LLHandle<LLParcelSelection> parcel); +						LLSafeHandle<LLParcelSelection> parcel);  };  #endif // LL_LLFLOATERSELLLAND_H diff --git a/indra/newview/llfloatersnapshot.cpp b/indra/newview/llfloatersnapshot.cpp index 31c60d8b2d..d2f3bc7cf5 100644 --- a/indra/newview/llfloatersnapshot.cpp +++ b/indra/newview/llfloatersnapshot.cpp @@ -221,7 +221,7 @@ F32 LLSnapshotLivePreview::getImageAspect()  	}  	F32 image_aspect_ratio = ((F32)mWidth[mCurImageIndex]) / ((F32)mHeight[mCurImageIndex]); -	F32 window_aspect_ratio = ((F32)mRect.getWidth()) / ((F32)mRect.getHeight()); +	F32 window_aspect_ratio = ((F32)getRect().getWidth()) / ((F32)getRect().getHeight());  	if (gSavedSettings.getBOOL("KeepAspectForSnapshot"))  	{ @@ -262,26 +262,26 @@ void LLSnapshotLivePreview::updateSnapshot(BOOL new_snapshot)  	}  	LLRect& rect = mImageRect[mCurImageIndex]; -	rect.set(0, mRect.getHeight(), mRect.getWidth(), 0); +	rect.set(0, getRect().getHeight(), getRect().getWidth(), 0);  	F32 image_aspect_ratio = ((F32)mWidth[mCurImageIndex]) / ((F32)mHeight[mCurImageIndex]); -	F32 window_aspect_ratio = ((F32)mRect.getWidth()) / ((F32)mRect.getHeight()); +	F32 window_aspect_ratio = ((F32)getRect().getWidth()) / ((F32)getRect().getHeight());  	if (gSavedSettings.getBOOL("KeepAspectForSnapshot"))  	{  		if (image_aspect_ratio > window_aspect_ratio)  		{  			// trim off top and bottom -			S32 new_height = llround((F32)mRect.getWidth() / image_aspect_ratio);  -			rect.mBottom += (mRect.getHeight() - new_height) / 2; -			rect.mTop -= (mRect.getHeight() - new_height) / 2; +			S32 new_height = llround((F32)getRect().getWidth() / image_aspect_ratio);  +			rect.mBottom += (getRect().getHeight() - new_height) / 2; +			rect.mTop -= (getRect().getHeight() - new_height) / 2;  		}  		else if (image_aspect_ratio < window_aspect_ratio)  		{  			// trim off left and right -			S32 new_width = llround((F32)mRect.getHeight() * image_aspect_ratio);  -			rect.mLeft += (mRect.getWidth() - new_width) / 2; -			rect.mRight -= (mRect.getWidth() - new_width) / 2; +			S32 new_width = llround((F32)getRect().getHeight() * image_aspect_ratio);  +			rect.mLeft += (getRect().getWidth() - new_width) / 2; +			rect.mRight -= (getRect().getWidth() - new_width) / 2;  		}  	}  } @@ -314,7 +314,7 @@ void LLSnapshotLivePreview::draw()  		    mSnapshotUpToDate)  		{  			LLColor4 bg_color(0.f, 0.f, 0.3f, 0.4f); -			gl_rect_2d(mRect, bg_color); +			gl_rect_2d(getRect(), bg_color);  			LLRect &rect = mImageRect[mCurImageIndex];  			LLRect shadow_rect = mImageRect[mCurImageIndex];  			shadow_rect.stretch(BORDER_WIDTH); @@ -349,7 +349,7 @@ void LLSnapshotLivePreview::draw()  			glPopMatrix();  			glColor4f(1.f, 1.f, 1.f, mFlashAlpha); -			gl_rect_2d(mRect); +			gl_rect_2d(getRect());  			if (mNeedsFlash)  			{  				if (mFlashAlpha < 1.f) @@ -470,7 +470,7 @@ void LLSnapshotLivePreview::draw()  				glPushMatrix();  				{  					LLRect& rect = mImageRect[old_image_index]; -					glTranslatef((F32)rect.mLeft, (F32)rect.mBottom - llround(mRect.getHeight() * 2.f * (fall_interp * fall_interp)), 0.f); +					glTranslatef((F32)rect.mLeft, (F32)rect.mBottom - llround(getRect().getHeight() * 2.f * (fall_interp * fall_interp)), 0.f);  					glRotatef(-45.f * fall_interp, 0.f, 0.f, 1.f);  					glBegin(GL_QUADS);  					{ @@ -497,7 +497,7 @@ void LLSnapshotLivePreview::draw()  /*virtual*/   void LLSnapshotLivePreview::reshape(S32 width, S32 height, BOOL called_from_parent)  { -	LLRect old_rect = mRect; +	LLRect old_rect = getRect();  	LLView::reshape(width, height, called_from_parent);  	if (old_rect.getWidth() != width || old_rect.getHeight() != height)  	{ @@ -742,7 +742,7 @@ public:  	static void updateControls(LLFloaterSnapshot* floater);  	static void updateLayout(LLFloaterSnapshot* floater); -	static LLViewHandle sPreviewHandle; +	static LLHandle<LLView> sPreviewHandle;  private:  	static LLSnapshotLivePreview::ESnapshotType getTypeIndex(LLFloaterSnapshot* floater); @@ -757,12 +757,12 @@ public:  };  // static -LLViewHandle LLFloaterSnapshot::Impl::sPreviewHandle; +LLHandle<LLView> LLFloaterSnapshot::Impl::sPreviewHandle;  // static  LLSnapshotLivePreview* LLFloaterSnapshot::Impl::getPreviewView(LLFloaterSnapshot *floater)  { -	LLSnapshotLivePreview* previewp = (LLSnapshotLivePreview*)LLView::getViewByHandle(sPreviewHandle); +	LLSnapshotLivePreview* previewp = (LLSnapshotLivePreview*)sPreviewHandle.get();  	return previewp;  } @@ -817,7 +817,7 @@ void LLFloaterSnapshot::Impl::updateLayout(LLFloaterSnapshot* floaterp)  		floaterp->getParent()->setMouseOpaque(TRUE);  		// shrink to smaller layout -		floaterp->reshape(floaterp->mRect.getWidth(), 410); +		floaterp->reshape(floaterp->getRect().getWidth(), 410);  		// can see and interact with fullscreen preview now  		if (previewp) @@ -850,7 +850,7 @@ void LLFloaterSnapshot::Impl::updateLayout(LLFloaterSnapshot* floaterp)  	else // turning off freeze frame mode  	{  		floaterp->getParent()->setMouseOpaque(FALSE); -		floaterp->reshape(floaterp->mRect.getWidth(), 510); +		floaterp->reshape(floaterp->getRect().getWidth(), 510);  		if (previewp)  		{  			previewp->setVisible(FALSE); @@ -1242,8 +1242,8 @@ LLFloaterSnapshot::~LLFloaterSnapshot()  {  	if (sInstance == this)  	{ -		delete LLView::getViewByHandle(Impl::sPreviewHandle); -		Impl::sPreviewHandle = LLViewHandle::sDeadHandle; +		LLView::deleteViewByHandle(Impl::sPreviewHandle); +		Impl::sPreviewHandle = LLHandle<LLView>();  		sInstance = NULL;  	} @@ -1315,7 +1315,7 @@ BOOL LLFloaterSnapshot::postBuild()  	sInstance->getRootView()->addChild(previewp);  	sInstance->getRootView()->addChild(gSnapshotFloaterView); -	Impl::sPreviewHandle = previewp->mViewHandle; +	Impl::sPreviewHandle = previewp->getHandle();  	impl.updateControls(this); @@ -1332,7 +1332,7 @@ void LLFloaterSnapshot::draw()  		return;  	} -	if(getVisible() && !mMinimized) +	if(getVisible() && !isMinimized())  	{  		if (previewp && previewp->getDataSize() > 0)  		{ @@ -1359,7 +1359,7 @@ void LLFloaterSnapshot::draw()  			}  			else  			{ -				childSetTextArg("file_size_label", "[SIZE]", childGetText("unknwon")); +				childSetTextArg("file_size_label", "[SIZE]", getString("unknown"));  				childSetColor("file_size_label", gColors.getColor( "LabelTextColor" ));  			}  			childSetEnabled("upload_btn", previewp->getSnapshotUpToDate()); @@ -1386,7 +1386,7 @@ void LLFloaterSnapshot::draw()  	{  		F32 aspect = previewp->getImageAspect();  		// UI size for thumbnail -		S32 max_width = mRect.getWidth() - 20; +		S32 max_width = getRect().getWidth() - 20;  		S32 max_height = 90;  		S32 img_render_width = 0; @@ -1414,7 +1414,7 @@ void LLFloaterSnapshot::draw()  				glScalef(llmin(1.f, (F32)image_width / (F32)previewp->getCurrentImage()->getWidth()), llmin(1.f, (F32)image_height / (F32)previewp->getCurrentImage()->getHeight()), 1.f);  			}  			glMatrixMode(GL_MODELVIEW); -			gl_draw_scaled_image((mRect.getWidth() - img_render_width) / 2, 35 + (max_height - img_render_height) / 2, img_render_width, img_render_height, previewp->getCurrentImage(), LLColor4::white); +			gl_draw_scaled_image((getRect().getWidth() - img_render_width) / 2, 35 + (max_height - img_render_height) / 2, img_render_width, img_render_height, previewp->getCurrentImage(), LLColor4::white);  		}  		glMatrixMode(GL_TEXTURE);  		glPopMatrix(); diff --git a/indra/newview/llfloatertelehub.h b/indra/newview/llfloatertelehub.h index 5b9821ebe9..dd7631f6dd 100644 --- a/indra/newview/llfloatertelehub.h +++ b/indra/newview/llfloatertelehub.h @@ -75,7 +75,7 @@ private:  	S32 mNumSpawn;  	LLVector3 mSpawnPointPos[MAX_SPAWNPOINTS_PER_TELEHUB]; -	LLHandle<LLObjectSelection> mObjectSelection; +	LLSafeHandle<LLObjectSelection> mObjectSelection;  	static LLFloaterTelehub* sInstance;  }; diff --git a/indra/newview/llfloatertools.cpp b/indra/newview/llfloatertools.cpp index d03ce373cc..8879be2e51 100644 --- a/indra/newview/llfloatertools.cpp +++ b/indra/newview/llfloatertools.cpp @@ -181,7 +181,7 @@ BOOL	LLFloaterTools::postBuild()  	// make sounds on visibility changes.  	setSoundFlags(LLView::SILENT); -	mDragHandle->setEnabled( !gSavedSettings.getBOOL("ToolboxAutoMove") ); +	getDragHandle()->setEnabled( !gSavedSettings.getBOOL("ToolboxAutoMove") );  	LLRect rect;  	mBtnFocus = LLUICtrlFactory::getButtonByName(this,"button focus");//btn; @@ -317,14 +317,14 @@ BOOL	LLFloaterTools::postBuild()  		mTab->selectFirstTab();  	} -	mStatusText["rotate"] = childGetText("status_rotate"); -	mStatusText["scale"] = childGetText("status_scale"); -	mStatusText["move"] = childGetText("status_move"); -	mStatusText["modifyland"] = childGetText("status_modifyland"); -	mStatusText["camera"] = childGetText("status_camera"); -	mStatusText["grab"] = childGetText("status_grab"); -	mStatusText["place"] = childGetText("status_place"); -	mStatusText["selectland"] = childGetText("status_selectland"); +	mStatusText["rotate"] = getString("status_rotate"); +	mStatusText["scale"] = getString("status_scale"); +	mStatusText["move"] = getString("status_move"); +	mStatusText["modifyland"] = getString("status_modifyland"); +	mStatusText["camera"] = getString("status_camera"); +	mStatusText["grab"] = getString("status_grab"); +	mStatusText["place"] = getString("status_place"); +	mStatusText["selectland"] = getString("status_selectland");  	return TRUE;  } @@ -396,7 +396,7 @@ LLFloaterTools::LLFloaterTools()  	mTabLand(NULL),  	mDirty(TRUE)  { -	mAutoFocus = FALSE; +	setAutoFocus(FALSE);  	LLCallbackMap::map_t factory_map;  	factory_map["General"] = LLCallbackMap(createPanelPermissions, this);//LLPanelPermissions  	factory_map["Object"] = LLCallbackMap(createPanelObject, this);//LLPanelObject @@ -442,7 +442,7 @@ void LLFloaterTools::setStatusText(const std::string& text)  void LLFloaterTools::refresh()  { -	const S32 INFO_WIDTH = mRect.getWidth(); +	const S32 INFO_WIDTH = getRect().getWidth();  	const S32 INFO_HEIGHT = 384;  	LLRect object_info_rect(0, 0, INFO_WIDTH, -INFO_HEIGHT);  	BOOL all_volume = gSelectMgr->selectionAllPCode( LL_PCODE_VOLUME ); @@ -611,19 +611,19 @@ void LLFloaterTools::updatePopup(LLCoordGL center, MASK mask)  		switch (mObjectSelection->getSelectType())  		{  		case SELECT_TYPE_HUD: -		  mComboGridMode->add(childGetText("grid_screen_text")); -		  mComboGridMode->add(childGetText("grid_local_text")); -		  //mComboGridMode->add(childGetText("grid_reference_text")); +		  mComboGridMode->add(getString("grid_screen_text")); +		  mComboGridMode->add(getString("grid_local_text")); +		  //mComboGridMode->add(getString("grid_reference_text"));  		  break;  		case SELECT_TYPE_WORLD: -		  mComboGridMode->add(childGetText("grid_world_text")); -		  mComboGridMode->add(childGetText("grid_local_text")); -		  mComboGridMode->add(childGetText("grid_reference_text")); +		  mComboGridMode->add(getString("grid_world_text")); +		  mComboGridMode->add(getString("grid_local_text")); +		  mComboGridMode->add(getString("grid_reference_text"));  		  break;  		case SELECT_TYPE_ATTACHMENT: -		  mComboGridMode->add(childGetText("grid_attachment_text")); -		  mComboGridMode->add(childGetText("grid_local_text")); -		  mComboGridMode->add(childGetText("grid_reference_text")); +		  mComboGridMode->add(getString("grid_attachment_text")); +		  mComboGridMode->add(getString("grid_local_text")); +		  mComboGridMode->add(getString("grid_reference_text"));  		  break;  		} @@ -805,12 +805,12 @@ void LLFloaterTools::showMore(BOOL show_more)  	if (show_more)  	{ -		reshape( mRect.getWidth(), mLargeHeight, TRUE); +		reshape( getRect().getWidth(), mLargeHeight, TRUE);  		translate( 0, mSmallHeight - mLargeHeight );  	}  	else  	{ -		reshape( mRect.getWidth(), mSmallHeight, TRUE); +		reshape( getRect().getWidth(), mSmallHeight, TRUE);  		translate( 0, mLargeHeight - mSmallHeight );  	}  	childSetVisible("button less",  show_more); diff --git a/indra/newview/llfloatertools.h b/indra/newview/llfloatertools.h index f56cdbecb5..a6fdc76d9f 100644 --- a/indra/newview/llfloatertools.h +++ b/indra/newview/llfloatertools.h @@ -34,6 +34,7 @@  #include "llfloater.h"  #include "llcoord.h" +#include "llparcelselection.h"  class LLButton;  class LLTextBox; @@ -50,8 +51,7 @@ class LLComboBox;  class LLParcelSelection;  class LLObjectSelection; -typedef LLHandle<LLParcelSelection> LLParcelSelectionHandle; -typedef LLHandle<LLObjectSelection> LLObjectSelectionHandle; +typedef LLSafeHandle<LLObjectSelection> LLObjectSelectionHandle;  class LLFloaterTools  : public LLFloater @@ -174,7 +174,7 @@ public:  	std::vector<LLButton*>	mButtons;//[ 15 ]; -	LLTabContainerCommon	*mTab; +	LLTabContainer	*mTab;  	LLPanelPermissions		*mPanelPermissions;  	LLPanelObject			*mPanelObject;  	LLPanelVolume			*mPanelVolume; diff --git a/indra/newview/llfloatertopobjects.cpp b/indra/newview/llfloatertopobjects.cpp index 6bbb748a10..593d1f5114 100644 --- a/indra/newview/llfloatertopobjects.cpp +++ b/indra/newview/llfloatertopobjects.cpp @@ -207,7 +207,7 @@ void LLFloaterTopObjects::handleReply(LLMessageSystem *msg, void** data)  		LLSD element;  		element["id"] = LLUUID::null;  		element["columns"][0]["column"] = "name"; -		element["columns"][0]["value"] = childGetText("none_descriptor"); +		element["columns"][0]["value"] = getString("none_descriptor");  		element["columns"][0]["font"] = "SANSSERIF";  		list->addElement(element); @@ -219,19 +219,19 @@ void LLFloaterTopObjects::handleReply(LLMessageSystem *msg, void** data)  	if (mCurrentMode == STAT_REPORT_TOP_SCRIPTS)  	{ -		setTitle(childGetText("top_scripts_title")); -		list->setColumnLabel("score", childGetText("scripts_score_label")); +		setTitle(getString("top_scripts_title")); +		list->setColumnLabel("score", getString("scripts_score_label")); -		LLUIString format = childGetText("top_scripts_text"); +		LLUIString format = getString("top_scripts_text");  		format.setArg("[COUNT]", llformat("%d", total_count));  		format.setArg("[TIME]", llformat("%0.1f", mtotalScore));  		childSetValue("title_text", LLSD(format));  	}  	else  	{ -		setTitle(childGetText("top_colliders_title")); -		list->setColumnLabel("score", childGetText("colliders_score_label")); -		LLUIString format = childGetText("top_colliders_text"); +		setTitle(getString("top_colliders_title")); +		list->setColumnLabel("score", getString("colliders_score_label")); +		LLUIString format = getString("top_colliders_text");  		format.setArg("[COUNT]", llformat("%d", total_count));  		childSetValue("title_text", LLSD(format));  	} diff --git a/indra/newview/llfloatertos.cpp b/indra/newview/llfloatertos.cpp index bdf583126f..5875c4bef7 100644 --- a/indra/newview/llfloatertos.cpp +++ b/indra/newview/llfloatertos.cpp @@ -159,7 +159,7 @@ BOOL LLFloaterTOS::postBuild()  		editor->setVisible( FALSE );  	}; -	LLWebBrowserCtrl* web_browser = LLUICtrlFactory::getWebBrowserCtrlByName(this, "tos_html"); +	LLWebBrowserCtrl* web_browser = getChild<LLWebBrowserCtrl>("tos_html");  	if ( web_browser )  	{  		// start to observe it so we see navigate complete events @@ -169,7 +169,7 @@ BOOL LLFloaterTOS::postBuild()  		};  		gResponsePtr = LLIamHere::build( this ); -		LLHTTPClient::get( childGetValue( "real_url" ).asString(), gResponsePtr ); +		LLHTTPClient::get( getString( "real_url" ), gResponsePtr );  	};  	return TRUE; @@ -180,14 +180,14 @@ void LLFloaterTOS::setSiteIsAlive( bool alive )  	// only do this for TOS pages  	if ( mType == TOS_TOS )  	{ -		LLWebBrowserCtrl* web_browser = LLUICtrlFactory::getWebBrowserCtrlByName(this, "tos_html"); +		LLWebBrowserCtrl* web_browser = getChild<LLWebBrowserCtrl>("tos_html");  		// if the contents of the site was retrieved  		if ( alive )  		{  			if ( web_browser )  			{  				// navigate to the "real" page  -				web_browser->navigateTo( childGetValue( "real_url" ).asString() ); +				web_browser->navigateTo( getString( "real_url" ) );  			};  		}  		else @@ -212,7 +212,7 @@ void LLFloaterTOS::setSiteIsAlive( bool alive )  LLFloaterTOS::~LLFloaterTOS()  {  	// stop obsaerving events -	LLWebBrowserCtrl* web_browser = LLUICtrlFactory::getWebBrowserCtrlByName(this, "tos_html"); +	LLWebBrowserCtrl* web_browser = getChild<LLWebBrowserCtrl>("tos_html");  	if ( web_browser )  	{  		web_browser->addObserver( this );		 diff --git a/indra/newview/llfloaterurldisplay.h b/indra/newview/llfloaterurldisplay.h index 5ee447391f..307b16fd73 100644 --- a/indra/newview/llfloaterurldisplay.h +++ b/indra/newview/llfloaterurldisplay.h @@ -39,7 +39,7 @@ class LLPanelPlace;  class LLSD;  class LLUUID; -class LLFloaterURLDisplay : public LLFloater, public LLUISingleton<LLFloaterURLDisplay> +class LLFloaterURLDisplay : public LLFloater, public LLFloaterSingleton<LLFloaterURLDisplay>  {  public:  	LLFloaterURLDisplay(const LLSD& sd); diff --git a/indra/newview/llfloaterurlentry.cpp b/indra/newview/llfloaterurlentry.cpp index 1ad9e0577c..f121efb6b7 100644 --- a/indra/newview/llfloaterurlentry.cpp +++ b/indra/newview/llfloaterurlentry.cpp @@ -27,11 +27,11 @@ static LLFloaterURLEntry* sInstance = NULL;  class LLMediaTypeResponder : public LLHTTPClient::Responder  {  public: -	LLMediaTypeResponder( LLViewHandle parent ) : +	LLMediaTypeResponder( const LLHandle<LLFloater> parent ) :  	  mParent( parent )  	  {} -	  LLViewHandle mParent; +	  LLHandle<LLFloater> mParent;  	  virtual void completedHeader(U32 status, const std::string& reason, const LLSD& content) @@ -49,8 +49,7 @@ public:  	  void completeAny(U32 status, const std::string& mime_type)  	  { -		  LLFloaterURLEntry* floater_url_entry = -			  (LLFloaterURLEntry*)LLFloater::getFloaterByHandle(mParent); +		  LLFloaterURLEntry* floater_url_entry = (LLFloaterURLEntry*)mParent.get();  		  if ( floater_url_entry )  			  floater_url_entry->headerFetchComplete( status, mime_type );  	  } @@ -59,7 +58,7 @@ public:  //-----------------------------------------------------------------------------  // LLFloaterURLEntry()  //----------------------------------------------------------------------------- -LLFloaterURLEntry::LLFloaterURLEntry(LLViewHandle parent) +LLFloaterURLEntry::LLFloaterURLEntry(LLHandle<LLPanel> parent)  	:  	LLFloater(),  	mPanelLandMediaHandle(parent) @@ -119,7 +118,7 @@ void LLFloaterURLEntry::buildURLHistory()  void LLFloaterURLEntry::headerFetchComplete(U32 status, const std::string& mime_type)  { -	LLPanelLandMedia* panel_media = (LLPanelLandMedia*)LLPanel::getPanelByHandle(mPanelLandMediaHandle); +	LLPanelLandMedia* panel_media = (LLPanelLandMedia*)mPanelLandMediaHandle.get();  	if (panel_media)  	{  		// status is ignored for now -- error = "none/none" @@ -133,7 +132,7 @@ void LLFloaterURLEntry::headerFetchComplete(U32 status, const std::string& mime_  }  // static -LLViewHandle LLFloaterURLEntry::show(LLViewHandle parent) +LLHandle<LLFloater> LLFloaterURLEntry::show(LLHandle<LLPanel> parent)  {  	if (sInstance)  	{ @@ -149,7 +148,7 @@ LLViewHandle LLFloaterURLEntry::show(LLViewHandle parent)  void LLFloaterURLEntry::updateFromLandMediaPanel()  { -	LLPanelLandMedia* panel_media = (LLPanelLandMedia*)LLPanel::getPanelByHandle(mPanelLandMediaHandle); +	LLPanelLandMedia* panel_media = (LLPanelLandMedia*)mPanelLandMediaHandle.get();  	if (panel_media)  	{  		std::string media_url = panel_media->getMediaURL(); diff --git a/indra/newview/llfloaterurlentry.h b/indra/newview/llfloaterurlentry.h index 022c1eddd7..95954d82bb 100644 --- a/indra/newview/llfloaterurlentry.h +++ b/indra/newview/llfloaterurlentry.h @@ -10,15 +10,17 @@  #define LL_LLFLOATERURLENTRY_H  #include "llfloater.h" +#include "llpanellandmedia.h"  class LLLineEditor; +class LLComboBox;  class LLFloaterURLEntry : public LLFloater  {  public:  	// Can only be shown by LLPanelLandMedia, and pushes data back into  	// that panel via the handle. -	static LLViewHandle show(LLViewHandle panel_land_media_handle); +	static LLHandle<LLFloater> show(LLHandle<LLPanel> panel_land_media_handle);  	void updateFromLandMediaPanel(); @@ -27,13 +29,13 @@ public:  	bool addURLToCombobox(const std::string& media_url);  private: -	LLFloaterURLEntry(LLViewHandle parent); +	LLFloaterURLEntry(LLHandle<LLPanel> parent);  	/*virtual*/ ~LLFloaterURLEntry();  	void buildURLHistory();  private:  	LLComboBox*		mMediaURLEdit; -	LLViewHandle	mPanelLandMediaHandle; +	LLHandle<LLPanel> mPanelLandMediaHandle;  	static void		onBtnOK(void*);  	static void		onBtnCancel(void*); diff --git a/indra/newview/llfloaterworldmap.cpp b/indra/newview/llfloaterworldmap.cpp index 9f9396a2d0..9da923e739 100644 --- a/indra/newview/llfloaterworldmap.cpp +++ b/indra/newview/llfloaterworldmap.cpp @@ -39,13 +39,6 @@  #include "llfloaterworldmap.h" -// Library includes -#include "llfontgl.h" -#include "llinventory.h" -#include "lllineeditor.h" -#include "message.h" - -// Viewer includes  #include "llagent.h"  #include "llviewerwindow.h"  #include "llbutton.h" @@ -54,36 +47,23 @@  #include "llcombobox.h"  #include "llviewercontrol.h"  #include "lldraghandle.h" -#include "lleconomy.h"  #include "llfirstuse.h"  #include "llfocusmgr.h" -#include "lliconctrl.h"  #include "llinventorymodel.h" -#include "llinventoryview.h"  #include "lllandmarklist.h" +#include "lllineeditor.h"  #include "llnetmap.h"  #include "llpreviewlandmark.h" -#include "llradiogroup.h"  #include "llregionhandle.h" -#include "llresizehandle.h" -#include "llresmgr.h"  #include "llscrolllistctrl.h" -#include "llsliderctrl.h" -#include "llspinctrl.h" -#include "llstatusbar.h" -#include "lltabcontainer.h"  #include "lltextbox.h"  #include "lltracker.h" -#include "llui.h" -#include "lluiconstants.h"  #include "llurldispatcher.h" -#include "llviewercamera.h"  #include "llviewermenu.h"  #include "llviewerregion.h"  #include "llviewerstats.h"  #include "llworldmap.h"  #include "llworldmapview.h" -#include "llurl.h"  #include "llvieweruictrlfactory.h"  #include "llappviewer.h"  #include "llmapimagetype.h" @@ -518,7 +498,7 @@ void LLFloaterWorldMap::draw()  	childSetEnabled("copy_slurl", (mSLURL.size() > 0) );  	setMouseOpaque(TRUE); -	mDragHandle->setMouseOpaque(TRUE); +	getDragHandle()->setMouseOpaque(TRUE);  	//RN: snaps to zoom value because interpolation caused jitter in the text rendering  	if (!mZoomTimer.getStarted() && mCurZoomVal != (F32)childGetValue("zoom slider").asReal()) diff --git a/indra/newview/llfloaterworldmap.h b/indra/newview/llfloaterworldmap.h index 6f3c583557..3cf12a9eb7 100644 --- a/indra/newview/llfloaterworldmap.h +++ b/indra/newview/llfloaterworldmap.h @@ -161,7 +161,7 @@ protected:  	void			cacheLandmarkPosition();  protected: -	LLTabContainerCommon*	mTabs; +	LLTabContainer*	mTabs;  	// Sets gMapScale, in pixels per region  	F32						mCurZoomVal; diff --git a/indra/newview/llfolderview.cpp b/indra/newview/llfolderview.cpp index 90df2284c5..a710d1688d 100644 --- a/indra/newview/llfolderview.cpp +++ b/indra/newview/llfolderview.cpp @@ -87,6 +87,11 @@ const F32 FOLDER_CLOSE_TIME_CONSTANT = 0.02f;  const F32 FOLDER_OPEN_TIME_CONSTANT = 0.03f;  const S32 MAX_FOLDER_ITEM_OVERLAP = 2; +enum { +	SIGNAL_NO_KEYBOARD_FOCUS = 1, +	SIGNAL_KEYBOARD_FOCUS = 2 +}; +  F32 LLFolderView::sAutoOpenTime = 1.f;  void delete_selected_item(void* user_data); @@ -600,16 +605,6 @@ const LLString& LLFolderViewItem::getName( void ) const  	return mLabel;  } -LLFolderViewFolder* LLFolderViewItem::getParentFolder( void ) -{ -	return mParentFolder; -} - -LLFolderViewEventListener* LLFolderViewItem::getListener( void ) -{ -	return mListener; -} -  // LLView functionality  BOOL LLFolderViewItem::handleRightMouseDown( S32 x, S32 y, MASK mask )  { @@ -817,7 +812,7 @@ void LLFolderViewItem::draw()  		LLGLSTexture gls_texture;  		if (mArrowImage)  		{ -			gl_draw_scaled_rotated_image(mIndentation, mRect.getHeight() - ARROW_SIZE - TEXT_PAD, +			gl_draw_scaled_rotated_image(mIndentation, getRect().getHeight() - ARROW_SIZE - TEXT_PAD,  				ARROW_SIZE, ARROW_SIZE, mControlLabelRotation, mArrowImage, sFgColor);  		}  	} @@ -853,33 +848,33 @@ void LLFolderViewItem::draw()  		gl_rect_2d(  			0,  -			mRect.getHeight(),  -			mRect.getWidth() - 2, -			llfloor(mRect.getHeight() - sFont->getLineHeight() - ICON_PAD), +			getRect().getHeight(),  +			getRect().getWidth() - 2, +			llfloor(getRect().getHeight() - sFont->getLineHeight() - ICON_PAD),  			bg_color, filled);  		if (mIsCurSelection)  		{  			gl_rect_2d(  				0,  -				mRect.getHeight(),  -				mRect.getWidth() - 2, -				llfloor(mRect.getHeight() - sFont->getLineHeight() - ICON_PAD), +				getRect().getHeight(),  +				getRect().getWidth() - 2, +				llfloor(getRect().getHeight() - sFont->getLineHeight() - ICON_PAD),  				sHighlightFgColor, FALSE);  		} -		if (mRect.getHeight() > llround(sFont->getLineHeight()) + ICON_PAD + 2) +		if (getRect().getHeight() > llround(sFont->getLineHeight()) + ICON_PAD + 2)  		{  			gl_rect_2d(  				0,  -				llfloor(mRect.getHeight() - sFont->getLineHeight() - ICON_PAD) - 2,  -				mRect.getWidth() - 2, +				llfloor(getRect().getHeight() - sFont->getLineHeight() - ICON_PAD) - 2,  +				getRect().getWidth() - 2,  				2,  				sHighlightFgColor, FALSE);  			if (show_context)  			{  				gl_rect_2d(  					0,  -					llfloor(mRect.getHeight() - sFont->getLineHeight() - ICON_PAD) - 2,  -					mRect.getWidth() - 2, +					llfloor(getRect().getHeight() - sFont->getLineHeight() - ICON_PAD) - 2,  +					getRect().getWidth() - 2,  					2,  					sHighlightBgColor, TRUE);  			} @@ -890,17 +885,17 @@ void LLFolderViewItem::draw()  		LLGLSNoTexture gls_no_texture;  		gl_rect_2d(  			0,  -			mRect.getHeight(),  -			mRect.getWidth() - 2, -			llfloor(mRect.getHeight() - sFont->getLineHeight() - ICON_PAD), +			getRect().getHeight(),  +			getRect().getWidth() - 2, +			llfloor(getRect().getHeight() - sFont->getLineHeight() - ICON_PAD),  			sHighlightBgColor, FALSE); -		if (mRect.getHeight() > llround(sFont->getLineHeight()) + ICON_PAD + 2) +		if (getRect().getHeight() > llround(sFont->getLineHeight()) + ICON_PAD + 2)  		{  			gl_rect_2d(  				0,  -				llfloor(mRect.getHeight() - sFont->getLineHeight() - ICON_PAD) - 2,  -				mRect.getWidth() - 2, +				llfloor(getRect().getHeight() - sFont->getLineHeight() - ICON_PAD) - 2,  +				getRect().getWidth() - 2,  				2,  				sHighlightBgColor, FALSE);  		} @@ -910,7 +905,7 @@ void LLFolderViewItem::draw()  	if(mIcon)  	{ -		gl_draw_image(mIndentation + ARROW_SIZE + TEXT_PAD, mRect.getHeight() - mIcon->getHeight(), mIcon); +		gl_draw_image(mIndentation + ARROW_SIZE + TEXT_PAD, getRect().getHeight() - mIcon->getHeight(), mIcon);  		mIcon->addTextureStats( (F32)(mIcon->getWidth() * mIcon->getHeight()));  	} @@ -920,7 +915,7 @@ void LLFolderViewItem::draw()  		BOOL debug_filters = getRoot()->getDebugFilters();  		LLColor4 color = ( (mIsSelected && filled) ? sHighlightFgColor : sFgColor );  		F32 right_x; -		F32 y = (F32)mRect.getHeight() - sFont->getLineHeight() - (F32)TEXT_PAD; +		F32 y = (F32)getRect().getHeight() - sFont->getLineHeight() - (F32)TEXT_PAD;  		if (debug_filters)  		{ @@ -963,14 +958,14 @@ void LLFolderViewItem::draw()  				LLString combined_string = mLabel + mLabelSuffix;  				S32 left = llround(text_left) + sFont->getWidth(combined_string, 0, mStringMatchOffset) - 1;  				S32 right = left + sFont->getWidth(combined_string, mStringMatchOffset, filter_string_length) + 2; -				S32 bottom = llfloor(mRect.getHeight() - sFont->getLineHeight() - 3); -				S32 top = mRect.getHeight(); +				S32 bottom = llfloor(getRect().getHeight() - sFont->getLineHeight() - 3); +				S32 top = getRect().getHeight();  				LLViewerImage::bindTexture(mBoxImage);  				glColor4fv(sFilterBGColor.mV);  				gl_segmented_rect_2d_tex(left, top, right, bottom, mBoxImage->getWidth(), mBoxImage->getHeight(), 16);  				F32 match_string_left = text_left + sFont->getWidthF32(combined_string, 0, mStringMatchOffset); -				F32 y = (F32)mRect.getHeight() - sFont->getLineHeight() - (F32)TEXT_PAD; +				F32 y = (F32)getRect().getHeight() - sFont->getLineHeight() - (F32)TEXT_PAD;  				sFont->renderUTF8( combined_string, mStringMatchOffset, match_string_left, y,  								sFilterTextColor, LLFontGL::LEFT, LLFontGL::BOTTOM, mLabelStyle,  								filter_string_length, S32_MAX, &right_x, FALSE ); @@ -1074,7 +1069,7 @@ S32 LLFolderViewFolder::arrange( S32* width, S32* height, S32 filter_generation)  		if (mIsOpen)  		{  			// Add sizes of children -			S32 parent_item_height = mRect.getHeight(); +			S32 parent_item_height = getRect().getHeight();  			folders_t::iterator fit = mFolders.begin();  			folders_t::iterator fend = mFolders.end(); @@ -1158,7 +1153,7 @@ S32 LLFolderViewFolder::arrange( S32* width, S32* height, S32 filter_generation)  		{  			folders_t::iterator fit = iter++;  			// number of pixels that bottom of folder label is from top of parent folder -			if (mRect.getHeight() - (*fit)->getRect().mTop + (*fit)->getItemHeight()  +			if (getRect().getHeight() - (*fit)->getRect().mTop + (*fit)->getItemHeight()   				> llround(mCurHeight) + MAX_FOLDER_ITEM_OVERLAP)  			{  				// hide if beyond current folder height @@ -1171,7 +1166,7 @@ S32 LLFolderViewFolder::arrange( S32* width, S32* height, S32 filter_generation)  		{  			items_t::iterator iit = iter++;  			// number of pixels that bottom of item label is from top of parent folder -			if (mRect.getHeight() - (*iit)->getRect().mBottom +			if (getRect().getHeight() - (*iit)->getRect().mBottom  				> llround(mCurHeight) + MAX_FOLDER_ITEM_OVERLAP)  			{  				(*iit)->setVisible(FALSE); @@ -1184,7 +1179,7 @@ S32 LLFolderViewFolder::arrange( S32* width, S32* height, S32 filter_generation)  	}  	// don't change width as this item is already as wide as its parent folder -	reshape(mRect.getWidth(),llround(mCurHeight)); +	reshape(getRect().getWidth(),llround(mCurHeight));  	// pass current height value back to parent  	*height = llround(mCurHeight); @@ -1903,7 +1898,7 @@ BOOL LLFolderViewFolder::addItem(LLFolderViewItem* item)  		item,  		mSortFunction);  	mItems.insert(it,item); -	item->setRect(LLRect(0, 0, mRect.getWidth(), 0)); +	item->setRect(LLRect(0, 0, getRect().getWidth(), 0));  	item->setVisible(FALSE);  	addChild( item );  	item->dirtyFilter(); @@ -1921,7 +1916,7 @@ BOOL LLFolderViewFolder::addFolder(LLFolderViewFolder* folder)  		mSortFunction);  	mFolders.insert(it,folder);  	folder->setOrigin(0, 0); -	folder->reshape(mRect.getWidth(), 0); +	folder->reshape(getRect().getWidth(), 0);  	folder->setVisible(FALSE);  	addChild( folder );  	folder->dirtyFilter(); @@ -1972,6 +1967,7 @@ void LLFolderViewFolder::setOpenArrangeRecursively(BOOL open, ERecurseType recur  			mListener->openItem();  		}  	} +  	if (recurse == RECURSE_DOWN || recurse == RECURSE_UP_DOWN)  	{  		for (folders_t::iterator iter = mFolders.begin(); @@ -2131,7 +2127,7 @@ BOOL LLFolderViewFolder::handleHover(S32 x, S32 y, MASK mask)  		handled = LLFolderViewItem::handleHover(x, y, mask);  	} -	//if(x < LEFT_INDENTATION + mIndentation && x > mIndentation - LEFT_PAD && y > mRect.getHeight() - ) +	//if(x < LEFT_INDENTATION + mIndentation && x > mIndentation - LEFT_PAD && y > getRect().getHeight() - )  	//{  	//	gViewerWindow->setCursor(UI_CURSOR_ARROW);  	//	mExpanderHighlighted = TRUE; @@ -2544,7 +2540,7 @@ LLFolderView::LLFolderView( const LLString& name, LLViewerImage* root_folder_ico  #pragma warning( pop )  #endif  	mScrollContainer( NULL ), -	mPopupMenuHandle( LLViewHandle::sDeadHandle ), +	mPopupMenuHandle(),  	mAllowMultiSelect(TRUE),  	mShowFolderHierarchy(FALSE),  	mSourceID(source_id), @@ -2562,11 +2558,11 @@ LLFolderView::LLFolderView( const LLString& name, LLViewerImage* root_folder_ico  	mArrangeGeneration(0),  	mUserData(NULL),  	mSelectCallback(NULL), -	mSelectionChanged(FALSE), +	mSignalSelectCallback(0),  	mMinWidth(0),  	mDragAndDropThisFrame(FALSE)  { -	LLRect new_rect(rect.mLeft, rect.mBottom + mRect.getHeight(), rect.mLeft + mRect.getWidth(), rect.mBottom); +	LLRect new_rect(rect.mLeft, rect.mBottom + getRect().getHeight(), rect.mLeft + getRect().getWidth(), rect.mBottom);  	setRect( rect );  	reshape(rect.getWidth(), rect.getHeight());  	mIsOpen = TRUE; // this view is always open. @@ -2582,7 +2578,7 @@ LLFolderView::LLFolderView( const LLString& name, LLViewerImage* root_folder_ico  	// just make sure the label ("Inventory Folder") never shows up  	mLabel = LLString::null; -	mRenamer = new LLLineEditor("ren", mRect, "", sFont, +	mRenamer = new LLLineEditor("ren", getRect(), "", sFont,  								DB_INV_ITEM_NAME_STR_LEN,  								&LLFolderView::commitRename,  								NULL, @@ -2606,7 +2602,7 @@ LLFolderView::LLFolderView( const LLString& name, LLViewerImage* root_folder_ico  	}  	menu->setBackgroundColor(gColors.getColor("MenuPopupBgColor"));  	menu->setVisible(FALSE); -	mPopupMenuHandle = menu->mViewHandle; +	mPopupMenuHandle = menu->getHandle();  	setTabStop(TRUE);  } @@ -2710,7 +2706,7 @@ BOOL LLFolderView::addFolder( LLFolderViewFolder* folder)  		mFolders.insert(mFolders.begin(), folder);  	}  	folder->setOrigin(0, 0); -	folder->reshape(mRect.getWidth(), 0); +	folder->reshape(getRect().getWidth(), 0);  	folder->setVisible(FALSE);  	addChild( folder );  	folder->dirtyFilter(); @@ -2726,7 +2722,7 @@ void LLFolderView::closeAllFolders()  void LLFolderView::openFolder(const LLString& foldername)  { -	LLFolderViewFolder* inv = (LLFolderViewFolder*)getChildByName(foldername); +	LLFolderViewFolder* inv = getChild<LLFolderViewFolder>(foldername);  	if (inv)  	{  		setSelection(inv, FALSE, FALSE); @@ -2759,7 +2755,7 @@ S32 LLFolderView::arrange( S32* unused_width, S32* unused_height, S32 filter_gen  	S32 total_width = LEFT_PAD;  	S32 running_height = mDebugFilters ? llceil(sSmallFont->getLineHeight()) : 0;  	S32 target_height = running_height; -	S32 parent_item_height = mRect.getHeight(); +	S32 parent_item_height = getRect().getHeight();  	for (folders_t::iterator iter = mFolders.begin();  		 iter != mFolders.end();) @@ -2943,7 +2939,7 @@ BOOL LLFolderView::setSelection(LLFolderViewItem* selection, BOOL open,		/* Flaw  	llassert(mSelectedItems.size() <= 1); -	mSelectionChanged = TRUE; +	mSignalSelectCallback = take_keyboard_focus ? SIGNAL_KEYBOARD_FOCUS : SIGNAL_NO_KEYBOARD_FOCUS;  	return rv;  } @@ -2985,7 +2981,7 @@ BOOL LLFolderView::changeSelection(LLFolderViewItem* selection, BOOL selected)  	rv = LLFolderViewFolder::changeSelection(selection, selected); -	mSelectionChanged = TRUE; +	mSignalSelectCallback = SIGNAL_KEYBOARD_FOCUS;  	return rv;  } @@ -3011,7 +3007,7 @@ S32 LLFolderView::extendSelection(LLFolderViewItem* selection, LLFolderViewItem*  		rv++;  	} -	mSelectionChanged = TRUE; +	mSignalSelectCallback = SIGNAL_KEYBOARD_FOCUS;  	return rv;  } @@ -3181,7 +3177,7 @@ void LLFolderView::draw()  		LLString current_filter_string = llformat("Current Filter: %d, Least Filter: %d, Auto-accept Filter: %d",  										mFilter.getCurrentGeneration(), mFilter.getMinRequiredGeneration(), mFilter.getMustPassGeneration());  		sSmallFont->renderUTF8(current_filter_string, 0, 2,  -			mRect.getHeight() - sSmallFont->getLineHeight(), LLColor4(0.5f, 0.5f, 0.8f, 1.f),  +			getRect().getHeight() - sSmallFont->getLineHeight(), LLColor4(0.5f, 0.5f, 0.8f, 1.f),   			LLFontGL::LEFT, LLFontGL::BOTTOM, LLFontGL::NORMAL, S32_MAX, S32_MAX, NULL, FALSE );  	} @@ -3287,7 +3283,7 @@ void LLFolderView::revertRenamingItem( void )  void LLFolderView::removeSelectedItems( void )  { -	if(getVisible() && mEnabled) +	if(getVisible() && getEnabled())  	{  		// just in case we're removing the renaming item.  		mRenameItem = NULL; @@ -3392,7 +3388,7 @@ void LLFolderView::removeSelectedItems( void )  // open the selected item.  void LLFolderView::openSelectedItems( void )  { -	if(getVisible() && mEnabled) +	if(getVisible() && getEnabled())  	{  		if (mSelectedItems.size() == 1)  		{ @@ -3432,7 +3428,7 @@ void LLFolderView::openSelectedItems( void )  void LLFolderView::propertiesSelectedItems( void )  { -	if(getVisible() && mEnabled) +	if(getVisible() && getEnabled())  	{  		if (mSelectedItems.size() == 1)  		{ @@ -3531,17 +3527,16 @@ BOOL LLFolderView::autoOpenTest(LLFolderViewFolder* folder)  	return FALSE;  } -BOOL LLFolderView::canCopy() +BOOL LLFolderView::canCopy() const  { -	if (!(getVisible() && mEnabled && (mSelectedItems.size() > 0))) +	if (!(getVisible() && getEnabled() && (mSelectedItems.size() > 0)))  	{  		return FALSE;  	} - -	selected_items_t::iterator selected_it; -	for (selected_it = mSelectedItems.begin(); selected_it != mSelectedItems.end(); ++selected_it) +	 +	for (selected_items_t::const_iterator selected_it = mSelectedItems.begin(); selected_it != mSelectedItems.end(); ++selected_it)  	{ -		LLFolderViewItem* item = *selected_it; +		const LLFolderViewItem* item = *selected_it;  		if (!item->getListener()->isItemCopyable())  		{  			return FALSE; @@ -3556,7 +3551,7 @@ void LLFolderView::copy()  	// *NOTE: total hack to clear the inventory clipboard  	LLInventoryClipboard::instance().reset();  	S32 count = mSelectedItems.size(); -	if(getVisible() && mEnabled && (count > 0)) +	if(getVisible() && getEnabled() && (count > 0))  	{  		LLFolderViewEventListener* listener = NULL;  		selected_items_t::iterator item_it; @@ -3572,7 +3567,7 @@ void LLFolderView::copy()  	mSearchString.clear();  } -BOOL LLFolderView::canCut() +BOOL LLFolderView::canCut() const  {  	return FALSE;  } @@ -3582,24 +3577,24 @@ void LLFolderView::cut()  	// implement Windows-style cut-and-leave  } -BOOL LLFolderView::canPaste() +BOOL LLFolderView::canPaste() const  {  	if (mSelectedItems.empty())  	{  		return FALSE;  	} -	if(getVisible() && mEnabled) +	if(getVisible() && getEnabled())  	{ -		selected_items_t::iterator item_it; -		for (item_it = mSelectedItems.begin(); item_it != mSelectedItems.end(); ++item_it) +		for (selected_items_t::const_iterator item_it = mSelectedItems.begin(); +			 item_it != mSelectedItems.end(); ++item_it)  		{  			// *TODO: only check folders and parent folders of items -			LLFolderViewItem* item = (*item_it); -			LLFolderViewEventListener* listener = item->getListener(); +			const LLFolderViewItem* item = (*item_it); +			const LLFolderViewEventListener* listener = item->getListener();  			if(!listener || !listener->isClipboardPasteable())  			{ -				LLFolderViewFolder* folderp = item->getParentFolder(); +				const LLFolderViewFolder* folderp = item->getParentFolder();  				listener = folderp->getListener();  				if (!listener || !listener->isClipboardPasteable())  				{ @@ -3615,7 +3610,7 @@ BOOL LLFolderView::canPaste()  // paste selected item  void LLFolderView::paste()  { -	if(getVisible() && mEnabled) +	if(getVisible() && getEnabled())  	{  		// find set of unique folders to paste into  		std::set<LLFolderViewItem*> folder_set; @@ -3657,7 +3652,7 @@ void LLFolderView::startRenamingSelectedItem( void )  	{  		item = mSelectedItems.front();  	} -	if(getVisible() && mEnabled && (count == 1) && item && item->getListener() && +	if(getVisible() && getEnabled() && (count == 1) && item && item->getListener() &&  	   item->getListener()->isItemRenameable())  	{  		mRenameItem = item; @@ -3676,7 +3671,7 @@ void LLFolderView::startRenamingSelectedItem( void )  			mScrollContainer->calcVisibleSize( &scroller_width, &scroller_height, &dummy_bool, &dummy_bool);  		} -		S32 width = llmax(llmin(item->getRect().getWidth() - x, scroller_width - x - mRect.mLeft), MINIMUM_RENAMER_WIDTH); +		S32 width = llmax(llmin(item->getRect().getWidth() - x, scroller_width - x - getRect().mLeft), MINIMUM_RENAMER_WIDTH);  		S32 height = llfloor(sFont->getLineHeight() + RENAME_HEIGHT_PAD);  		mRenamer->reshape( width, height, TRUE ); @@ -3709,7 +3704,7 @@ BOOL LLFolderView::handleKeyHere( KEY key, MASK mask, BOOL called_from_parent )  	// SL-51858: Key presses are not being passed to the Popup menu.  	// A proper fix is non-trivial so instead just close the menu. -	LLMenuGL* menu = (LLMenuGL*)LLView::getViewByHandle(mPopupMenuHandle); +	LLMenuGL* menu = (LLMenuGL*)mPopupMenuHandle.get();  	if (menu && menu->isOpen())  	{  		LLMenuGL::sMenuContainer->hideMenus(); @@ -3721,7 +3716,7 @@ BOOL LLFolderView::handleKeyHere( KEY key, MASK mask, BOOL called_from_parent )  		item = *(getChildList()->begin());  	} -	if( getVisible() && mEnabled && !called_from_parent ) +	if( getVisible() && getEnabled() && !called_from_parent )  	{  		switch( key )  		{ @@ -3952,7 +3947,7 @@ BOOL LLFolderView::handleUnicodeCharHere(llwchar uni_char, BOOL called_from_pare  	{  		// SL-51858: Key presses are not being passed to the Popup menu.  		// A proper fix is non-trivial so instead just close the menu. -		LLMenuGL* menu = (LLMenuGL*)LLView::getViewByHandle(mPopupMenuHandle); +		LLMenuGL* menu = (LLMenuGL*)mPopupMenuHandle.get();  		if (menu && menu->isOpen())  		{  			LLMenuGL::sMenuContainer->hideMenus(); @@ -3977,11 +3972,11 @@ BOOL LLFolderView::handleUnicodeCharHere(llwchar uni_char, BOOL called_from_pare  } -BOOL LLFolderView::canDoDelete() +BOOL LLFolderView::canDoDelete() const  {  	if (mSelectedItems.size() == 0) return FALSE; -	selected_items_t::iterator item_it; -	for (item_it = mSelectedItems.begin(); item_it != mSelectedItems.end(); ++item_it) + +	for (selected_items_t::const_iterator item_it = mSelectedItems.begin(); item_it != mSelectedItems.end(); ++item_it)  	{  		if (!(*item_it)->getListener()->isItemRemovable())  		{ @@ -4103,7 +4098,7 @@ BOOL LLFolderView::handleRightMouseDown( S32 x, S32 y, MASK mask )  	BOOL handled = childrenHandleRightMouseDown(x, y, mask) != NULL;  	S32 count = mSelectedItems.size(); -	LLMenuGL* menu = (LLMenuGL*)LLView::getViewByHandle(mPopupMenuHandle); +	LLMenuGL* menu = (LLMenuGL*)mPopupMenuHandle.get();  	if(handled && (count > 0) && menu)  	{  		//menu->empty(); @@ -4179,7 +4174,7 @@ void LLFolderView::deleteAllChildren()  		gViewerWindow->setTopCtrl(NULL);  	}  	LLView::deleteViewByHandle(mPopupMenuHandle); -	mPopupMenuHandle = LLViewHandle::sDeadHandle; +	mPopupMenuHandle = LLHandle<LLView>();  	mRenamer = NULL;  	mRenameItem = NULL;  	clearSelection(); @@ -4247,7 +4242,7 @@ LLRect LLFolderView::getVisibleRect()  	S32 visible_height = mScrollContainer->getRect().getHeight();  	S32 visible_width = mScrollContainer->getRect().getWidth();  	LLRect visible_rect; -	visible_rect.setLeftTopAndSize(-mRect.mLeft, visible_height - mRect.mBottom, visible_width, visible_height); +	visible_rect.setLeftTopAndSize(-getRect().mLeft, visible_height - getRect().mBottom, visible_width, visible_height);  	return visible_rect;  } @@ -4257,7 +4252,7 @@ BOOL LLFolderView::getShowSelectionContext()  	{  		return TRUE;  	} -	LLMenuGL* menu = (LLMenuGL*)LLView::getViewByHandle(mPopupMenuHandle); +	LLMenuGL* menu = (LLMenuGL*)mPopupMenuHandle.get();  	if (menu && menu->getVisible())  	{  		return TRUE; @@ -4364,12 +4359,13 @@ void LLFolderView::doIdle()  		}  	} -	if (mSelectionChanged && mSelectCallback) +	if (mSignalSelectCallback && mSelectCallback)  	{  		//RN: we use keyboard focus as a proxy for user-explicit actions -		mSelectCallback(mSelectedItems, gFocusMgr.childHasKeyboardFocus(this), mUserData); +		BOOL take_keyboard_focus = (mSignalSelectCallback == SIGNAL_KEYBOARD_FOCUS); +		mSelectCallback(mSelectedItems, take_keyboard_focus, mUserData);  	} -	mSelectionChanged = FALSE; +	mSignalSelectCallback = FALSE;  } diff --git a/indra/newview/llfolderview.h b/indra/newview/llfolderview.h index 37b9ee6c13..d451e75fa6 100644 --- a/indra/newview/llfolderview.h +++ b/indra/newview/llfolderview.h @@ -108,7 +108,7 @@ public:  	// This method should be called when a drag begins. returns TRUE  	// if the drag can begin, otherwise FALSE. -	virtual BOOL startDrag(EDragAndDropType* type, LLUUID* id) = 0; +	virtual BOOL startDrag(EDragAndDropType* type, LLUUID* id) const = 0;  	// This method will be called to determine if a drop can be  	// performed, and will set drop to TRUE if a drop is @@ -465,11 +465,14 @@ public:  	// Used for sorting, like getLabel() above.  	virtual U32 getCreationDate() const { return mCreationDate; } -	LLFolderViewFolder* getParentFolder( void ); +	LLFolderViewFolder* getParentFolder( void ) { return mParentFolder; } +	const LLFolderViewFolder* getParentFolder( void ) const { return mParentFolder; } +	  	LLFolderViewItem* getNextOpenNode( BOOL include_children = TRUE );  	LLFolderViewItem* getPreviousOpenNode( BOOL include_children = TRUE ); -	LLFolderViewEventListener* getListener( void ); +	const LLFolderViewEventListener* getListener( void ) const { return mListener; } +	LLFolderViewEventListener* getListener( void ) { return mListener; }  	// just rename the object.  	void rename(const LLString& new_name); @@ -803,16 +806,16 @@ public:  	// copy & paste  	virtual void	copy(); -	virtual BOOL	canCopy(); +	virtual BOOL	canCopy() const;  	virtual void	cut(); -	virtual BOOL	canCut(); +	virtual BOOL	canCut() const;  	virtual void	paste(); -	virtual BOOL	canPaste(); +	virtual BOOL	canPaste() const;  	virtual void	doDelete(); -	virtual BOOL	canDoDelete(); +	virtual BOOL	canDoDelete() const;  	// public rename functionality - can only start the process  	void startRenamingSelectedItem( void ); @@ -885,7 +888,7 @@ protected:  	void revertRenamingItem( void );  protected: -	LLViewHandle					mPopupMenuHandle; +	LLHandle<LLView>					mPopupMenuHandle;  	typedef std::deque<LLFolderViewItem*> selected_items_t;  	selected_items_t				mSelectedItems; @@ -920,7 +923,7 @@ protected:  	void*							mUserData;  	SelectCallback					mSelectCallback; -	BOOL							mSelectionChanged; +	S32								mSignalSelectCallback;  	S32								mMinWidth;  	std::map<LLUUID, LLFolderViewItem*> mItemMap;  	BOOL							mDragAndDropThisFrame; diff --git a/indra/newview/llglsandbox.cpp b/indra/newview/llglsandbox.cpp index 29b739bca3..a291f1da49 100644 --- a/indra/newview/llglsandbox.cpp +++ b/indra/newview/llglsandbox.cpp @@ -427,8 +427,8 @@ void LLHorizontalCompass::draw()  	LLGLSUIDefault gls_ui; -	S32 width = mRect.getWidth(); -	S32 height = mRect.getHeight(); +	S32 width = getRect().getWidth(); +	S32 height = getRect().getHeight();  	S32 half_width = width / 2;  	if( mTexture ) diff --git a/indra/newview/llimpanel.cpp b/indra/newview/llimpanel.cpp index 0c34ef3ebc..c26e9de423 100644 --- a/indra/newview/llimpanel.cpp +++ b/indra/newview/llimpanel.cpp @@ -438,7 +438,7 @@ void LLVoiceChannel::handleStatusChange(EStatusType type)  	case STATUS_LOGGED_IN:  		if (!mLoginNotificationHandle.isDead())  		{ -			LLNotifyBox* notifyp = (LLNotifyBox*)LLPanel::getPanelByHandle(mLoginNotificationHandle); +			LLNotifyBox* notifyp = (LLNotifyBox*)mLoginNotificationHandle.get();  			if (notifyp)  			{  				notifyp->close(); @@ -1251,9 +1251,9 @@ BOOL LLFloaterIMPanel::postBuild()  			childSetEnabled("profile_btn", FALSE);  		} -		sTitleString = getFormattedUIString("title_string"); -		sTypingStartString = getFormattedUIString("typing_start_string"); -		sSessionStartString = getFormattedUIString("session_start_string"); +		sTitleString = getString("title_string"); +		sTypingStartString = getString("typing_start_string"); +		sSessionStartString = getString("session_start_string");  		if (mSpeakerPanel)  		{ @@ -1330,12 +1330,12 @@ void LLFloaterIMPanel::draw()  	if (self_speaker.notNull() && self_speaker->mModeratorMutedText)  	{  		mInputEditor->setEnabled(FALSE); -		mInputEditor->setLabel(getFormattedUIString("muted_text_label")); +		mInputEditor->setLabel(getString("muted_text_label"));  	}  	else  	{  		mInputEditor->setEnabled(TRUE); -		mInputEditor->setLabel(getFormattedUIString("default_text_label")); +		mInputEditor->setLabel(getString("default_text_label"));  	}  	if (mAutoConnect && enable_connect) @@ -1539,7 +1539,7 @@ void LLFloaterIMPanel::selectNone()  BOOL LLFloaterIMPanel::handleKeyHere( KEY key, MASK mask, BOOL called_from_parent )  {  	BOOL handled = FALSE; -	if( getVisible() && mEnabled && !called_from_parent && gFocusMgr.childHasKeyboardFocus(this)) +	if( getVisible() && getEnabled() && !called_from_parent && gFocusMgr.childHasKeyboardFocus(this))  	{  		if( KEY_RETURN == key && mask == MASK_NONE)  		{ @@ -1926,7 +1926,7 @@ void LLFloaterIMPanel::processSessionUpdate(const LLSD& session_update)  		if (voice_moderated)  		{ -			setTitle(mSessionLabel + LLString(" ") + getFormattedUIString("moderated_chat_label")); +			setTitle(mSessionLabel + LLString(" ") + getString("moderated_chat_label"));  		}  		else  		{ diff --git a/indra/newview/llimpanel.h b/indra/newview/llimpanel.h index ef36ff4a33..50830dedd0 100644 --- a/indra/newview/llimpanel.h +++ b/indra/newview/llimpanel.h @@ -100,7 +100,7 @@ protected:  	LLString	mSessionName;  	LLString::format_map_t mNotifyArgs;  	BOOL		mIgnoreNextSessionLeave; -	LLViewHandle mLoginNotificationHandle; +	LLHandle<LLPanel> mLoginNotificationHandle;  	typedef std::map<LLUUID, LLVoiceChannel*> voice_channel_map_t;  	static voice_channel_map_t sVoiceChannelMap; diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index 2be41f01c5..58139e41aa 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -158,7 +158,7 @@ LLFloaterIM::LLFloaterIM()  BOOL LLFloaterIM::postBuild()  { -	sOnlyUserMessage = getFormattedUIString("only_user_message"); +	sOnlyUserMessage = getString("only_user_message");  	sOfflineMessage = getUIString("offline_message");  	sInviteMessage = getUIString("invite_message"); @@ -166,75 +166,75 @@ BOOL LLFloaterIM::postBuild()  	if ( sErrorStringsMap.find("generic") == sErrorStringsMap.end() )  	{  		sErrorStringsMap["generic"] = -			getFormattedUIString("generic_request_error"); +			getString("generic_request_error");  	}  	if ( sErrorStringsMap.find("unverified") ==  		 sErrorStringsMap.end() )  	{  		sErrorStringsMap["unverified"] = -			getFormattedUIString("insufficient_perms_error"); +			getString("insufficient_perms_error");  	}  	if ( sErrorStringsMap.end() ==  		 sErrorStringsMap.find("no_ability") )  	{  		sErrorStringsMap["no_ability"] = -			getFormattedUIString("no_ability_error"); +			getString("no_ability_error");  	}  	if ( sErrorStringsMap.end() ==  		 sErrorStringsMap.find("muted") )  	{  		sErrorStringsMap["muted"] = -			getFormattedUIString("muted_error"); +			getString("muted_error");  	}  	if ( sErrorStringsMap.end() ==  		 sErrorStringsMap.find("not_a_moderator") )  	{  		sErrorStringsMap["not_a_moderator"] = -			getFormattedUIString("not_a_mod_error"); +			getString("not_a_mod_error");  	}  	if ( sErrorStringsMap.end() ==  		 sErrorStringsMap.find("does not exist") )  	{  		sErrorStringsMap["does not exist"] = -			getFormattedUIString("session_does_not_exist_error"); +			getString("session_does_not_exist_error");  	}  	if ( sEventStringsMap.end() == sEventStringsMap.find("add") )  	{  		sEventStringsMap["add"] = -			getFormattedUIString("add_session_event"); +			getString("add_session_event");  	}  	if ( sEventStringsMap.end() == sEventStringsMap.find("message") )  	{  		sEventStringsMap["message"] = -			getFormattedUIString("message_session_event"); +			getString("message_session_event");  	}  	if ( sEventStringsMap.end() == sEventStringsMap.find("mute") )  	{ -		sEventStringsMap["mute"] = getFormattedUIString( -			"mute_agent_event"); +		sEventStringsMap["mute"] = +			getString("mute_agent_event");  	}  	if ( sForceCloseSessionMap.end() ==  		 sForceCloseSessionMap.find("removed") )  	{  		sForceCloseSessionMap["removed"] = -			getFormattedUIString("removed_from_group"); +			getString("removed_from_group");  	}  	if ( sForceCloseSessionMap.end() ==  		 sForceCloseSessionMap.find("no ability") )  	{  		sForceCloseSessionMap["no ability"] = -			getFormattedUIString("close_on_no_ability"); +			getString("close_on_no_ability");  	}  	return TRUE; @@ -1015,12 +1015,12 @@ BOOL LLIMMgr::getFloaterOpen()  void LLIMMgr::disconnectAllSessions()  {  	LLFloaterIMPanel* floater = NULL; -	std::set<LLViewHandle>::iterator handle_it; +	std::set<LLHandle<LLFloater> >::iterator handle_it;  	for(handle_it = mFloaters.begin();  		handle_it != mFloaters.end();  		)  	{ -		floater = (LLFloaterIMPanel*)LLFloater::getFloaterByHandle(*handle_it); +		floater = (LLFloaterIMPanel*)handle_it->get();  		// MUST do this BEFORE calling floater->onClose() because that may remove the item from the set, causing the subsequent increment to crash.  		++handle_it; @@ -1040,12 +1040,12 @@ void LLIMMgr::disconnectAllSessions()  LLFloaterIMPanel* LLIMMgr::findFloaterBySession(const LLUUID& session_id)  {  	LLFloaterIMPanel* rv = NULL; -	std::set<LLViewHandle>::iterator handle_it; +	std::set<LLHandle<LLFloater> >::iterator handle_it;  	for(handle_it = mFloaters.begin();  		handle_it != mFloaters.end();  		++handle_it)  	{ -		rv = (LLFloaterIMPanel*)LLFloater::getFloaterByHandle(*handle_it); +		rv = (LLFloaterIMPanel*)handle_it->get();  		if(rv && session_id == rv->getSessionID())  		{  			break; @@ -1171,7 +1171,7 @@ LLFloaterIMPanel* LLIMMgr::createFloater(  													 session_id,  													 other_participant_id,  													 dialog); -	LLTabContainerCommon::eInsertionPoint i_pt = user_initiated ? LLTabContainerCommon::RIGHT_OF_CURRENT : LLTabContainerCommon::END; +	LLTabContainer::eInsertionPoint i_pt = user_initiated ? LLTabContainer::RIGHT_OF_CURRENT : LLTabContainer::END;  	LLFloaterChatterBox::getInstance(LLSD())->addFloater(floater, FALSE, i_pt);  	mFloaters.insert(floater->getHandle());  	return floater; @@ -1197,7 +1197,7 @@ LLFloaterIMPanel* LLIMMgr::createFloater(  													 other_participant_id,  													 ids,  													 dialog); -	LLTabContainerCommon::eInsertionPoint i_pt = user_initiated ? LLTabContainerCommon::RIGHT_OF_CURRENT : LLTabContainerCommon::END; +	LLTabContainer::eInsertionPoint i_pt = user_initiated ? LLTabContainer::RIGHT_OF_CURRENT : LLTabContainer::END;  	LLFloaterChatterBox::getInstance(LLSD())->addFloater(floater, FALSE, i_pt);  	mFloaters.insert(floater->getHandle());  	return floater; @@ -1219,8 +1219,7 @@ void LLIMMgr::noteOfflineUsers(  		for(S32 i = 0; i < count; ++i)  		{  			info = at.getBuddyInfo(ids.get(i)); -			char first[DB_FIRST_NAME_BUF_SIZE];		/*Flawfinder: ignore*/ -			char last[DB_LAST_NAME_BUF_SIZE];		/*Flawfinder: ignore*/ +			std::string first, last;  			if(info && !info->isOnline()  			   && gCacheName->getName(ids.get(i), first, last))  			{ @@ -1628,3 +1627,4 @@ LLHTTPRegistration<LLViewerChatterBoxSessionUpdate>  LLHTTPRegistration<LLViewerChatterBoxInvitation>      gHTTPRegistrationMessageChatterBoxInvitation(  		"/message/ChatterBoxInvitation"); + diff --git a/indra/newview/llimview.h b/indra/newview/llimview.h index 11a6905a63..e787368324 100644 --- a/indra/newview/llimview.h +++ b/indra/newview/llimview.h @@ -165,7 +165,7 @@ public:  	void clearPendingAgentListUpdates(const LLUUID& session_id);  	//HACK: need a better way of enumerating existing session, or listening to session create/destroy events -	const std::set<LLViewHandle>& getIMFloaterHandles() { return mFloaters; } +	const std::set<LLHandle<LLFloater> >& getIMFloaterHandles() { return mFloaters; }  private:  	class LLIMSessionInvite; @@ -199,7 +199,7 @@ private:  	static void onInviteNameLookup(const LLUUID& id, const char* first, const char* last, BOOL is_group, void* userdata);  private: -	std::set<LLViewHandle> mFloaters; +	std::set<LLHandle<LLFloater> > mFloaters;  	LLFriendObserver* mFriendObserver;  	// An IM has been received that you haven't seen yet. diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index 2a260f6546..0e17d8503d 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -488,11 +488,11 @@ void LLInvFVBridge::buildContextMenu(LLMenuGL& menu, U32 flags)  }  // *TODO: remove this -BOOL LLInvFVBridge::startDrag(EDragAndDropType* type, LLUUID* id) +BOOL LLInvFVBridge::startDrag(EDragAndDropType* type, LLUUID* id) const  {  	BOOL rv = FALSE; -	LLInventoryObject* obj = getInventoryObject(); +	const LLInventoryObject* obj = getInventoryObject();  	if(obj)  	{ diff --git a/indra/newview/llinventorybridge.h b/indra/newview/llinventorybridge.h index c61fa7f2b6..9ef666b357 100644 --- a/indra/newview/llinventorybridge.h +++ b/indra/newview/llinventorybridge.h @@ -188,7 +188,7 @@ public:  	void getClipboardEntries(bool show_asset_id, std::vector<LLString> &items,   		std::vector<LLString> &disabled_items, U32 flags);  	virtual void buildContextMenu(LLMenuGL& menu, U32 flags); -	virtual BOOL startDrag(EDragAndDropType* type, LLUUID* id); +	virtual BOOL startDrag(EDragAndDropType* type, LLUUID* id) const;  	virtual BOOL dragOrDrop(MASK mask, BOOL drop,  							EDragAndDropType cargo_type,  							void* cargo_data) { return FALSE; } diff --git a/indra/newview/lljoystickbutton.cpp b/indra/newview/lljoystickbutton.cpp index 30106443c0..9e0fa26f25 100644 --- a/indra/newview/lljoystickbutton.cpp +++ b/indra/newview/lljoystickbutton.cpp @@ -72,18 +72,18 @@ LLJoystick::LLJoystick(  	mHeldDown(FALSE),  	mHeldDownTimer()  { -	mHeldDownCallback = &LLJoystick::onHeldDown; -	mCallbackUserData = this; +	setHeldDownCallback(&LLJoystick::onHeldDown); +	setCallbackUserData(this);  }  void LLJoystick::updateSlop()  { -	mVertSlopNear = mRect.getHeight(); -	mVertSlopFar = mRect.getHeight() * 2; +	mVertSlopNear = getRect().getHeight(); +	mVertSlopFar = getRect().getHeight() * 2; -	mHorizSlopNear = mRect.getWidth(); -	mHorizSlopFar = mRect.getWidth() * 2; +	mHorizSlopNear = getRect().getWidth(); +	mHorizSlopFar = getRect().getWidth() * 2;  	// Compute initial mouse offset based on initial quadrant.  	// Place the mouse evenly between the near and far zones. @@ -163,7 +163,7 @@ F32 LLJoystick::getElapsedHeldDownTime()  {  	if( mHeldDown )  	{ -		return mMouseDownTimer.getElapsedTimeF32(); +		return getHeldDownTime();  	}  	else  	{ @@ -244,13 +244,13 @@ LLXMLNodePtr LLJoystick::getXML(bool save_children) const  {  	LLXMLNodePtr node = LLUICtrl::getXML(); -	node->createChild("halign", TRUE)->setStringValue(LLFontGL::nameFromHAlign(mHAlign)); +	node->createChild("halign", TRUE)->setStringValue(LLFontGL::nameFromHAlign(getHAlign()));  	node->createChild("quadrant", TRUE)->setStringValue(nameFromQuadrant(mInitialQuadrant)); -	addImageAttributeToXML(node,mImageUnselectedName,mImageUnselectedID,"image_unselected"); -	addImageAttributeToXML(node,mImageSelectedName,mImageSelectedID,"image_selected"); +	addImageAttributeToXML(node,getImageUnselectedName(),getImageUnselectedID(),"image_unselected"); +	addImageAttributeToXML(node,getImageSelectedName(),getImageSelectedID(),"image_selected"); -	node->createChild("scale_image", TRUE)->setBoolValue(mScaleImage); +	node->createChild("scale_image", TRUE)->setBoolValue(getScaleImage());  	return node;  } @@ -504,8 +504,8 @@ BOOL LLJoystickCameraRotate::handleMouseDown(S32 x, S32 y, MASK mask)  	updateSlop();  	// Set initial offset based on initial click location -	S32 horiz_center = mRect.getWidth() / 2; -	S32 vert_center = mRect.getHeight() / 2; +	S32 horiz_center = getRect().getWidth() / 2; +	S32 vert_center = getRect().getHeight() / 2;  	S32 dx = x - horiz_center;  	S32 dy = y - vert_center; @@ -607,26 +607,26 @@ void LLJoystickCameraRotate::draw()  	{  		LLGLSUIDefault gls_ui; -		mImageUnselected->draw( 0, 0 ); +		getImageUnselected()->draw( 0, 0 );  		if( mInTop )  		{ -			drawRotatedImage( mImageSelected->getImage(), 0 ); +			drawRotatedImage( getImageSelected()->getImage(), 0 );  		}  		if( mInRight )  		{ -			drawRotatedImage( mImageSelected->getImage(), 1 ); +			drawRotatedImage( getImageSelected()->getImage(), 1 );  		}  		if( mInBottom )  		{ -			drawRotatedImage( mImageSelected->getImage(), 2 ); +			drawRotatedImage( getImageSelected()->getImage(), 2 );  		}  		if( mInLeft )  		{ -			drawRotatedImage( mImageSelected->getImage(), 3 ); +			drawRotatedImage( getImageSelected()->getImage(), 3 );  		}  		if (sDebugRects) @@ -637,7 +637,7 @@ void LLJoystickCameraRotate::draw()  }  // Draws image rotated by multiples of 90 degrees -void LLJoystickCameraRotate::drawRotatedImage( LLImageGL* image, S32 rotations ) +void LLJoystickCameraRotate::drawRotatedImage( const LLImageGL* image, S32 rotations )  {  	S32 width = image->getWidth();  	S32 height = image->getHeight(); @@ -732,7 +732,7 @@ BOOL LLJoystickCameraZoom::handleMouseDown(S32 x, S32 y, MASK mask)  	if( handled )  	{ -		if (mFirstMouse.mY > mRect.getHeight() / 2) +		if (mFirstMouse.mY > getRect().getHeight() / 2)  		{  			mInitialQuadrant = JQ_UP;  		} @@ -801,7 +801,7 @@ void LLJoystickCameraZoom::draw()  		}  		else  		{ -			mImageUnselected->draw( 0, 0 ); +			getImageUnselected()->draw( 0, 0 );  		}  		if (sDebugRects) @@ -813,11 +813,11 @@ void LLJoystickCameraZoom::draw()  void LLJoystickCameraZoom::updateSlop()  { -	mVertSlopNear = mRect.getHeight() / 4; -	mVertSlopFar = mRect.getHeight() / 2; +	mVertSlopNear = getRect().getHeight() / 4; +	mVertSlopFar = getRect().getHeight() / 2; -	mHorizSlopNear = mRect.getWidth() / 4; -	mHorizSlopFar = mRect.getWidth() / 2; +	mHorizSlopNear = getRect().getWidth() / 4; +	mHorizSlopFar = getRect().getWidth() / 2;  	// Compute initial mouse offset based on initial quadrant.  	// Place the mouse evenly between the near and far zones. diff --git a/indra/newview/lljoystickbutton.h b/indra/newview/lljoystickbutton.h index 1524b4f232..2cd53b4146 100644 --- a/indra/newview/lljoystickbutton.h +++ b/indra/newview/lljoystickbutton.h @@ -140,7 +140,7 @@ public:  protected:  	F32				getOrbitRate();  	virtual void	updateSlop(); -	void			drawRotatedImage( LLImageGL* image, S32 rotations ); +	void			drawRotatedImage( const LLImageGL* image, S32 rotations );  protected:  	BOOL			mInLeft; diff --git a/indra/newview/llmanip.h b/indra/newview/llmanip.h index 8c51746d1c..2dd0eab8b0 100644 --- a/indra/newview/llmanip.h +++ b/indra/newview/llmanip.h @@ -135,7 +135,7 @@ public:  	EManipPart			getHighlightedPart() { return mHighlightedPart; } -	LLHandle<LLObjectSelection> getSelection(); +	LLSafeHandle<LLObjectSelection> getSelection();  protected:  	LLVector3			getSavedPivotPoint() const; @@ -153,7 +153,7 @@ protected:  protected:  	LLFrameTimer		mHelpTextTimer;  	BOOL				mInSnapRegime; -	LLHandle<LLObjectSelection> mObjectSelection; +	LLSafeHandle<LLObjectSelection> mObjectSelection;  	EManipPart			mHighlightedPart;  	static F32			sHelpTextVisibleTime; diff --git a/indra/newview/llmemoryview.cpp b/indra/newview/llmemoryview.cpp index a698c53f7f..616fabebf7 100644 --- a/indra/newview/llmemoryview.cpp +++ b/indra/newview/llmemoryview.cpp @@ -147,8 +147,8 @@ static const int MTV_DISPLAY_NUM  = (sizeof(mtv_display_table)/sizeof(mtv_displa  void LLMemoryView::draw()  {  	std::string tdesc; -	S32 width = mRect.getWidth(); -	S32 height = mRect.getHeight(); +	S32 width = getRect().getWidth(); +	S32 height = getRect().getHeight();  	LLGLSUIDefault gls_ui;  	LLGLSNoTexture gls_no_tex; diff --git a/indra/newview/llnamebox.cpp b/indra/newview/llnamebox.cpp index b5021eff9c..17185299a8 100644 --- a/indra/newview/llnamebox.cpp +++ b/indra/newview/llnamebox.cpp @@ -70,24 +70,15 @@ void LLNameBox::setNameID(const LLUUID& name_id, BOOL is_group)  {  	mNameID = name_id; -	char first[DB_FIRST_NAME_BUF_SIZE];		/*Flawfinder: ignore*/ -	char last[DB_LAST_NAME_BUF_SIZE];		/*Flawfinder: ignore*/ -	char group_name[DB_GROUP_NAME_BUF_SIZE];		/*Flawfinder: ignore*/ -	LLString name; +	std::string name;  	if (!is_group)  	{ -		gCacheName->getName(name_id, first, last); - -		name.assign(first); -		name.append(1, ' '); -		name.append(last); +		gCacheName->getFullName(name_id, name);  	}  	else  	{ -		gCacheName->getGroupName(name_id, group_name); - -		name.assign(group_name); +		gCacheName->getGroupName(name_id, name);  	}  	setText(name); diff --git a/indra/newview/llnameeditor.cpp b/indra/newview/llnameeditor.cpp index 1ca702b0a7..a36c67a879 100644 --- a/indra/newview/llnameeditor.cpp +++ b/indra/newview/llnameeditor.cpp @@ -90,23 +90,15 @@ void LLNameEditor::setNameID(const LLUUID& name_id, BOOL is_group)  {  	mNameID = name_id; -	char first[DB_FIRST_NAME_BUF_SIZE];		/*Flawfinder: ignore*/ -	char last[DB_LAST_NAME_BUF_SIZE];		/*Flawfinder: ignore*/ -	char group_name[DB_GROUP_NAME_BUF_SIZE];		/*Flawfinder: ignore*/ -	LLString name; +	std::string name;  	if (!is_group)  	{ -		gCacheName->getName(name_id, first, last); - -		name.assign(first); -		name.append(1, ' '); -		name.append(last); +		gCacheName->getFullName(name_id, name);  	}  	else  	{ -		gCacheName->getGroupName(name_id, group_name); -		name.assign(group_name); +		gCacheName->getGroupName(name_id, name);  	}  	setText(name); diff --git a/indra/newview/llnamelistctrl.cpp b/indra/newview/llnamelistctrl.cpp index 9dd37cf47d..a3faa55a06 100644 --- a/indra/newview/llnamelistctrl.cpp +++ b/indra/newview/llnamelistctrl.cpp @@ -73,15 +73,9 @@ BOOL LLNameListCtrl::addNameItem(const LLUUID& agent_id, EAddPosition pos,  {  	//llinfos << "LLNameListCtrl::addNameItem " << agent_id << llendl; -	char first[DB_FIRST_NAME_BUF_SIZE];		/*Flawfinder: ignore*/ -	char last[DB_LAST_NAME_BUF_SIZE];		/*Flawfinder: ignore*/ +	std::string fullname; +	BOOL result = gCacheName->getFullName(agent_id, fullname); -	BOOL result = gCacheName->getName(agent_id, first, last); - -	LLString fullname; -	fullname.assign(first); -	fullname.append(1, ' '); -	fullname.append(last);  	fullname.append(suffix);  	addStringUUIDItem(fullname, agent_id, pos, enabled); @@ -142,7 +136,7 @@ void LLNameListCtrl::addGroupNameItem(const LLUUID& group_id, EAddPosition pos,  									  BOOL enabled)  {  	//llinfos << "LLNameListCtrl::addGroupNameItem " << group_id << llendl; -	char group_name[DB_GROUP_NAME_BUF_SIZE];		/*Flawfinder: ignore*/ +	std::string group_name;  	gCacheName->getGroupName(group_id, group_name);  	addStringUUIDItem(group_name, group_id, pos, enabled);  } @@ -153,7 +147,7 @@ void LLNameListCtrl::addGroupNameItem(LLScrollListItem* item, EAddPosition pos)  {  	//llinfos << "LLNameListCtrl::addGroupNameItem " << item->getUUID() << llendl; -	char group_name[DB_GROUP_NAME_BUF_SIZE];		/*Flawfinder: ignore*/ +	std::string group_name;  	gCacheName->getGroupName(item->getUUID(), group_name);  	LLScrollListCell* cell = (LLScrollListCell*)item->getColumn(mNameColumnIndex); @@ -166,15 +160,8 @@ BOOL LLNameListCtrl::addNameItem(LLScrollListItem* item, EAddPosition pos)  {  	//llinfos << "LLNameListCtrl::addNameItem " << item->getUUID() << llendl; -	char first[DB_FIRST_NAME_BUF_SIZE];		/*Flawfinder: ignore*/ -	char last[DB_LAST_NAME_BUF_SIZE];		/*Flawfinder: ignore*/ - -	BOOL result = gCacheName->getName(item->getUUID(), first, last); - -	LLString fullname; -	fullname.assign(first); -	fullname.append(1, ' '); -	fullname.append(last); +	std::string fullname; +	BOOL result = gCacheName->getFullName(item->getUUID(), fullname);  	LLScrollListCell* cell = (LLScrollListCell*)item->getColumn(mNameColumnIndex);  	((LLScrollListText*)cell)->setText( fullname ); @@ -195,17 +182,12 @@ LLScrollListItem* LLNameListCtrl::addElement(const LLSD& value, EAddPosition pos  {  	LLScrollListItem* item = LLScrollListCtrl::addElement(value, pos, userdata); -	char first[DB_FIRST_NAME_BUF_SIZE];		/*Flawfinder: ignore*/ -	char last[DB_LAST_NAME_BUF_SIZE];		/*Flawfinder: ignore*/ -  	// use supplied name by default -	LLString fullname = value["name"].asString(); +	std::string fullname = value["name"].asString();  	if (value["target"].asString() == "GROUP")  	{ -		char group_name[DB_GROUP_NAME_BUF_SIZE];		/*Flawfinder: ignore*/ -		gCacheName->getGroupName(item->getUUID(), group_name); +		gCacheName->getGroupName(item->getUUID(), fullname);  		// fullname will be "nobody" if group not found -		fullname = group_name;  	}  	else if (value["target"].asString() == "SPECIAL")  	{ @@ -213,11 +195,10 @@ LLScrollListItem* LLNameListCtrl::addElement(const LLSD& value, EAddPosition pos  	}  	else // normal resident  	{ -		if (gCacheName->getName(item->getUUID(), first, last)) +		std::string name; +		if (gCacheName->getFullName(item->getUUID(), name))  		{ -			fullname.assign(first); -			fullname.append(1, ' '); -			fullname.append(last); +			fullname = name;  		}  	} @@ -268,7 +249,7 @@ void LLNameListCtrl::refresh(const LLUUID& id, const char* first,  	// TODO: scan items for that ID, fix if necessary  	item_list::iterator iter; -	for (iter = mItemList.begin(); iter != mItemList.end(); iter++) +	for (iter = getItemList().begin(); iter != getItemList().end(); iter++)  	{  		LLScrollListItem* item = *iter;  		if (item->getUUID() == id) diff --git a/indra/newview/llnetmap.cpp b/indra/newview/llnetmap.cpp index c3128652fe..257e87171a 100644 --- a/indra/newview/llnetmap.cpp +++ b/indra/newview/llnetmap.cpp @@ -158,7 +158,7 @@ LLNetMap::LLNetMap(  										&LLTracker::isTracking, NULL) );  	menu->setVisible(FALSE);  	addChild(menu); -	mPopupMenuHandle = menu->mViewHandle; +	mPopupMenuHandle = menu->getHandle();  	sInstance = this; @@ -191,8 +191,8 @@ void LLNetMap::setScale( F32 scale )  	if (mObjectImagep.notNull())  	{ -		F32 half_width = (F32)(mRect.getWidth() / 2); -		F32 half_height = (F32)(mRect.getHeight() / 2); +		F32 half_width = (F32)(getRect().getWidth() / 2); +		F32 half_height = (F32)(getRect().getHeight() / 2);  		F32 radius = sqrt( half_width * half_width + half_height * half_height );  		F32 region_widths = (2.f*radius)/gMiniMapScale; @@ -257,12 +257,12 @@ void LLNetMap::draw()  			// Draw background rectangle  			glColor4fv( mBackgroundColor.mV ); -			gl_rect_2d(0, mRect.getHeight(), mRect.getWidth(), 0); +			gl_rect_2d(0, getRect().getHeight(), getRect().getWidth(), 0);  		}  		// region 0,0 is in the middle -		S32 center_sw_left = mRect.getWidth() / 2 + llfloor(mCurPanX); -		S32 center_sw_bottom = mRect.getHeight() / 2 + llfloor(mCurPanY); +		S32 center_sw_left = getRect().getWidth() / 2 + llfloor(mCurPanX); +		S32 center_sw_bottom = getRect().getHeight() / 2 + llfloor(mCurPanY);  		glPushMatrix(); @@ -542,8 +542,8 @@ LLVector3 LLNetMap::globalPosToView( const LLVector3d& global_pos )  		pos_local.rotVec( rot );  	} -	pos_local.mV[VX] += mRect.getWidth() / 2 + mCurPanX; -	pos_local.mV[VY] += mRect.getHeight() / 2 + mCurPanY; +	pos_local.mV[VX] += getRect().getWidth() / 2 + mCurPanX; +	pos_local.mV[VY] += getRect().getHeight() / 2 + mCurPanY;  	return pos_local;  } @@ -554,15 +554,15 @@ void LLNetMap::drawTracking(const LLVector3d& pos_global, const LLColor4& color,  	LLVector3 pos_local = globalPosToView( pos_global );  	if( (pos_local.mV[VX] < 0) ||  		(pos_local.mV[VY] < 0) || -		(pos_local.mV[VX] >= mRect.getWidth()) || -		(pos_local.mV[VY] >= mRect.getHeight()) ) +		(pos_local.mV[VX] >= getRect().getWidth()) || +		(pos_local.mV[VY] >= getRect().getHeight()) )  	{  		if (draw_arrow)  		{  			S32 x = llround( pos_local.mV[VX] );  			S32 y = llround( pos_local.mV[VY] ); -			LLWorldMapView::drawTrackingCircle( mRect, x, y, color, 1, 10 ); -			LLWorldMapView::drawTrackingArrow( mRect, x, y, color ); +			LLWorldMapView::drawTrackingCircle( getRect(), x, y, color, 1, 10 ); +			LLWorldMapView::drawTrackingArrow( getRect(), x, y, color );  		}  	}  	else @@ -576,8 +576,8 @@ void LLNetMap::drawTracking(const LLVector3d& pos_global, const LLColor4& color,  LLVector3d LLNetMap::viewPosToGlobal( S32 x, S32 y )  { -	x -= llround(mRect.getWidth() / 2 + mCurPanX); -	y -= llround(mRect.getHeight() / 2 + mCurPanY); +	x -= llround(getRect().getWidth() / 2 + mCurPanX); +	y -= llround(getRect().getHeight() / 2 + mCurPanY);  	LLVector3 pos_local( (F32)x, (F32)y, 0 ); @@ -612,35 +612,32 @@ BOOL LLNetMap::handleToolTip( S32 x, S32 y, LLString& msg, LLRect* sticky_rect_s  	{  		return FALSE;  	} -	if( getVisible() && pointInView( x, y ) ) +	LLViewerRegion*	region = gWorldPointer->getRegionFromPosGlobal( viewPosToGlobal( x, y ) ); +	if( region )  	{ -		LLViewerRegion*	region = gWorldPointer->getRegionFromPosGlobal( viewPosToGlobal( x, y ) ); -		if( region ) -		{ -			msg.assign( region->getName() ); +		msg.assign( region->getName() );  #ifndef LL_RELEASE_FOR_DOWNLOAD -			char buffer[MAX_STRING];		/*Flawfinder: ignore*/ -			msg.append("\n"); -			region->getHost().getHostName(buffer, MAX_STRING); -			msg.append(buffer); -			msg.append("\n"); -			region->getHost().getString(buffer, MAX_STRING); -			msg.append(buffer); +		char buffer[MAX_STRING];		/*Flawfinder: ignore*/ +		msg.append("\n"); +		region->getHost().getHostName(buffer, MAX_STRING); +		msg.append(buffer); +		msg.append("\n"); +		region->getHost().getString(buffer, MAX_STRING); +		msg.append(buffer);  #endif -			// *TODO: put this under the control of XUI so it can be -			// translated. -			msg.append("\n(Double-click to open Map)"); - -			S32 SLOP = 4; -			localPointToScreen(  -				x - SLOP, y - SLOP,  -				&(sticky_rect_screen->mLeft), &(sticky_rect_screen->mBottom) ); -			sticky_rect_screen->mRight = sticky_rect_screen->mLeft + 2 * SLOP; -			sticky_rect_screen->mTop = sticky_rect_screen->mBottom + 2 * SLOP; -		} -		handled = TRUE; +		// *TODO: put this under the control of XUI so it can be +		// translated. +		msg.append("\n(Double-click to open Map)"); + +		S32 SLOP = 4; +		localPointToScreen(  +			x - SLOP, y - SLOP,  +			&(sticky_rect_screen->mLeft), &(sticky_rect_screen->mBottom) ); +		sticky_rect_screen->mRight = sticky_rect_screen->mLeft + 2 * SLOP; +		sticky_rect_screen->mTop = sticky_rect_screen->mBottom + 2 * SLOP;  	} +	handled = TRUE;  	return handled;  } @@ -651,8 +648,8 @@ void LLNetMap::setDirectionPos( LLTextBox* text_box, F32 rotation )  	// Rotation of 0 means x = 1, y = 0 on the unit circle. -	F32 map_half_height = (F32)(mRect.getHeight() / 2); -	F32 map_half_width = (F32)(mRect.getWidth() / 2); +	F32 map_half_height = (F32)(getRect().getHeight() / 2); +	F32 map_half_width = (F32)(getRect().getWidth() / 2);  	F32 text_half_height = (F32)(text_box->getRect().getHeight() / 2);  	F32 text_half_width = (F32)(text_box->getRect().getWidth() / 2);  	F32 radius = llmin( map_half_height - text_half_height, map_half_width - text_half_width ); @@ -762,9 +759,9 @@ void LLNetMap::renderPoint(const LLVector3 &pos_local, const LLColor4U &color,  void LLNetMap::createObjectImage()  { -	// Find the size of the side of a square that surrounds the circle that surrounds mRect. -	F32 half_width = (F32)(mRect.getWidth() / 2); -	F32 half_height = (F32)(mRect.getHeight() / 2); +	// Find the size of the side of a square that surrounds the circle that surrounds getRect(). +	F32 half_width = (F32)(getRect().getWidth() / 2); +	F32 half_height = (F32)(getRect().getHeight() / 2);  	F32 radius = sqrt( half_width * half_width + half_height * half_height );  	S32 square_size = S32( 2 * radius ); @@ -798,7 +795,7 @@ BOOL LLNetMap::handleDoubleClick( S32 x, S32 y, MASK mask )  BOOL LLNetMap::handleRightMouseDown(S32 x, S32 y, MASK mask)  { -	LLMenuGL* menu = (LLMenuGL*)LLView::getViewByHandle(mPopupMenuHandle); +	LLMenuGL* menu = (LLMenuGL*)mPopupMenuHandle.get();  	if (menu)  	{  		menu->buildDrawLabels(); diff --git a/indra/newview/llnetmap.h b/indra/newview/llnetmap.h index 40d80646cf..d375413d1d 100644 --- a/indra/newview/llnetmap.h +++ b/indra/newview/llnetmap.h @@ -92,7 +92,7 @@ protected:  	static void		fly( const LLVector3d& destination );  public: -	LLViewHandle	mPopupMenuHandle; +	LLHandle<LLView>	mPopupMenuHandle;  	LLColor4		mBackgroundColor;  	F32				mScale;					// Size of a region in pixels diff --git a/indra/newview/lloverlaybar.cpp b/indra/newview/lloverlaybar.cpp index 2c33cccf71..8af83af272 100644 --- a/indra/newview/lloverlaybar.cpp +++ b/indra/newview/lloverlaybar.cpp @@ -123,7 +123,7 @@ BOOL LLOverlayBar::postBuild()  	childSetAction("Stand Up",onClickStandUp,this);  	childSetVisible("chat_bar", gSavedSettings.getBOOL("ChatVisible")); -	mIsFocusRoot = TRUE; +	setFocusRoot(TRUE);  	mBuilt = true;  	layoutButtons(); diff --git a/indra/newview/llpanelavatar.cpp b/indra/newview/llpanelavatar.cpp index d9416bbf37..7c8acd3947 100644 --- a/indra/newview/llpanelavatar.cpp +++ b/indra/newview/llpanelavatar.cpp @@ -159,7 +159,7 @@ BOOL LLDropTarget::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,  	{  		// check if inside  		//LLRect parent_rect = mParentView->getRect(); -		//mRect.set(0, parent_rect.getHeight(), parent_rect.getWidth(), 0); +		//getRect().set(0, parent_rect.getHeight(), parent_rect.getWidth(), 0);  		handled = TRUE;  		// check the type @@ -282,13 +282,12 @@ void LLPanelAvatarSecondLife::updatePartnerName()  {  	if (mPartnerID.notNull())  	{ -		char first[128];		/*Flawfinder: ignore*/ -		char last[128];		/*Flawfinder: ignore*/ +		std::string first, last;  		BOOL found = gCacheName->getName(mPartnerID, first, last);  		if (found)  		{ -			childSetTextArg("partner_edit", "[FIRST]", LLString(first)); -			childSetTextArg("partner_edit", "[LAST]", LLString(last)); +			childSetTextArg("partner_edit", "[FIRST]", first); +			childSetTextArg("partner_edit", "[LAST]", last);  		}  		childSetEnabled("partner_info", TRUE);  	} @@ -301,7 +300,7 @@ void LLPanelAvatarSecondLife::updatePartnerName()  //-----------------------------------------------------------------------------  void LLPanelAvatarSecondLife::clearControls()  { -	LLTextureCtrl*	image_ctrl = LLUICtrlFactory::getTexturePickerByName(this,"img"); +	LLTextureCtrl*	image_ctrl = getChild<LLTextureCtrl>("img");  	if(image_ctrl)  	{  		image_ctrl->setImageAssetID(LLUUID::null); @@ -495,7 +494,7 @@ BOOL LLPanelAvatarWeb::postBuild(void)  	childSetControlName("auto_load","AutoLoadWebProfiles"); -	mWebBrowser = (LLWebBrowserCtrl*)getChildByName("profile_html"); +	mWebBrowser = getChild<LLWebBrowserCtrl>("profile_html");  	// links open in internally   	mWebBrowser->setOpenInExternalBrowser( false ); @@ -722,7 +721,7 @@ void LLPanelAvatarAdvanced::enableControls(BOOL self)  		// setEnable is called, for some reason  		if (mWantToEdit) mWantToEdit->setReadOnlyBgColor(LLColor4::transparent);  		if (mSkillsEdit) mSkillsEdit->setReadOnlyBgColor(LLColor4::transparent); -		LLLineEditor* languages_edit = (LLLineEditor*)getChildByName("languages_edit"); +		LLLineEditor* languages_edit = getChild<LLLineEditor>("languages_edit");  		languages_edit->setReadOnlyBgColor(LLColor4::transparent);  	}  } @@ -798,7 +797,7 @@ void LLPanelAvatarNotes::refresh()  void LLPanelAvatarNotes::clearControls()  { -	childSetText("notes edit", childGetText("Loading")); +	childSetText("notes edit", getString("Loading"));  	childSetEnabled("notes edit", false);  } @@ -825,7 +824,7 @@ void LLPanelAvatarClassified::refresh()  {  	BOOL self = (gAgent.getID() == getPanelAvatar()->getAvatarID()); -	LLTabContainerCommon* tabs = LLUICtrlFactory::getTabContainerByName(this,"classified tab"); +	LLTabContainer* tabs = LLUICtrlFactory::getTabContainerByName(this,"classified tab");  	S32 tab_count = tabs ? tabs->getTabCount() : 0; @@ -859,7 +858,7 @@ void LLPanelAvatarClassified::refresh()  BOOL LLPanelAvatarClassified::canClose()  { -	LLTabContainerCommon* tabs = LLViewerUICtrlFactory::getTabContainerByName(this, "classified tab"); +	LLTabContainer* tabs = LLViewerUICtrlFactory::getTabContainerByName(this, "classified tab");  	for (S32 i = 0; i < tabs->getTabCount(); i++)  	{  		LLPanelClassified* panel = (LLPanelClassified*)tabs->getPanelByIndex(i); @@ -873,7 +872,7 @@ BOOL LLPanelAvatarClassified::canClose()  BOOL LLPanelAvatarClassified::titleIsValid()  { -	LLTabContainerCommon* tabs = LLViewerUICtrlFactory::getTabContainerByName(this, "classified tab"); +	LLTabContainer* tabs = LLViewerUICtrlFactory::getTabContainerByName(this, "classified tab");  	if ( tabs )  	{  		LLPanelClassified* panel = (LLPanelClassified*)tabs->getCurrentPanel(); @@ -891,7 +890,7 @@ BOOL LLPanelAvatarClassified::titleIsValid()  void LLPanelAvatarClassified::apply()  { -	LLTabContainerCommon* tabs = LLViewerUICtrlFactory::getTabContainerByName(this, "classified tab"); +	LLTabContainer* tabs = LLViewerUICtrlFactory::getTabContainerByName(this, "classified tab");  	for (S32 i = 0; i < tabs->getTabCount(); i++)  	{  		LLPanelClassified* panel = (LLPanelClassified*)tabs->getPanelByIndex(i); @@ -902,7 +901,7 @@ void LLPanelAvatarClassified::apply()  void LLPanelAvatarClassified::deleteClassifiedPanels()  { -	LLTabContainerCommon* tabs = LLViewerUICtrlFactory::getTabContainerByName(this,"classified tab"); +	LLTabContainer* tabs = LLViewerUICtrlFactory::getTabContainerByName(this,"classified tab");  	if (tabs)  	{  		tabs->deleteAllTabs(); @@ -922,7 +921,7 @@ void LLPanelAvatarClassified::processAvatarClassifiedReply(LLMessageSystem* msg,  	char classified_name[DB_PICK_NAME_SIZE];		/*Flawfinder: ignore*/  	LLPanelClassified* panel_classified = NULL; -	LLTabContainerCommon* tabs = LLViewerUICtrlFactory::getTabContainerByName(this,"classified tab"); +	LLTabContainer* tabs = LLViewerUICtrlFactory::getTabContainerByName(this,"classified tab");  	// Don't remove old panels.  We need to be able to process multiple  	// packets for people who have lots of classifieds. JC @@ -933,7 +932,7 @@ void LLPanelAvatarClassified::processAvatarClassifiedReply(LLMessageSystem* msg,  		msg->getUUIDFast(_PREHASH_Data, _PREHASH_ClassifiedID, classified_id, block);  		msg->getStringFast(_PREHASH_Data, _PREHASH_Name, DB_PICK_NAME_SIZE, classified_name, block); -		panel_classified = new LLPanelClassified(FALSE); +		panel_classified = new LLPanelClassified(false, false);  		panel_classified->setClassifiedID(classified_id); @@ -978,9 +977,9 @@ void LLPanelAvatarClassified::callbackNew(S32 option, void* data)  	if (0 == option)  	{ -		LLPanelClassified* panel_classified = new LLPanelClassified(FALSE); +		LLPanelClassified* panel_classified = new LLPanelClassified(false, false);  		panel_classified->initNewClassified(); -		LLTabContainerCommon*	tabs = LLViewerUICtrlFactory::getTabContainerByName(self,"classified tab"); +		LLTabContainer*	tabs = LLViewerUICtrlFactory::getTabContainerByName(self,"classified tab");  		if(tabs)  		{  			tabs->addTabPanel(panel_classified, panel_classified->getClassifiedName()); @@ -995,7 +994,7 @@ void LLPanelAvatarClassified::onClickDelete(void* data)  {  	LLPanelAvatarClassified* self = (LLPanelAvatarClassified*)data; -	LLTabContainerCommon*	tabs = LLViewerUICtrlFactory::getTabContainerByName(self,"classified tab"); +	LLTabContainer*	tabs = LLViewerUICtrlFactory::getTabContainerByName(self,"classified tab");  	LLPanelClassified* panel_classified = NULL;  	if(tabs)  	{ @@ -1014,7 +1013,7 @@ void LLPanelAvatarClassified::onClickDelete(void* data)  void LLPanelAvatarClassified::callbackDelete(S32 option, void* data)  {  	LLPanelAvatarClassified* self = (LLPanelAvatarClassified*)data; -	LLTabContainerCommon*	tabs = LLViewerUICtrlFactory::getTabContainerByName(self,"classified tab"); +	LLTabContainer*	tabs = LLViewerUICtrlFactory::getTabContainerByName(self,"classified tab");  	LLPanelClassified* panel_classified=NULL;  	if(tabs)  	{ @@ -1059,14 +1058,12 @@ LLPanelAvatarPicks::LLPanelAvatarPicks(const std::string& name,  void LLPanelAvatarPicks::refresh()  {  	BOOL self = (gAgent.getID() == getPanelAvatar()->getAvatarID()); - -	LLTabContainerCommon*	tabs = LLViewerUICtrlFactory::getTabContainerByName(this,"picks tab"); +	LLTabContainer*	tabs = LLViewerUICtrlFactory::getTabContainerByName(this,"picks tab");  	S32 tab_count = tabs ? tabs->getTabCount() : 0; -	BOOL allow_new = (tab_count < MAX_AVATAR_PICKS); -	BOOL allow_delete = (tab_count > 0); - -	childSetEnabled("New...",self && allow_new); -	childSetEnabled("Delete...",self && allow_delete); +	childSetEnabled("New...",    self && tab_count < MAX_AVATAR_PICKS); +	childSetEnabled("Delete...", self && tab_count > 0); +	childSetVisible("New...",    self && getPanelAvatar()->isEditable()); +	childSetVisible("Delete...", self && getPanelAvatar()->isEditable());  	sendAvatarProfileRequestIfNeeded("avatarpicksrequest");  } @@ -1074,7 +1071,7 @@ void LLPanelAvatarPicks::refresh()  void LLPanelAvatarPicks::deletePickPanels()  { -	LLTabContainerCommon* tabs = LLUICtrlFactory::getTabContainerByName(this,"picks tab"); +	LLTabContainer* tabs = LLUICtrlFactory::getTabContainerByName(this,"picks tab");  	if(tabs)  	{  		tabs->deleteAllTabs(); @@ -1093,7 +1090,7 @@ void LLPanelAvatarPicks::processAvatarPicksReply(LLMessageSystem* msg, void**)  	char pick_name[DB_PICK_NAME_SIZE];		/*Flawfinder: ignore*/  	LLPanelPick* panel_pick = NULL; -	LLTabContainerCommon* tabs =  LLUICtrlFactory::getTabContainerByName(this,"picks tab"); +	LLTabContainer* tabs =  LLUICtrlFactory::getTabContainerByName(this,"picks tab");  	// Clear out all the old panels.  We'll replace them with the correct  	// number of new panels. @@ -1143,7 +1140,7 @@ void LLPanelAvatarPicks::onClickNew(void* data)  {  	LLPanelAvatarPicks* self = (LLPanelAvatarPicks*)data;  	LLPanelPick* panel_pick = new LLPanelPick(FALSE); -	LLTabContainerCommon* tabs =  LLUICtrlFactory::getTabContainerByName(self,"picks tab"); +	LLTabContainer* tabs =  LLUICtrlFactory::getTabContainerByName(self,"picks tab");  	panel_pick->initNewPick();  	if(tabs) @@ -1158,7 +1155,7 @@ void LLPanelAvatarPicks::onClickNew(void* data)  void LLPanelAvatarPicks::onClickDelete(void* data)  {  	LLPanelAvatarPicks* self = (LLPanelAvatarPicks*)data; -	LLTabContainerCommon* tabs =  LLUICtrlFactory::getTabContainerByName(self,"picks tab"); +	LLTabContainer* tabs =  LLUICtrlFactory::getTabContainerByName(self,"picks tab");  	LLPanelPick* panel_pick = tabs?(LLPanelPick*)tabs->getCurrentPanel():NULL;  	if (!panel_pick) return; @@ -1176,7 +1173,7 @@ void LLPanelAvatarPicks::onClickDelete(void* data)  void LLPanelAvatarPicks::callbackDelete(S32 option, void* data)  {  	LLPanelAvatarPicks* self = (LLPanelAvatarPicks*)data; -	LLTabContainerCommon* tabs = LLUICtrlFactory::getTabContainerByName(self,"picks tab"); +	LLTabContainer* tabs = LLUICtrlFactory::getTabContainerByName(self,"picks tab");  	LLPanelPick* panel_pick = tabs?(LLPanelPick*)tabs->getCurrentPanel():NULL;  	LLMessageSystem* msg = gMessageSystem; @@ -1393,7 +1390,7 @@ void LLPanelAvatar::setAvatarID(const LLUUID &avatar_id, const LLString &name,  	// Teens don't have this.  	if (mPanelFirstLife) mPanelFirstLife->enableControls(own_avatar && mAllowEdit); -	LLView *target_view = getChildByName("drop_target_rect", TRUE); +	LLView *target_view = getChild<LLView>("drop_target_rect");  	if(target_view)  	{  		if (mDropTarget) @@ -1453,6 +1450,8 @@ void LLPanelAvatar::setAvatarID(const LLUUID &avatar_id, const LLString &name,  			{  				childSetVisible("OK",FALSE);  				childSetEnabled("OK",FALSE); +				childSetVisible("Cancel",FALSE); +				childSetEnabled("Cancel",FALSE);  			}  			childSetVisible("Instant Message...",FALSE);  			childSetEnabled("Instant Message...",FALSE); @@ -1676,7 +1675,7 @@ void LLPanelAvatar::onClickOK(void *userdata)  	{  		self->sendAvatarPropertiesUpdate(); -		LLTabContainerCommon* tabs = LLUICtrlFactory::getTabContainerByName(self,"tab"); +		LLTabContainer* tabs = LLUICtrlFactory::getTabContainerByName(self,"tab");  		if ( tabs->getCurrentPanel() != self->mPanelClassified )  		{  			self->mPanelClassified->apply(); @@ -1743,7 +1742,7 @@ void LLPanelAvatar::sendAvatarNotesUpdate()  	std::string notes = mPanelNotes->childGetValue("notes edit").asString();  	if (!mHaveNotes -		&& (notes.empty() || notes == childGetText("Loading"))) +		&& (notes.empty() || notes == getString("Loading")))  	{  		// no notes from server and no user updates  		return; @@ -1844,7 +1843,7 @@ void LLPanelAvatar::processAvatarPropertiesReply(LLMessageSystem *msg, void**)  		if(caption_text.empty())  		{  			LLString::format_map_t args; -			caption_text = self->mPanelSecondLife->childGetValue("CaptionTextAcctInfo").asString(); +			caption_text = self->mPanelSecondLife->getString("CaptionTextAcctInfo");  			const char* ACCT_TYPE[] = {  				"AcctTypeResident", @@ -1853,7 +1852,7 @@ void LLPanelAvatar::processAvatarPropertiesReply(LLMessageSystem *msg, void**)  				"AcctTypeEmployee"  			};  			caption_index = llclamp(caption_index, (U8)0, (U8)(sizeof(ACCT_TYPE)/sizeof(ACCT_TYPE[0])-1)); -			args["[ACCTTYPE]"] = self->mPanelSecondLife->childGetValue(ACCT_TYPE[caption_index]).asString(); +			args["[ACCTTYPE]"] = self->mPanelSecondLife->getString(ACCT_TYPE[caption_index]);  			LLString payment_text = " ";  			const S32 DEFAULT_CAPTION_LINDEN_INDEX = 3; @@ -1871,10 +1870,10 @@ void LLPanelAvatar::processAvatarPropertiesReply(LLMessageSystem *msg, void**)  				{  					payment_text = "NoPaymentInfoOnFile";  				} -				args["[PAYMENTINFO]"] = self->mPanelSecondLife->childGetValue(payment_text).asString(); +				args["[PAYMENTINFO]"] = self->mPanelSecondLife->getString(payment_text);  				LLString age_text = age_verified ? "AgeVerified" : "NotAgeVerified";  				// Do not display age verification status at this time -				//args["[AGEVERIFICATION]"] = self->mPanelSecondLife->childGetValue(age_text).asString(); +				//args["[AGEVERIFICATION]"] = self->mPanelSecondLife->getString(age_text);  				args["[AGEVERIFICATION]"] = " ";  			}  			else @@ -1894,7 +1893,7 @@ void LLPanelAvatar::processAvatarPropertiesReply(LLMessageSystem *msg, void**)  		self->mPanelWeb->setWebURL(std::string(profile_url)); -		LLTextureCtrl*	image_ctrl = LLUICtrlFactory::getTexturePickerByName(self->mPanelSecondLife,"img"); +		LLTextureCtrl*	image_ctrl = self->mPanelSecondLife->getChild<LLTextureCtrl>("img");  		if(image_ctrl)  		{  			image_ctrl->setImageAssetID(image_id); @@ -1908,7 +1907,7 @@ void LLPanelAvatar::processAvatarPropertiesReply(LLMessageSystem *msg, void**)  		{  			// Teens don't get these  			self->mPanelFirstLife->childSetValue("about", fl_about_text); -			LLTextureCtrl*	image_ctrl = LLUICtrlFactory::getTexturePickerByName(self->mPanelFirstLife,"img"); +			LLTextureCtrl*	image_ctrl = self->mPanelFirstLife->getChild<LLTextureCtrl>("img");  			if(image_ctrl)  			{  				image_ctrl->setImageAssetID(fl_image_id); @@ -2074,7 +2073,7 @@ void LLPanelAvatar::sendAvatarPropertiesUpdate()  	if (mPanelFirstLife)  	{  		first_life_about_text = mPanelFirstLife->childGetValue("about").asString(); -		LLTextureCtrl*	image_ctrl = LLUICtrlFactory::getTexturePickerByName(mPanelFirstLife,"img"); +		LLTextureCtrl*	image_ctrl = mPanelFirstLife->getChild<LLTextureCtrl>("img");  		if(image_ctrl)  		{  			first_life_image_id = image_ctrl->getImageAssetID(); @@ -2091,7 +2090,7 @@ void LLPanelAvatar::sendAvatarPropertiesUpdate()  	msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID() );  	msg->nextBlockFast(_PREHASH_PropertiesData); -	LLTextureCtrl*	image_ctrl = LLUICtrlFactory::getTexturePickerByName(mPanelSecondLife,"img"); +	LLTextureCtrl*	image_ctrl = mPanelSecondLife->getChild<LLTextureCtrl>("img");  	if(image_ctrl)  	{  		msg->addUUIDFast(	_PREHASH_ImageID,	image_ctrl->getImageAssetID()); diff --git a/indra/newview/llpanelavatar.h b/indra/newview/llpanelavatar.h index d992c29304..6e5b7bfb41 100644 --- a/indra/newview/llpanelavatar.h +++ b/indra/newview/llpanelavatar.h @@ -46,7 +46,7 @@ class LLLineEditor;  class LLNameEditor;  class LLPanelAvatar;  class LLScrollListCtrl; -class LLTabContainerCommon; +class LLTabContainer;  class LLTextBox;  class LLTextEditor;  class LLTextureCtrl; @@ -302,6 +302,7 @@ public:  	void selectTabByName(std::string tab_name);  	BOOL haveData() { return mHaveProperties && mHaveStatistics; } +	BOOL isEditable() const { return mAllowEdit; }  	static void processAvatarPropertiesReply(LLMessageSystem *msg, void **);  	static void processAvatarInterestsReply(LLMessageSystem *msg, void **); @@ -366,7 +367,7 @@ private:  	// note is changed from database version  	bool						mHaveNotes;  	std::string					mLastNotes; -	LLTabContainerCommon*		mTab; +	LLTabContainer*		mTab;  	BOOL						mAllowEdit;  	typedef std::list<LLPanelAvatar*> panel_list_t; diff --git a/indra/newview/llpanelclassified.cpp b/indra/newview/llpanelclassified.cpp index f84ae06416..e24d258a22 100644 --- a/indra/newview/llpanelclassified.cpp +++ b/indra/newview/llpanelclassified.cpp @@ -144,7 +144,7 @@ public:  LLClassifiedTeleportHandler gClassifiedTeleportHandler;  */ -LLPanelClassified::LLPanelClassified(BOOL in_finder, bool from_search) +LLPanelClassified::LLPanelClassified(bool in_finder, bool from_search)  :	LLPanel("Classified Panel"),  	mInFinder(in_finder),  	mFromSearch(from_search), @@ -241,7 +241,7 @@ BOOL LLPanelClassified::postBuild()  	mDescEditor->setFocusReceivedCallback(onFocusReceived, this);  	mDescEditor->setCommitCallback(onCommitAny);  	mDescEditor->setCallbackUserData(this); -	mDescEditor->setTabToNextField(TRUE); +	mDescEditor->setTabsToNextField(TRUE);      mLocationEditor = LLViewerUICtrlFactory::getLineEditorByName(this, "location_editor"); @@ -403,13 +403,7 @@ void LLPanelClassified::initNewClassified()  		mCategoryCombo->setCurrentByIndex(0);  	} -	// default new classifieds to publish -	//mEnabledCheck->set(TRUE); - -	// delay commit until user hits save -	// sendClassifiedInfoUpdate(); - -	mUpdateBtn->setLabel(childGetText("publish_txt")); +	mUpdateBtn->setLabel(getString("publish_txt"));  } @@ -502,7 +496,7 @@ void LLPanelClassified::sendClassifiedInfoRequest()  		if (!url.empty())  		{  			llinfos << "Classified stat request via capability" << llendl; -			LLHTTPClient::post(url, body, new LLClassifiedStatsResponder(this->getHandle(), mClassifiedID)); +			LLHTTPClient::post(url, body, new LLClassifiedStatsResponder(((LLView*)this)->getHandle(), mClassifiedID));  		}  	}  } @@ -539,8 +533,6 @@ void LLPanelClassified::sendClassifiedInfoUpdate()  	msg->addUUIDFast(_PREHASH_SnapshotID, mSnapshotCtrl->getImageAssetID());  	msg->addVector3dFast(_PREHASH_PosGlobal, mPosGlobal);  	BOOL mature = mMatureCheck->get(); -	// Classifieds are always enabled/published 11/2005 JC -	//BOOL enabled = mEnabledCheck->get();  	BOOL auto_renew = FALSE;  	if (mAutoRenewCheck)   	{ @@ -671,14 +663,15 @@ void LLPanelClassified::processClassifiedInfoReply(LLMessageSystem *msg, void **  		}  		LLString datestr = llformat("%02d/%02d/%d", now->tm_mon+1, now->tm_mday, now->tm_year+1900); -		self->childSetTextArg("ad_placed_paid", "[DATE]", datestr); -		self->childSetTextArg("ad_placed_paid", "[AMT]", llformat("%d", price_for_listing));		 -		self->childSetText("classified_info_text", self->childGetValue("ad_placed_paid").asString()); +		LLString::format_map_t string_args; +		string_args["[DATE]"] = datestr; +		string_args["[AMT]"] = llformat("%d", price_for_listing); +		self->childSetText("classified_info_text", self->getString("ad_placed_paid", string_args));  		// If we got data from the database, we know the listing is paid for.  		self->mPaidFor = TRUE; -		self->mUpdateBtn->setLabel(self->childGetText("update_txt")); +		self->mUpdateBtn->setLabel(self->getString("update_txt"));      }  } @@ -727,9 +720,6 @@ void LLPanelClassified::refresh()  		mCategoryCombo->setEnabled(godlike);  		mCategoryCombo->setVisible(godlike); -		//mEnabledCheck->setVisible(godlike); -		//mEnabledCheck->setEnabled(godlike); -  		mMatureCheck->setEnabled(godlike);  		mMatureCheck->setVisible(godlike); @@ -750,8 +740,6 @@ void LLPanelClassified::refresh()  		//mPriceEditor->setEnabled(is_self);  		mCategoryCombo->setEnabled(is_self); -		//mEnabledCheck->setVisible(FALSE); -		//mEnabledCheck->setEnabled(is_self);  		mMatureCheck->setEnabled(is_self);  		if (mAutoRenewCheck) @@ -845,7 +833,7 @@ void LLPanelClassified::confirmPublish(S32 option)  	}  	else  	{ -		LLTabContainerVertical* tab = (LLTabContainerVertical*)getParent(); +		LLTabContainer* tab = (LLTabContainer*)getParent();  		tab->setCurrentTabName(mNameEditor->getText());  	} diff --git a/indra/newview/llpanelclassified.h b/indra/newview/llpanelclassified.h index cc82d33d33..f28795a4f2 100644 --- a/indra/newview/llpanelclassified.h +++ b/indra/newview/llpanelclassified.h @@ -57,7 +57,7 @@ class LLMessageSystem;  class LLPanelClassified : public LLPanel  {  public: -    LLPanelClassified(BOOL in_finder, bool from_search = false); +    LLPanelClassified(bool in_finder, bool from_search);      /*virtual*/ ~LLPanelClassified();  	void reset(); @@ -118,7 +118,7 @@ protected:  	BOOL checkDirty();		// Update and return mDirty  protected: -	BOOL mInFinder; +	bool mInFinder;  	bool mFromSearch;		// from web-based "All" search sidebar  	BOOL mDirty;  	bool mForceClose; diff --git a/indra/newview/llpanelface.cpp b/indra/newview/llpanelface.cpp index 83fc991ae0..24b055b0a6 100644 --- a/indra/newview/llpanelface.cpp +++ b/indra/newview/llpanelface.cpp @@ -81,7 +81,7 @@ BOOL	LLPanelFace::postBuild()  	LLSpinCtrl*		mCtrlColorTransp;		// transparency = 1 - alpha  	setMouseOpaque(FALSE); -	mTextureCtrl = LLUICtrlFactory::getTexturePickerByName(this,"texture control"); +	mTextureCtrl = getChild<LLTextureCtrl>("texture control");  	if(mTextureCtrl)  	{  		mTextureCtrl->setDefaultImageAssetID(LLUUID( gSavedSettings.getString( "DefaultObjectTexture" ))); @@ -113,7 +113,7 @@ BOOL	LLPanelFace::postBuild()  		}  	} -	mColorSwatch = LLUICtrlFactory::getColorSwatchByName(this,"colorswatch"); +	mColorSwatch = getChild<LLColorSwatchCtrl>("colorswatch");  	if(mColorSwatch)  	{  		mColorSwatch->setCommitCallback(LLPanelFace::onCommitColor); @@ -187,7 +187,7 @@ LLPanelFace::~LLPanelFace()  void LLPanelFace::sendTexture()  { -	LLTextureCtrl* mTextureCtrl = gUICtrlFactory->getTexturePickerByName(this,"texture control"); +	LLTextureCtrl* mTextureCtrl = getChild<LLTextureCtrl>("texture control");  	if(!mTextureCtrl) return;  	if( !mTextureCtrl->getTentative() )  	{ @@ -656,13 +656,13 @@ void LLPanelFace::getState()  			if (selected_texgen == 1)  			{ -				childSetText("tex scale",childGetText("string repeats per meter")); +				childSetText("tex scale",getString("string repeats per meter"));  				childSetValue("TexScaleU", 2.0f * childGetValue("TexScaleU").asReal() );  				childSetValue("TexScaleV", 2.0f * childGetValue("TexScaleV").asReal() );  			}  			else  			{ -				childSetText("tex scale",childGetText("string repeats per face")); +				childSetText("tex scale",getString("string repeats per face"));  			}  		} @@ -722,14 +722,14 @@ void LLPanelFace::getState()  		clearCtrls();  		// Disable non-UICtrls -		LLTextureCtrl*	texture_ctrl = LLUICtrlFactory::getTexturePickerByName(this,"texture control");  +		LLTextureCtrl*	texture_ctrl = getChild<LLTextureCtrl>("texture control");   		if(texture_ctrl)  		{  			texture_ctrl->setImageAssetID( LLUUID::null );  			texture_ctrl->setEnabled( FALSE );  // this is a LLUICtrl, but we don't want it to have keyboard focus so we add it as a child, not a ctrl.  // 			texture_ctrl->setValid(FALSE);  		} -		LLColorSwatchCtrl* mColorSwatch = LLUICtrlFactory::getColorSwatchByName(this,"colorswatch"); +		LLColorSwatchCtrl* mColorSwatch = getChild<LLColorSwatchCtrl>("colorswatch");  		if(mColorSwatch)  		{  			mColorSwatch->setEnabled( FALSE );			 diff --git a/indra/newview/llpanelgroup.cpp b/indra/newview/llpanelgroup.cpp index 76fbada562..d8faecf83d 100644 --- a/indra/newview/llpanelgroup.cpp +++ b/indra/newview/llpanelgroup.cpp @@ -67,22 +67,14 @@ BOOL LLPanelGroupTab::isVisibleByAgent(LLAgent* agentp)  BOOL LLPanelGroupTab::postBuild()  {  	// Hook up the help button callback. -	LLButton* button = (LLButton*) getChildByName("help_button"); +	LLButton* button = getChild<LLButton>("help_button");  	if (button)  	{  		button->setClickedCallback(onClickHelp);  		button->setCallbackUserData(this);  	} -	// Read help text from the xml file. -	LLTextBox* txt; -	// Don't recurse for this, since we don't currently have a recursive removeChild() -	txt = (LLTextBox*) getChildByName("help_text"); -	if (txt) -	{ -		mHelpText = txt->getText(); -		removeChild(txt, TRUE); -	} +	mHelpText = getString("help_text");  	return TRUE;  } @@ -219,14 +211,14 @@ void LLPanelGroup::updateTabVisibility()  BOOL LLPanelGroup::postBuild()  { -	mTabContainer = (LLTabContainerCommon*) getChildByName("group_tab_container"); +	mTabContainer = getChild<LLTabContainer>("group_tab_container");  	if (mTabContainer)  	{  		// Select the initial tab specified via constructor  		const BOOL recurse = TRUE;  		LLPanelGroupTab* tabp =  -			(LLPanelGroupTab*) getChildByName(mInitialTab, recurse); +			getChild<LLPanelGroupTab>(mInitialTab, recurse);  		if (!tabp)  		{ @@ -272,23 +264,10 @@ BOOL LLPanelGroup::postBuild()  		mCurrentTab->activate();  	} -	// Read apply text from the xml file. -	LLTextBox* txt; -	// Don't recurse for this, since we don't currently have a recursive removeChild() -	txt = (LLTextBox*)getChildByName("default_needs_apply_text"); -	if (txt) -	{ -		mDefaultNeedsApplyMesg = txt->getText(); -		removeChild(txt, TRUE); -	} -	txt = (LLTextBox*)getChildByName("want_apply_text"); -	if (txt) -	{ -		mWantApplyMesg = txt->getText(); -		removeChild(txt, TRUE); -	} +	mDefaultNeedsApplyMesg = getString("default_needs_apply_text"); +	mWantApplyMesg = getString("want_apply_text"); -	LLButton* button = (LLButton*) getChildByName("btn_ok"); +	LLButton* button = getChild<LLButton>("btn_ok");  	if (button)  	{  		button->setClickedCallback(onBtnOK); @@ -296,7 +275,7 @@ BOOL LLPanelGroup::postBuild()  		button->setVisible(mAllowEdit);  	} -	button = (LLButton*) getChildByName("btn_cancel"); +	button = getChild<LLButton>("btn_cancel");  	if (button)  	{  		button->setClickedCallback(onBtnCancel); @@ -304,7 +283,7 @@ BOOL LLPanelGroup::postBuild()  		button->setVisible(mAllowEdit);  	} -	button = (LLButton*) getChildByName("btn_apply"); +	button = getChild<LLButton>("btn_apply");  	if (button)  	{  		button->setClickedCallback(onBtnApply); @@ -314,7 +293,7 @@ BOOL LLPanelGroup::postBuild()  		mApplyBtn = button;  	} -	button = (LLButton*) getChildByName("btn_refresh"); +	button = getChild<LLButton>("btn_refresh");  	if (button)  	{  		button->setClickedCallback(onBtnRefresh); @@ -400,7 +379,7 @@ void LLPanelGroup::selectTab(std::string tab_name)  	const BOOL recurse = TRUE;  	LLPanelGroupTab* tabp =  -		(LLPanelGroupTab*) getChildByName(tab_name, recurse); +		getChild<LLPanelGroupTab>(tab_name, recurse);  	if ( tabp && mTabContainer )  	{ diff --git a/indra/newview/llpanelgroup.h b/indra/newview/llpanelgroup.h index 19f43ecb88..3928d1d2f5 100644 --- a/indra/newview/llpanelgroup.h +++ b/indra/newview/llpanelgroup.h @@ -41,7 +41,7 @@ const S32 UPDATE_MEMBERS_PER_FRAME = 500;  // Forward declares  class LLPanelGroupTab; -class LLTabContainerCommon; +class LLTabContainer;  class LLAgent;  class LLPanelGroupTabObserver @@ -111,7 +111,7 @@ public:  protected:  	LLPanelGroupTab*		mCurrentTab;  	LLPanelGroupTab*		mRequestedTab; -	LLTabContainerCommon*	mTabContainer; +	LLTabContainer*	mTabContainer;  	BOOL mIgnoreTransition;  	LLButton* mApplyBtn; @@ -183,7 +183,7 @@ public:  protected:  	LLUUID	mGroupID; -	LLTabContainerCommon*	mTabContainer; +	LLTabContainer*	mTabContainer;  	LLString	mHelpText;  	BOOL mAllowEdit; diff --git a/indra/newview/llpanelgroupgeneral.cpp b/indra/newview/llpanelgroupgeneral.cpp index 31688256f5..2e55cfb30a 100644 --- a/indra/newview/llpanelgroupgeneral.cpp +++ b/indra/newview/llpanelgroupgeneral.cpp @@ -99,10 +99,10 @@ BOOL LLPanelGroupGeneral::postBuild()  	bool recurse = true;  	// General info -	mGroupNameEditor = (LLLineEditor*) getChildByName("group_name_editor", recurse); -	mGroupName = (LLTextBox*) getChildByName("group_name", recurse); +	mGroupNameEditor = getChild<LLLineEditor>("group_name_editor", recurse); +	mGroupName = getChild<LLTextBox>("group_name", recurse); -	mInsignia = (LLTextureCtrl*) getChildByName("insignia", recurse); +	mInsignia = getChild<LLTextureCtrl>("insignia", recurse);  	if (mInsignia)  	{  		mInsignia->setCommitCallback(onCommitAny); @@ -110,7 +110,7 @@ BOOL LLPanelGroupGeneral::postBuild()  		mDefaultIconID = mInsignia->getImageAssetID();  	} -	mEditCharter = (LLTextEditor*) getChildByName("charter", recurse); +	mEditCharter = getChild<LLTextEditor>("charter", recurse);  	if(mEditCharter)  	{  		mEditCharter->setCommitCallback(onCommitAny); @@ -119,21 +119,21 @@ BOOL LLPanelGroupGeneral::postBuild()  		mEditCharter->setCallbackUserData(this);  	} -	mBtnJoinGroup = (LLButton*) getChildByName("join_button", recurse); +	mBtnJoinGroup = getChild<LLButton>("join_button", recurse);  	if ( mBtnJoinGroup )  	{  		mBtnJoinGroup->setClickedCallback(onClickJoin);  		mBtnJoinGroup->setCallbackUserData(this);  	} -	mBtnInfo = (LLButton*) getChildByName("info_button", recurse); +	mBtnInfo = getChild<LLButton>("info_button", recurse);  	if ( mBtnInfo )  	{  		mBtnInfo->setClickedCallback(onClickInfo);  		mBtnInfo->setCallbackUserData(this);  	} -	LLTextBox* founder = (LLTextBox*) getChildByName("founder_name"); +	LLTextBox* founder = getChild<LLTextBox>("founder_name");  	if (founder)  	{  		mFounderName = new LLNameBox(founder->getName(),founder->getRect(),LLUUID::null,FALSE,founder->getFont(),founder->getMouseOpaque()); @@ -141,7 +141,7 @@ BOOL LLPanelGroupGeneral::postBuild()  		addChild(mFounderName);  	} -	mListVisibleMembers = (LLNameListCtrl*) getChildByName("visible_members", recurse); +	mListVisibleMembers = getChild<LLNameListCtrl>("visible_members", recurse);  	if (mListVisibleMembers)  	{  		mListVisibleMembers->setDoubleClickCallback(openProfile); @@ -149,14 +149,14 @@ BOOL LLPanelGroupGeneral::postBuild()  	}  	// Options -	mCtrlShowInGroupList = (LLCheckBoxCtrl*) getChildByName("show_in_group_list", recurse); +	mCtrlShowInGroupList = getChild<LLCheckBoxCtrl>("show_in_group_list", recurse);  	if (mCtrlShowInGroupList)  	{  		mCtrlShowInGroupList->setCommitCallback(onCommitAny);  		mCtrlShowInGroupList->setCallbackUserData(this);  	} -	mCtrlMature = (LLCheckBoxCtrl*) getChildByName("mature", recurse); +	mCtrlMature = getChild<LLCheckBoxCtrl>("mature", recurse);  	if (mCtrlMature)  	{  		mCtrlMature->setCommitCallback(onCommitAny); @@ -164,21 +164,21 @@ BOOL LLPanelGroupGeneral::postBuild()  		mCtrlMature->setVisible( !gAgent.isTeen() );  	} -	mCtrlOpenEnrollment = (LLCheckBoxCtrl*) getChildByName("open_enrollement", recurse); +	mCtrlOpenEnrollment = getChild<LLCheckBoxCtrl>("open_enrollement", recurse);  	if (mCtrlOpenEnrollment)  	{  		mCtrlOpenEnrollment->setCommitCallback(onCommitAny);  		mCtrlOpenEnrollment->setCallbackUserData(this);  	} -	mCtrlEnrollmentFee = (LLCheckBoxCtrl*) getChildByName("check_enrollment_fee", recurse); +	mCtrlEnrollmentFee = getChild<LLCheckBoxCtrl>("check_enrollment_fee", recurse);  	if (mCtrlEnrollmentFee)  	{  		mCtrlEnrollmentFee->setCommitCallback(onCommitEnrollment);  		mCtrlEnrollmentFee->setCallbackUserData(this);  	} -	mSpinEnrollmentFee = (LLSpinCtrl*) getChildByName("spin_enrollment_fee", recurse); +	mSpinEnrollmentFee = getChild<LLSpinCtrl>("spin_enrollment_fee", recurse);  	if (mSpinEnrollmentFee)  	{  		mSpinEnrollmentFee->setCommitCallback(onCommitAny); @@ -194,7 +194,7 @@ BOOL LLPanelGroupGeneral::postBuild()  		accept_notices = data.mAcceptNotices;  		list_in_profile = data.mListInProfile;  	} -	mCtrlReceiveNotices = (LLCheckBoxCtrl*) getChildByName("receive_notices", recurse); +	mCtrlReceiveNotices = getChild<LLCheckBoxCtrl>("receive_notices", recurse);  	if (mCtrlReceiveNotices)  	{  		mCtrlReceiveNotices->setCommitCallback(onCommitUserOnly); @@ -203,7 +203,7 @@ BOOL LLPanelGroupGeneral::postBuild()  		mCtrlReceiveNotices->setEnabled(data.mID.notNull());  	} -	mCtrlListGroup = (LLCheckBoxCtrl*) getChildByName("list_groups_in_profile", recurse); +	mCtrlListGroup = getChild<LLCheckBoxCtrl>("list_groups_in_profile", recurse);  	if (mCtrlListGroup)  	{  		mCtrlListGroup->setCommitCallback(onCommitUserOnly); @@ -212,31 +212,17 @@ BOOL LLPanelGroupGeneral::postBuild()  		mCtrlListGroup->setEnabled(data.mID.notNull());  	} -	mActiveTitleLabel = (LLTextBox*) getChildByName("active_title_label", recurse); +	mActiveTitleLabel = getChild<LLTextBox>("active_title_label", recurse); -	mComboActiveTitle = (LLComboBox*) getChildByName("active_title", recurse); +	mComboActiveTitle = getChild<LLComboBox>("active_title", recurse);  	if (mComboActiveTitle)  	{  		mComboActiveTitle->setCommitCallback(onCommitTitle);  		mComboActiveTitle->setCallbackUserData(this);  	} -	// Extra data -	LLTextBox* txt; -	// Don't recurse for this, since we don't currently have a recursive removeChild() -	txt = (LLTextBox*)getChildByName("incomplete_member_data_str"); -	if (txt) -	{ -		mIncompleteMemberDataStr = txt->getText(); -		removeChild(txt, TRUE); -	} - -	txt = (LLTextBox*)getChildByName("confirm_group_create_str"); -	if (txt) -	{ -		mConfirmGroupCreateStr = txt->getText(); -		removeChild(txt, TRUE); -	} +	mIncompleteMemberDataStr = getString("incomplete_member_data_str"); +	mConfirmGroupCreateStr = getString("confirm_group_create_str");  	// If the group_id is null, then we are creating a new group  	if (mGroupID.isNull()) diff --git a/indra/newview/llpanelgroupinvite.cpp b/indra/newview/llpanelgroupinvite.cpp index 9bab774a46..229daf44ff 100644 --- a/indra/newview/llpanelgroupinvite.cpp +++ b/indra/newview/llpanelgroupinvite.cpp @@ -474,12 +474,12 @@ BOOL LLPanelGroupInvite::postBuild()  {  	BOOL recurse = TRUE; -	mImplementation->mLoadingText = childGetText("loading"); -	mImplementation->mRoleNames = (LLComboBox*) getChildByName("role_name", +	mImplementation->mLoadingText = getString("loading"); +	mImplementation->mRoleNames = getChild<LLComboBox>("role_name",  															   recurse); -	mImplementation->mGroupName = (LLTextBox*) getChildByName("group_name_text", recurse); +	mImplementation->mGroupName = getChild<LLTextBox>("group_name_text", recurse);  	mImplementation->mInvitees =  -		(LLNameListCtrl*) getChildByName("invitee_list", recurse); +		getChild<LLNameListCtrl>("invitee_list", recurse);  	if ( mImplementation->mInvitees )  	{  		mImplementation->mInvitees->setCallbackUserData(mImplementation); @@ -487,7 +487,7 @@ BOOL LLPanelGroupInvite::postBuild()  		mImplementation->mInvitees->setCommitCallback(impl::callbackSelect);  	} -	LLButton* button = (LLButton*) getChildByName("add_button", recurse); +	LLButton* button = getChild<LLButton>("add_button", recurse);  	if ( button )  	{  		// default to opening avatarpicker automatically @@ -497,7 +497,7 @@ BOOL LLPanelGroupInvite::postBuild()  	}  	mImplementation->mRemoveButton =  -			(LLButton*) getChildByName("remove_button", recurse); +			getChild<LLButton>("remove_button", recurse);  	if ( mImplementation->mRemoveButton )  	{  		mImplementation->mRemoveButton-> @@ -507,7 +507,7 @@ BOOL LLPanelGroupInvite::postBuild()  	}  	mImplementation->mOKButton =  -		(LLButton*) getChildByName("ok_button", recurse); +		getChild<LLButton>("ok_button", recurse);  	if ( mImplementation->mOKButton )   	{  		mImplementation->mOKButton-> @@ -516,7 +516,7 @@ BOOL LLPanelGroupInvite::postBuild()  		mImplementation->mOKButton->setEnabled(FALSE);   	} -	button = (LLButton*) getChildByName("cancel_button", recurse); +	button = getChild<LLButton>("cancel_button", recurse);  	if ( button )  	{  		button->setClickedCallback(impl::callbackClickCancel); diff --git a/indra/newview/llpanelgrouplandmoney.cpp b/indra/newview/llpanelgrouplandmoney.cpp index 7f12555fe2..c6aae2dd88 100644 --- a/indra/newview/llpanelgrouplandmoney.cpp +++ b/indra/newview/llpanelgrouplandmoney.cpp @@ -60,7 +60,7 @@ public:  	LLGroupMoneyTabEventHandler(LLButton* earlier_button,  								LLButton* later_button,  								LLTextEditor* text_editor, -								LLTabContainerCommon* tab_containerp, +								LLTabContainer* tab_containerp,  								LLPanel* panelp,  								const LLString& loading_text,  								const LLUUID& group_id, @@ -92,7 +92,7 @@ public:  	LLGroupMoneyDetailsTabEventHandler(LLButton* earlier_buttonp,  									   LLButton* later_buttonp,  									   LLTextEditor* text_editorp, -									   LLTabContainerCommon* tab_containerp, +									   LLTabContainer* tab_containerp,  									   LLPanel* panelp,  									   const LLString& loading_text,  									   const LLUUID& group_id); @@ -109,7 +109,7 @@ public:  	LLGroupMoneySalesTabEventHandler(LLButton* earlier_buttonp,  									 LLButton* later_buttonp,  									 LLTextEditor* text_editorp, -									 LLTabContainerCommon* tab_containerp, +									 LLTabContainer* tab_containerp,  									 LLPanel* panelp,  									 const LLString& loading_text,  									 const LLUUID& group_id); @@ -123,7 +123,7 @@ class LLGroupMoneyPlanningTabEventHandler : public LLGroupMoneyTabEventHandler  {  public:  	LLGroupMoneyPlanningTabEventHandler(LLTextEditor* text_editor, -										LLTabContainerCommon* tab_containerp, +										LLTabContainer* tab_containerp,  										LLPanel* panelp,  										const LLString& loading_text,  										const LLUUID& group_id); @@ -501,7 +501,7 @@ void LLPanelGroupLandMoney::activate()  	if ( !mImplementationp->mBeenActivated )  	{  		//select the first tab -		LLTabContainerCommon* tabp = (LLTabContainerCommon*) getChildByName("group_money_tab_container"); +		LLTabContainer* tabp = getChild<LLTabContainer>("group_money_tab_container");  		if ( tabp )  		{ @@ -541,7 +541,7 @@ void LLPanelGroupLandMoney::update(LLGroupChange gc)  {  	if (gc != GC_ALL) return;  //Don't update if it's the wrong panel! -	LLTabContainerCommon* tabp = (LLTabContainerCommon*) getChildByName("group_money_tab_container"); +	LLTabContainer* tabp = getChild<LLTabContainer>("group_money_tab_container");  	if ( tabp )  	{ @@ -605,12 +605,12 @@ BOOL LLPanelGroupLandMoney::postBuild()  	bool can_view = gAgent.isInGroup(mGroupID);  	mImplementationp->mGroupOverLimitIconp =  -		(LLIconCtrl*) getChildByName("group_over_limit_icon"); +		getChild<LLIconCtrl>("group_over_limit_icon");  	mImplementationp->mGroupOverLimitTextp =  -		(LLTextBox*) getChildByName("group_over_limit_text"); +		getChild<LLTextBox>("group_over_limit_text");  	mImplementationp->mYourContributionEditorp  -		= (LLLineEditor*) getChildByName("your_contribution_line_editor"); +		= getChild<LLLineEditor>("your_contribution_line_editor");  	if ( mImplementationp->mYourContributionEditorp )  	{  		LLLineEditor* editor = mImplementationp->mYourContributionEditorp; @@ -620,26 +620,13 @@ BOOL LLPanelGroupLandMoney::postBuild()  		editor->setCallbackUserData(this);  	} -	mImplementationp->mMapButtonp = (LLButton*) getChildByName("map_button"); +	mImplementationp->mMapButtonp = getChild<LLButton>("map_button");  	mImplementationp->mGroupParcelsp =  -		(LLScrollListCtrl*) getChildByName("group_parcel_list"); - -	LLTextBox *no_permsp =  -		(LLTextBox*) getChildByName("cant_view_group_land_text"); -	if ( no_permsp ) -	{ -		mImplementationp->mCantViewParcelsText = no_permsp->getText(); -		removeChild(no_permsp, TRUE); -	} - -	no_permsp = (LLTextBox*) getChildByName("cant_view_group_accounting_text"); -	if ( no_permsp ) -	{ -		mImplementationp->mCantViewAccountsText = no_permsp->getText(); -		removeChild(no_permsp, TRUE); -	} +		getChild<LLScrollListCtrl>("group_parcel_list"); +	mImplementationp->mCantViewParcelsText = getString("cant_view_group_land_text"); +	mImplementationp->mCantViewAccountsText = getString("cant_view_group_accounting_text");  	if ( mImplementationp->mMapButtonp )  	{ @@ -677,8 +664,7 @@ BOOL LLPanelGroupLandMoney::postBuild()  	LLTextEditor* textp;  	LLPanel* panelp; -	LLTabContainerCommon* tabcp = (LLTabContainerCommon*)  -		getChildByName("group_money_tab_container", true); +	LLTabContainer* tabcp = getChild<LLTabContainer>("group_money_tab_container");  	if ( !can_view )  	{ @@ -694,13 +680,13 @@ BOOL LLPanelGroupLandMoney::postBuild()  		}  	} -	LLString loading_text = childGetText("loading_txt"); +	LLString loading_text = getString("loading_txt");  	//pull out the widgets for the L$ details tab -	earlierp = (LLButton*) getChildByName("earlier_details_button", true); -	laterp = (LLButton*) getChildByName("later_details_button", true); -	textp = (LLTextEditor*) getChildByName("group_money_details_text", true); -	panelp = (LLPanel*) getChildByName("group_money_details_tab", true); +	earlierp = getChild<LLButton>("earlier_details_button", true); +	laterp = getChild<LLButton>("later_details_button", true); +	textp = getChild<LLTextEditor>("group_money_details_text", true); +	panelp = getChild<LLPanel>("group_money_details_tab", true);  	if ( !can_view )  	{ @@ -718,8 +704,8 @@ BOOL LLPanelGroupLandMoney::postBuild()  												   mGroupID);  	} -	textp = (LLTextEditor*) getChildByName("group_money_planning_text", true); -	panelp = (LLPanel*) getChildByName("group_money_planning_tab", true); +	textp = getChild<LLTextEditor>("group_money_planning_text", true); +	panelp = getChild<LLPanel>("group_money_planning_tab", true);  	if ( !can_view )  	{ @@ -736,10 +722,10 @@ BOOL LLPanelGroupLandMoney::postBuild()  	}  	//pull out the widgets for the L$ sales tab -	earlierp = (LLButton*) getChildByName("earlier_sales_button", true); -	laterp = (LLButton*) getChildByName("later_sales_button", true); -	textp = (LLTextEditor*) getChildByName("group_money_sales_text", true); -	panelp = (LLPanel*) getChildByName("group_money_sales_tab", true); +	earlierp = getChild<LLButton>("earlier_sales_button", true); +	laterp = getChild<LLButton>("later_sales_button", true); +	textp = getChild<LLTextEditor>("group_money_sales_text", true); +	panelp = getChild<LLPanel>("group_money_sales_tab", true);  	if ( !can_view )  	{ @@ -881,7 +867,7 @@ std::map<LLPanel*, LLGroupMoneyTabEventHandler*> LLGroupMoneyTabEventHandler::sT  LLGroupMoneyTabEventHandler::LLGroupMoneyTabEventHandler(LLButton* earlier_buttonp,  														 LLButton* later_buttonp,  														 LLTextEditor* text_editorp, -														 LLTabContainerCommon* tab_containerp, +														 LLTabContainer* tab_containerp,  														 LLPanel* panelp,  														 const LLString& loading_text,  														 const LLUUID& group_id, @@ -998,7 +984,7 @@ void LLGroupMoneyTabEventHandler::clickTabCallback(void* data, bool from_click)  LLGroupMoneyDetailsTabEventHandler::LLGroupMoneyDetailsTabEventHandler(LLButton* earlier_buttonp,  																	   LLButton* later_buttonp,  																	   LLTextEditor* text_editorp, -																	   LLTabContainerCommon* tab_containerp, +																	   LLTabContainer* tab_containerp,  																	   LLPanel* panelp,  																	   const LLString& loading_text,  																	   const LLUUID& group_id) @@ -1138,7 +1124,7 @@ void LLPanelGroupLandMoney::processGroupAccountDetailsReply(LLMessageSystem* msg  LLGroupMoneySalesTabEventHandler::LLGroupMoneySalesTabEventHandler(LLButton* earlier_buttonp,  																   LLButton* later_buttonp,  																   LLTextEditor* text_editorp, -																   LLTabContainerCommon* tab_containerp, +																   LLTabContainer* tab_containerp,  																   LLPanel* panelp,  																   const LLString& loading_text,  																   const LLUUID& group_id) @@ -1315,7 +1301,7 @@ void LLPanelGroupLandMoney::processGroupAccountTransactionsReply(LLMessageSystem  //***************************************************  LLGroupMoneyPlanningTabEventHandler::LLGroupMoneyPlanningTabEventHandler(LLTextEditor* text_editorp, -																		 LLTabContainerCommon* tab_containerp, +																		 LLTabContainer* tab_containerp,  																		 LLPanel* panelp,  																		 const LLString& loading_text,  																		 const LLUUID& group_id) diff --git a/indra/newview/llpanelgroupnotices.cpp b/indra/newview/llpanelgroupnotices.cpp index 9ac88a3cc2..4c16936b68 100644 --- a/indra/newview/llpanelgroupnotices.cpp +++ b/indra/newview/llpanelgroupnotices.cpp @@ -129,7 +129,7 @@ BOOL LLGroupDropTarget::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,  	{  		// check if inside  		//LLRect parent_rect = mParentView->getRect(); -		//mRect.set(0, parent_rect.getHeight(), parent_rect.getWidth(), 0); +		//getRect().set(0, parent_rect.getHeight(), parent_rect.getWidth(), 0);  		handled = TRUE;  		// check the type @@ -229,67 +229,62 @@ BOOL LLPanelGroupNotices::postBuild()  {  	bool recurse = true; -	mNoticesList = (LLScrollListCtrl*)getChildByName("notice_list",recurse); +	mNoticesList = getChild<LLScrollListCtrl>("notice_list",recurse);  	mNoticesList->setCommitOnSelectionChange(TRUE);  	mNoticesList->setCommitCallback(onSelectNotice);  	mNoticesList->setCallbackUserData(this); -	mBtnNewMessage = (LLButton*)getChildByName("create_new_notice",recurse); +	mBtnNewMessage = getChild<LLButton>("create_new_notice",recurse);  	mBtnNewMessage->setClickedCallback(onClickNewMessage);  	mBtnNewMessage->setCallbackUserData(this);  	mBtnNewMessage->setEnabled(gAgent.hasPowerInGroup(mGroupID, GP_NOTICES_SEND)); -	mBtnGetPastNotices = (LLButton*)getChildByName("refresh_notices",recurse); +	mBtnGetPastNotices = getChild<LLButton>("refresh_notices",recurse);  	mBtnGetPastNotices->setClickedCallback(onClickRefreshNotices);  	mBtnGetPastNotices->setCallbackUserData(this);  	// Create -	mCreateSubject = (LLLineEditor*)getChildByName("create_subject",recurse); -	mCreateMessage = (LLTextEditor*)getChildByName("create_message",recurse); +	mCreateSubject = getChild<LLLineEditor>("create_subject",recurse); +	mCreateMessage = getChild<LLTextEditor>("create_message",recurse); -	mCreateInventoryName =  (LLLineEditor*)getChildByName("create_inventory_name",recurse); +	mCreateInventoryName =  getChild<LLLineEditor>("create_inventory_name",recurse);  	mCreateInventoryName->setTabStop(FALSE);  	mCreateInventoryName->setEnabled(FALSE); -	mCreateInventoryIcon = (LLIconCtrl*)getChildByName("create_inv_icon",recurse); +	mCreateInventoryIcon = getChild<LLIconCtrl>("create_inv_icon",recurse);  	mCreateInventoryIcon->setVisible(FALSE); -	mBtnSendMessage = (LLButton*)getChildByName("send_notice",recurse); +	mBtnSendMessage = getChild<LLButton>("send_notice",recurse);  	mBtnSendMessage->setClickedCallback(onClickSendMessage);  	mBtnSendMessage->setCallbackUserData(this); -	mBtnRemoveAttachment = (LLButton*)getChildByName("remove_attachment",recurse); +	mBtnRemoveAttachment = getChild<LLButton>("remove_attachment",recurse);  	mBtnRemoveAttachment->setClickedCallback(onClickRemoveAttachment);  	mBtnRemoveAttachment->setCallbackUserData(this);  	mBtnRemoveAttachment->setEnabled(FALSE);  	// View -	mViewSubject = (LLLineEditor*)getChildByName("view_subject",recurse); -	mViewMessage = (LLTextEditor*)getChildByName("view_message",recurse); +	mViewSubject = getChild<LLLineEditor>("view_subject",recurse); +	mViewMessage = getChild<LLTextEditor>("view_message",recurse); -	mViewInventoryName =  (LLLineEditor*)getChildByName("view_inventory_name",recurse); +	mViewInventoryName =  getChild<LLLineEditor>("view_inventory_name",recurse);  	mViewInventoryName->setTabStop(FALSE);  	mViewInventoryName->setEnabled(FALSE); -	mViewInventoryIcon = (LLIconCtrl*)getChildByName("view_inv_icon",recurse); +	mViewInventoryIcon = getChild<LLIconCtrl>("view_inv_icon",recurse);  	mViewInventoryIcon->setVisible(FALSE); -	mBtnOpenAttachment = (LLButton*)getChildByName("open_attachment",recurse); +	mBtnOpenAttachment = getChild<LLButton>("open_attachment",recurse);  	mBtnOpenAttachment->setClickedCallback(onClickOpenAttachment);  	mBtnOpenAttachment->setCallbackUserData(this); -	LLTextBox *txt = (LLTextBox*) getChildByName("no_notices_text",false); -	if (txt) -	{ -		mNoNoticesStr = txt->getText(); -		removeChild(txt, TRUE); -	} +	mNoNoticesStr = getString("no_notices_text"); -	mPanelCreateNotice = (LLPanel*) getChildByName("panel_create_new_notice",recurse); -	mPanelViewNotice = (LLPanel*) getChildByName("panel_view_past_notice",recurse); +	mPanelCreateNotice = getChild<LLPanel>("panel_create_new_notice",recurse); +	mPanelViewNotice = getChild<LLPanel>("panel_view_past_notice",recurse);  	// Must be in front of all other UI elements. -	LLPanel* dtv = (LLPanel*)getChildByName("drop_target",recurse); +	LLPanel* dtv = getChild<LLPanel>("drop_target",recurse);  	LLGroupDropTarget* target = new LLGroupDropTarget("drop_target",  											dtv->getRect(),  											this, mGroupID); diff --git a/indra/newview/llpanelgrouproles.cpp b/indra/newview/llpanelgrouproles.cpp index 1556f24afa..6ca3e1e085 100644 --- a/indra/newview/llpanelgrouproles.cpp +++ b/indra/newview/llpanelgrouproles.cpp @@ -133,7 +133,7 @@ BOOL LLPanelGroupRoles::postBuild()  {  	lldebugs << "LLPanelGroupRoles::postBuild()" << llendl; -	mSubTabContainer = (LLTabContainerCommon*) getChildByName("roles_tab_container"); +	mSubTabContainer = getChild<LLTabContainer>("roles_tab_container");  	if (!mSubTabContainer) return FALSE; @@ -169,20 +169,8 @@ BOOL LLPanelGroupRoles::postBuild()  	mCurrentTab->activate();  	// Read apply text from the xml file. -	LLTextBox* txt; -	// Don't recurse for this, since we don't currently have a recursive removeChild() -	txt = (LLTextBox*)getChildByName("default_needs_apply_text"); -	if (txt) -	{ -		mDefaultNeedsApplyMesg = txt->getText(); -		removeChild(txt, TRUE); -	} -	txt = (LLTextBox*)getChildByName("want_apply_text"); -	if (txt) -	{ -		mWantApplyMesg = txt->getText(); -		removeChild(txt, TRUE); -	} +	mDefaultNeedsApplyMesg = getString("default_needs_apply_text"); +	mWantApplyMesg = getString("want_apply_text");  	return LLPanelGroupTab::postBuild();  } @@ -515,20 +503,20 @@ BOOL LLPanelGroupSubTab::postBuild()  {  	// Hook up the search widgets.  	bool recurse = true; -	mSearchLineEditor = (LLLineEditor*) getChildByName("search_text", recurse); +	mSearchLineEditor = getChild<LLLineEditor>("search_text", recurse);  	if (!mSearchLineEditor) return FALSE;  	mSearchLineEditor->setKeystrokeCallback(onSearchKeystroke);  	mSearchLineEditor->setCallbackUserData(this); -	mSearchButton = (LLButton*) getChildByName("search_button", recurse); +	mSearchButton = getChild<LLButton>("search_button", recurse);  	if (!mSearchButton) return FALSE;  	mSearchButton->setClickedCallback(onClickSearch);  	mSearchButton->setCallbackUserData(this);  	mSearchButton->setEnabled(FALSE); -	mShowAllButton = (LLButton*) getChildByName("show_all_button", recurse); +	mShowAllButton = getChild<LLButton>("show_all_button", recurse);  	if (!mShowAllButton) return FALSE;  	mShowAllButton->setClickedCallback(onClickShowAll); @@ -540,21 +528,21 @@ BOOL LLPanelGroupSubTab::postBuild()  	bool no_recurse = false; -	LLIconCtrl* icon = (LLIconCtrl*) getChildByName("power_folder_icon",no_recurse); +	LLIconCtrl* icon = getChild<LLIconCtrl>("power_folder_icon",no_recurse);  	if (icon && icon->getImage().notNull())  	{  		mActionIcons["folder"] = icon->getImage();  		removeChild(icon, TRUE);  	} -	icon = (LLIconCtrl*) getChildByName("power_all_have_icon",no_recurse); +	icon = getChild<LLIconCtrl>("power_all_have_icon",no_recurse);  	if (icon && icon->getImage().notNull())  	{  		mActionIcons["full"] = icon->getImage();  		removeChild(icon, TRUE);  	} -	icon = (LLIconCtrl*) getChildByName("power_partial_icon",no_recurse); +	icon = getChild<LLIconCtrl>("power_partial_icon",no_recurse);  	if (icon && icon->getImage().notNull())  	{  		mActionIcons["partial"] = icon->getImage(); @@ -913,12 +901,12 @@ BOOL LLPanelGroupMembersSubTab::postBuildSubTab(LLView* root)  	// Look recursively from the parent to find all our widgets.  	bool recurse = true; -	mHeader = (LLPanel*) parent->getChildByName("members_header", recurse); -	mFooter = (LLPanel*) parent->getChildByName("members_footer", recurse); +	mHeader = parent->getChild<LLPanel>("members_header", recurse); +	mFooter = parent->getChild<LLPanel>("members_footer", recurse); -	mMembersList 		= (LLNameListCtrl*) 	parent->getChildByName("member_list", recurse); -	mAssignedRolesList	= (LLScrollListCtrl*)	parent->getChildByName("member_assigned_roles", recurse); -	mAllowedActionsList	= (LLScrollListCtrl*)	parent->getChildByName("member_allowed_actions", recurse); +	mMembersList 		= parent->getChild<LLNameListCtrl>("member_list", recurse); +	mAssignedRolesList	= parent->getChild<LLScrollListCtrl>("member_assigned_roles", recurse); +	mAllowedActionsList	= parent->getChild<LLScrollListCtrl>("member_allowed_actions", recurse);  	if (!mMembersList || !mAssignedRolesList || !mAllowedActionsList) return FALSE; @@ -929,7 +917,7 @@ BOOL LLPanelGroupMembersSubTab::postBuildSubTab(LLView* root)  	// Show the member's profile on double click.  	mMembersList->setDoubleClickCallback(onMemberDoubleClick); -	LLButton* button = (LLButton*) parent->getChildByName("member_invite", recurse); +	LLButton* button = parent->getChild<LLButton>("member_invite", recurse);  	if ( button )  	{  		button->setClickedCallback(onInviteMember); @@ -937,7 +925,7 @@ BOOL LLPanelGroupMembersSubTab::postBuildSubTab(LLView* root)  		button->setEnabled(gAgent.hasPowerInGroup(mGroupID, GP_MEMBER_INVITE));  	} -	mEjectBtn = (LLButton*) parent->getChildByName("member_eject", recurse); +	mEjectBtn = parent->getChild<LLButton>("member_eject", recurse);  	if ( mEjectBtn )  	{  		mEjectBtn->setClickedCallback(onEjectMembers); @@ -1483,19 +1471,16 @@ void LLPanelGroupMembersSubTab::applyMemberChanges()  	notifyObservers();  } -bool LLPanelGroupMembersSubTab::matchesSearchFilter(char* first, char* last) +bool LLPanelGroupMembersSubTab::matchesSearchFilter(const std::string& fullname)  {  	// If the search filter is empty, everything passes.  	if (mSearchFilter.empty()) return true;  	// Create a full name, and compare it to the search filter. -	LLString fullname; -	fullname.assign(first); -	fullname.append(1, ' '); -	fullname.append(last); -	LLString::toLower(fullname); +	std::string fullname_lc(fullname); +	LLString::toLower(fullname_lc); -	std::string::size_type match = fullname.find(mSearchFilter); +	std::string::size_type match = fullname_lc.find(mSearchFilter);  	if (std::string::npos == match)  	{ @@ -1709,8 +1694,6 @@ void LLPanelGroupMembersSubTab::updateMembers()  	LLGroupMgrGroupData::member_iter end = gdatap->mMembers.end(); -	char first[DB_FIRST_NAME_BUF_SIZE];		/*Flawfinder: ignore*/ -	char last[DB_LAST_NAME_BUF_SIZE];		/*Flawfinder: ignore*/  	S32 i = 0;  	for( ; mMemberProgress != end && i<UPDATE_MEMBERS_PER_FRAME;   			++mMemberProgress, ++i) @@ -1720,9 +1703,10 @@ void LLPanelGroupMembersSubTab::updateMembers()  		// Do filtering on name if it is already in the cache.  		bool add_member = true; -		if (gCacheName->getName(mMemberProgress->first, first, last)) +		std::string fullname; +		if (gCacheName->getFullName(mMemberProgress->first, fullname))  		{ -			if ( !matchesSearchFilter(first, last) ) +			if ( !matchesSearchFilter(fullname) )  			{  				add_member = false;  			} @@ -1802,19 +1786,19 @@ BOOL LLPanelGroupRolesSubTab::postBuildSubTab(LLView* root)  	// Look recursively from the parent to find all our widgets.  	bool recurse = true; -	mHeader = (LLPanel*) parent->getChildByName("roles_header", recurse); -	mFooter = (LLPanel*) parent->getChildByName("roles_footer", recurse); +	mHeader = parent->getChild<LLPanel>("roles_header", recurse); +	mFooter = parent->getChild<LLPanel>("roles_footer", recurse); -	mRolesList 		= (LLScrollListCtrl*) 	parent->getChildByName("role_list", recurse); -	mAssignedMembersList	= (LLNameListCtrl*)	parent->getChildByName("role_assigned_members", recurse); -	mAllowedActionsList	= (LLScrollListCtrl*)	parent->getChildByName("role_allowed_actions", recurse); +	mRolesList 		= parent->getChild<LLScrollListCtrl>("role_list", recurse); +	mAssignedMembersList	= parent->getChild<LLNameListCtrl>("role_assigned_members", recurse); +	mAllowedActionsList	= parent->getChild<LLScrollListCtrl>("role_allowed_actions", recurse); -	mRoleName = (LLLineEditor*) parent->getChildByName("role_name", recurse); -	mRoleTitle = (LLLineEditor*) parent->getChildByName("role_title", recurse); -	mRoleDescription = (LLTextEditor*) parent->getChildByName("role_description", recurse); +	mRoleName = parent->getChild<LLLineEditor>("role_name", recurse); +	mRoleTitle = parent->getChild<LLLineEditor>("role_title", recurse); +	mRoleDescription = parent->getChild<LLTextEditor>("role_description", recurse); -	mMemberVisibleCheck = (LLCheckBoxCtrl*) parent->getChildByName("role_visible_in_list", recurse); +	mMemberVisibleCheck = parent->getChild<LLCheckBoxCtrl>("role_visible_in_list", recurse);  	if (!mRolesList || !mAssignedMembersList || !mAllowedActionsList  		|| !mRoleName || !mRoleTitle || !mRoleDescription || !mMemberVisibleCheck) @@ -1823,15 +1807,10 @@ BOOL LLPanelGroupRolesSubTab::postBuildSubTab(LLView* root)  		return FALSE;  	} -	LLTextBox* txt = (LLTextBox*) parent->getChildByName("cant_delete_role", FALSE); -	if (txt) -	{ -		mRemoveEveryoneTxt = txt->getText(); -		parent->removeChild(txt, TRUE); -	} +	mRemoveEveryoneTxt = getString("cant_delete_role");  	mCreateRoleButton =  -		(LLButton*) parent->getChildByName("role_create", recurse); +		parent->getChild<LLButton>("role_create", recurse);  	if ( mCreateRoleButton )  	{  		mCreateRoleButton->setCallbackUserData(this); @@ -1840,7 +1819,7 @@ BOOL LLPanelGroupRolesSubTab::postBuildSubTab(LLView* root)  	}  	mDeleteRoleButton =   -		(LLButton*) parent->getChildByName("role_delete", recurse); +		parent->getChild<LLButton>("role_delete", recurse);  	if ( mDeleteRoleButton )  	{  		mDeleteRoleButton->setCallbackUserData(this); @@ -2515,14 +2494,14 @@ BOOL LLPanelGroupActionsSubTab::postBuildSubTab(LLView* root)  	// Look recursively from the parent to find all our widgets.  	bool recurse = true; -	mHeader = (LLPanel*) parent->getChildByName("actions_header", recurse); -	mFooter = (LLPanel*) parent->getChildByName("actions_footer", recurse); +	mHeader = parent->getChild<LLPanel>("actions_header", recurse); +	mFooter = parent->getChild<LLPanel>("actions_footer", recurse); -	mActionDescription = (LLTextEditor*) parent->getChildByName("action_description", recurse); +	mActionDescription = parent->getChild<LLTextEditor>("action_description", recurse); -	mActionList = (LLScrollListCtrl*) parent->getChildByName("action_list",recurse); -	mActionRoles = (LLScrollListCtrl*) parent->getChildByName("action_roles",recurse); -	mActionMembers  = (LLNameListCtrl*) parent->getChildByName("action_members",recurse); +	mActionList = parent->getChild<LLScrollListCtrl>("action_list",recurse); +	mActionRoles = parent->getChild<LLScrollListCtrl>("action_roles",recurse); +	mActionMembers  = parent->getChild<LLNameListCtrl>("action_members",recurse);  	if (!mActionList || !mActionDescription || !mActionRoles || !mActionMembers) return FALSE; diff --git a/indra/newview/llpanelgrouproles.h b/indra/newview/llpanelgrouproles.h index 13d64d4edb..6d2c6ab4cf 100644 --- a/indra/newview/llpanelgrouproles.h +++ b/indra/newview/llpanelgrouproles.h @@ -93,7 +93,7 @@ public:  protected:  	LLPanelGroupTab*		mCurrentTab;  	LLPanelGroupTab*		mRequestedTab; -	LLTabContainerCommon*	mSubTabContainer; +	LLTabContainer*	mSubTabContainer;  	BOOL					mFirstUse;  	BOOL					mIgnoreTransition; @@ -205,7 +205,7 @@ protected:  	typedef std::map<LLUUID, role_change_data_map_t*>::iterator member_role_change_iter;  	typedef std::map<LLUUID, role_change_data_map_t*> member_role_changes_map_t; -	bool matchesSearchFilter(char* first, char* last); +	bool matchesSearchFilter(const std::string& fullname);  	U64  getAgentPowersBasedOnRoleChanges(const LLUUID& agent_id);  	bool getRoleChangeType(const LLUUID& member_id, diff --git a/indra/newview/llpanellandmedia.cpp b/indra/newview/llpanellandmedia.cpp index 1ac95c9a82..eb40eefcb7 100644 --- a/indra/newview/llpanellandmedia.cpp +++ b/indra/newview/llpanellandmedia.cpp @@ -66,7 +66,7 @@ BOOL LLPanelLandMedia::postBuild()  	mMusicURLEdit = LLUICtrlFactory::getLineEditorByName(this, "music_url");  	childSetCommitCallback("music_url", onCommitAny, this); -	mMediaTextureCtrl = LLUICtrlFactory::getTexturePickerByName(this, "media texture"); +	mMediaTextureCtrl = LLViewerUICtrlFactory::getTexturePickerByName(this, "media texture");  	if (mMediaTextureCtrl)  	{  		mMediaTextureCtrl->setCommitCallback( onCommitAny ); @@ -77,7 +77,7 @@ BOOL LLPanelLandMedia::postBuild()  	}  	else  	{ -		llwarns << "LLUICtrlFactory::getTexturePickerByName() returned NULL for 'media texure'" << llendl; +		llwarns << "LLViewerUICtrlFactory::getTexturePickerByName() returned NULL for 'media texure'" << llendl;  	}  	mMediaAutoScaleCheck = LLUICtrlFactory::getCheckBoxByName(this, "media_auto_scale"); @@ -242,7 +242,7 @@ void LLPanelLandMedia::refresh()  		};  		#endif -		LLFloaterURLEntry* floater_url_entry = (LLFloaterURLEntry*)LLFloater::getFloaterByHandle(mURLEntryFloater); +		LLFloaterURLEntry* floater_url_entry = (LLFloaterURLEntry*)mURLEntryFloater.get();  		if (floater_url_entry)  		{  			floater_url_entry->updateFromLandMediaPanel(); @@ -373,6 +373,6 @@ void LLPanelLandMedia::onSetBtn(void *userdata)  	LLFloater* parent_floater = gFloaterView->getParentFloater(self);   	if (parent_floater)  	{ -		parent_floater->addDependentFloater(LLFloater::getFloaterByHandle(self->mURLEntryFloater)); +		parent_floater->addDependentFloater(self->mURLEntryFloater.get());  	}  } diff --git a/indra/newview/llpanellandmedia.h b/indra/newview/llpanellandmedia.h index aa84b245e2..769bc27532 100644 --- a/indra/newview/llpanellandmedia.h +++ b/indra/newview/llpanellandmedia.h @@ -11,7 +11,6 @@  #define LLPANELLANDMEDIA_H  #include "lllineeditor.h" -#include "llmemory.h"	// LLHandle<>  #include "llpanel.h"  #include "llparcelselection.h"  #include "lluifwd.h"	// widget pointer types @@ -20,7 +19,7 @@ class LLPanelLandMedia  :	public LLPanel  {  public: -	LLPanelLandMedia(LLHandle<LLParcelSelection>& parcelp); +	LLPanelLandMedia(LLSafeHandle<LLParcelSelection>& parcelp);  	/*virtual*/ ~LLPanelLandMedia();  	/*virtual*/ BOOL postBuild();  	void refresh(); @@ -50,9 +49,9 @@ private:  	LLCheckBoxCtrl*	mMediaLoopCheck;  	LLCheckBoxCtrl* mMediaUrlCheck;  	LLCheckBoxCtrl* mMusicUrlCheck; -	LLViewHandle	mURLEntryFloater; +	LLHandle<LLFloater>	mURLEntryFloater; -	LLHandle<LLParcelSelection>&	mParcel; +	LLSafeHandle<LLParcelSelection>&	mParcel;  };  #endif diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp index a80765c805..b65835fed3 100644 --- a/indra/newview/llpanellogin.cpp +++ b/indra/newview/llpanellogin.cpp @@ -328,7 +328,7 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect,  	mCallbackData(cb_data),  	mHtmlAvailable( TRUE )  { -	mIsFocusRoot = TRUE; +	setFocusRoot(TRUE);  	setBackgroundVisible(FALSE);  	setBackgroundOpaque(TRUE); @@ -437,7 +437,7 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect,  #endif      	// get the web browser control -	LLWebBrowserCtrl* web_browser = LLUICtrlFactory::getWebBrowserCtrlByName(this, "login_html"); +	LLWebBrowserCtrl* web_browser = getChild<LLWebBrowserCtrl>("login_html");  	if ( web_browser )  	{  		// Need to handle login secondlife:///app/ URLs @@ -454,22 +454,22 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect,  		web_browser->setOpenInExternalBrowser( true );  		// force the size to be correct (XML doesn't seem to be sufficient to do this) (with some padding so the other login screen doesn't show through) -		LLRect htmlRect = mRect; +		LLRect htmlRect = getRect();  #if USE_VIEWER_AUTH -		htmlRect.setCenterAndSize( mRect.getCenterX() - 2, mRect.getCenterY(), mRect.getWidth() + 6, mRect.getHeight()); +		htmlRect.setCenterAndSize( getRect().getCenterX() - 2, getRect().getCenterY(), getRect().getWidth() + 6, getRect().getHeight());  #else -		htmlRect.setCenterAndSize( mRect.getCenterX() - 2, mRect.getCenterY() + 40, mRect.getWidth() + 6, mRect.getHeight() - 78 ); +		htmlRect.setCenterAndSize( getRect().getCenterX() - 2, getRect().getCenterY() + 40, getRect().getWidth() + 6, getRect().getHeight() - 78 );  #endif  		web_browser->setRect( htmlRect );  		web_browser->reshape( htmlRect.getWidth(), htmlRect.getHeight(), TRUE ); -		reshape( mRect.getWidth(), mRect.getHeight(), 1 ); +		reshape( getRect().getWidth(), getRect().getHeight(), 1 );  		// kick off a request to grab the url manually  		gResponsePtr = LLIamHereLogin::build( this );   		std::string login_page = LLAppViewer::instance()->getLoginPage();   		if (login_page.empty())   		{ - 			login_page = childGetValue( "real_url" ).asString(); + 			login_page = getString( "real_url" );   		}   		LLHTTPClient::head( login_page, gResponsePtr );  	}; @@ -482,7 +482,7 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect,  void LLPanelLogin::setSiteIsAlive( bool alive )  { -	LLWebBrowserCtrl* web_browser = LLUICtrlFactory::getWebBrowserCtrlByName(this, "login_html"); +	LLWebBrowserCtrl* web_browser = getChild<LLWebBrowserCtrl>("login_html");  	// if the contents of the site was retrieved  	if ( alive )  	{ @@ -555,16 +555,16 @@ void LLPanelLogin::draw()  	glPushMatrix();  	{  		F32 image_aspect = 1.333333f; -		F32 view_aspect = (F32)mRect.getWidth() / (F32)mRect.getHeight(); +		F32 view_aspect = (F32)getRect().getWidth() / (F32)getRect().getHeight();  		// stretch image to maintain aspect ratio  		if (image_aspect > view_aspect)  		{ -			glTranslatef(-0.5f * (image_aspect / view_aspect - 1.f) * mRect.getWidth(), 0.f, 0.f); +			glTranslatef(-0.5f * (image_aspect / view_aspect - 1.f) * getRect().getWidth(), 0.f, 0.f);  			glScalef(image_aspect / view_aspect, 1.f, 1.f);  		} -		S32 width = mRect.getWidth(); -		S32 height = mRect.getHeight(); +		S32 width = getRect().getWidth(); +		S32 height = getRect().getHeight();  		if ( mHtmlAvailable )  		{ @@ -905,7 +905,7 @@ void LLPanelLogin::setAlwaysRefresh(bool refresh)  {  	if (LLStartUp::getStartupState() >= STATE_LOGIN_CLEANUP) return; -	LLWebBrowserCtrl* web_browser = LLUICtrlFactory::getWebBrowserCtrlByName(sInstance, "login_html"); +	LLWebBrowserCtrl* web_browser = sInstance->getChild<LLWebBrowserCtrl>("login_html");  	if (web_browser)  	{ @@ -924,7 +924,7 @@ void LLPanelLogin::loadLoginPage()  	std::string login_page = LLAppViewer::instance()->getLoginPage();  	if (login_page.empty())  	{ -		login_page = sInstance->childGetValue( "real_url" ).asString(); +		login_page = sInstance->getString( "real_url" );  	}  	oStr << login_page; @@ -1036,7 +1036,7 @@ void LLPanelLogin::loadLoginPage()  #endif  #endif -	LLWebBrowserCtrl* web_browser = LLUICtrlFactory::getWebBrowserCtrlByName(sInstance, "login_html"); +	LLWebBrowserCtrl* web_browser = sInstance->getChild<LLWebBrowserCtrl>("login_html");  	// navigate to the "real" page   	web_browser->navigateTo( oStr.str() ); @@ -1044,7 +1044,7 @@ void LLPanelLogin::loadLoginPage()  void LLPanelLogin::onNavigateComplete( const EventType& eventIn )  { -	LLWebBrowserCtrl* web_browser = LLUICtrlFactory::getWebBrowserCtrlByName(sInstance, "login_html"); +	LLWebBrowserCtrl* web_browser = sInstance->getChild<LLWebBrowserCtrl>("login_html");  	if (web_browser)  	{  		// *HACK HACK HACK HACK! @@ -1157,7 +1157,7 @@ void LLPanelLogin::onClickForgotPassword(void*)  {  	if (sInstance )  	{ -		LLWeb::loadURL(sInstance->childGetValue( "forgot_password_url" ).asString()); +		LLWeb::loadURL(sInstance->getString( "forgot_password_url" ));  	}  } diff --git a/indra/newview/llpanelobject.cpp b/indra/newview/llpanelobject.cpp index a57993820f..f717088de6 100644 --- a/indra/newview/llpanelobject.cpp +++ b/indra/newview/llpanelobject.cpp @@ -259,7 +259,7 @@ BOOL	LLPanelObject::postBuild()  	mSpinRevolutions->setValidateBeforeCommit( &precommitValidate );  	// Sculpt -	mCtrlSculptTexture = LLUICtrlFactory::getTexturePickerByName(this,"sculpt texture control"); +	mCtrlSculptTexture = getChild<LLTextureCtrl>("sculpt texture control");  	if (mCtrlSculptTexture)  	{  		mCtrlSculptTexture->setDefaultImageAssetID(LLUUID(SCULPT_DEFAULT_TEXTURE)); @@ -1903,7 +1903,7 @@ void LLPanelObject::onSelectSculpt(LLUICtrl* ctrl, void* userdata)  {  	LLPanelObject* self = (LLPanelObject*) userdata; -    LLTextureCtrl* mTextureCtrl = gUICtrlFactory->getTexturePickerByName(self, "sculpt texture control"); +    LLTextureCtrl* mTextureCtrl = self->getChild<LLTextureCtrl>("sculpt texture control");  	if (mTextureCtrl)  	{ @@ -1926,7 +1926,7 @@ BOOL LLPanelObject::onDropSculpt(LLUICtrl*, LLInventoryItem* item, void* userdat  {  	LLPanelObject* self = (LLPanelObject*) userdata; -    LLTextureCtrl* mTextureCtrl = gUICtrlFactory->getTexturePickerByName(self, "sculpt texture control"); +    LLTextureCtrl* mTextureCtrl = self->getChild<LLTextureCtrl>("sculpt texture control");  	if (mTextureCtrl)  	{ @@ -1945,7 +1945,7 @@ void LLPanelObject::onCancelSculpt(LLUICtrl* ctrl, void* userdata)  {  	LLPanelObject* self = (LLPanelObject*) userdata; -	LLTextureCtrl* mTextureCtrl = gUICtrlFactory->getTexturePickerByName(self,"sculpt texture control"); +	LLTextureCtrl* mTextureCtrl = self->getChild<LLTextureCtrl>("sculpt texture control");  	if(!mTextureCtrl)  		return; diff --git a/indra/newview/llpanelpermissions.cpp b/indra/newview/llpanelpermissions.cpp index 7beba92ebb..8ab31acb49 100644 --- a/indra/newview/llpanelpermissions.cpp +++ b/indra/newview/llpanelpermissions.cpp @@ -138,11 +138,11 @@ void LLPanelPermissions::refresh()  		LLString deedText;  		if (gSavedSettings.getWarning("DeedObject"))  		{ -			deedText = this->childGetText("text deed continued"); +			deedText = getString("text deed continued");  		}  		else  		{ -			deedText = this->childGetText("text deed"); +			deedText = getString("text deed");  		}  		BtnDeedToGroup->setLabelSelected(deedText);  		BtnDeedToGroup->setLabelUnselected(deedText); @@ -261,10 +261,10 @@ void LLPanelPermissions::refresh()  	S32 string_index = 0;  	LLString MODIFY_INFO_STRINGS[] =  	{ -		childGetText("text modify info 1"), -		childGetText("text modify info 2"), -		childGetText("text modify info 3"), -		childGetText("text modify info 4") +		getString("text modify info 1"), +		getString("text modify info 2"), +		getString("text modify info 3"), +		getString("text modify info 4")  	};  	if(!is_perm_modify)  	{ @@ -572,7 +572,7 @@ void LLPanelPermissions::refresh()  	if (!has_change_perm_ability && !has_change_sale_ability && !root_selected)  	{  		// ...must select root to choose permissions -		childSetValue("perm_modify", childGetText("text modify warning")); +		childSetValue("perm_modify", getString("text modify warning"));  	}  	if (has_change_perm_ability) diff --git a/indra/newview/llpanelpick.cpp b/indra/newview/llpanelpick.cpp index cd251314d3..2a85d52689 100644 --- a/indra/newview/llpanelpick.cpp +++ b/indra/newview/llpanelpick.cpp @@ -134,7 +134,7 @@ BOOL LLPanelPick::postBuild()  	mDescEditor->setCommitOnFocusLost(TRUE);  	mDescEditor->setCommitCallback(onCommitAny);  	mDescEditor->setCallbackUserData(this); -	mDescEditor->setTabToNextField(TRUE); +	mDescEditor->setTabsToNextField(TRUE);      mLocationEditor = LLViewerUICtrlFactory::getLineEditorByName(this, "location_editor"); @@ -507,7 +507,7 @@ void LLPanelPick::onCommitAny(LLUICtrl* ctrl, void* data)  		}  		else  		{*/ -		LLTabContainerVertical* tab = (LLTabContainerVertical*)self->getParent(); +		LLTabContainer* tab = (LLTabContainer*)self->getParent();  		if (tab)  		{  			if(tab) tab->setCurrentTabName(self->mNameEditor->getText()); diff --git a/indra/newview/llpanelplace.cpp b/indra/newview/llpanelplace.cpp index a05f7129ae..aa10dda62c 100644 --- a/indra/newview/llpanelplace.cpp +++ b/indra/newview/llpanelplace.cpp @@ -190,11 +190,11 @@ void LLPanelPlace::setErrorStatus(U32 status, const std::string& reason)  	LLString error_text;  	if(status == 404)  	{	 -		error_text = childGetText("server_error_text"); +		error_text = getString("server_error_text");  	}  	else if(status == 499)  	{ -		error_text = childGetText("server_forbidden_text"); +		error_text = getString("server_forbidden_text");  	}  	mDescEditor->setText(error_text);  } @@ -260,13 +260,13 @@ void LLPanelPlace::processParcelInfoReply(LLMessageSystem *msg, void **)  		std::string desc_str(desc);  		if( !name_str.empty() -			&& self->mNameEditor->getText().empty()) +		   && self->mNameEditor && self->mNameEditor->getText().empty())  		{  			self->mNameEditor->setText(name_str);  		}  		if( !desc_str.empty() -			&& self->mDescEditor->getText().empty()) +			&& self->mDescEditor && self->mDescEditor->getText().empty())  		{  			self->mDescEditor->setText(desc_str);  		} @@ -290,8 +290,10 @@ void LLPanelPlace::processParcelInfoReply(LLMessageSystem *msg, void **)  			auction.setArg("[ID]", llformat("%010d ", auction_id));  			info_text += auction;  		} -		self->mInfoEditor->setText(info_text); - +		if (self->mInfoEditor) +		{ +			self->mInfoEditor->setText(info_text); +		}  		// HACK: Flag 0x1 == mature region, otherwise assume PG  		const char* rating = LLViewerRegion::accessToString(SIM_ACCESS_PG); @@ -320,7 +322,10 @@ void LLPanelPlace::processParcelInfoReply(LLMessageSystem *msg, void **)  		LLString location = llformat("%s %d, %d, %d (%s)",  			sim_name, region_x, region_y, region_z, rating); -		self->mLocationEditor->setText(location); +		if (self->mLocationEditor) +		{ +			self->mLocationEditor->setText(location); +		}  		BOOL show_auction = (auction_id > 0);  		self->mAuctionBtn->setVisible(show_auction); @@ -354,7 +359,7 @@ void LLPanelPlace::displayParcelInfo(const LLVector3& pos_region,  	}  	else  	{ -		mDescEditor->setText(childGetText("server_update_text")); +		mDescEditor->setText(getString("server_update_text"));  	}  	mSnapshotCtrl->setImageAssetID(LLUUID::null);  } diff --git a/indra/newview/llpanelvolume.cpp b/indra/newview/llpanelvolume.cpp index e7b5e79377..83a2a5e0bd 100644 --- a/indra/newview/llpanelvolume.cpp +++ b/indra/newview/llpanelvolume.cpp @@ -104,7 +104,7 @@ BOOL	LLPanelVolume::postBuild()  	// LIGHT Parameters  	{  		childSetCommitCallback("Light Checkbox Ctrl",onCommitIsLight,this); -		LLColorSwatchCtrl*	LightColorSwatch = gUICtrlFactory->getColorSwatchByName(this,"colorswatch"); +		LLColorSwatchCtrl*	LightColorSwatch = getChild<LLColorSwatchCtrl>("colorswatch");  		if(LightColorSwatch){  			LightColorSwatch->setOnCancelCallback(onLightCancelColor);  			LightColorSwatch->setOnSelectCallback(onLightSelectColor); @@ -213,7 +213,7 @@ void LLPanelVolume::getState( )  	{  		childSetEnabled("label color",true);  		//mLabelColor		 ->setEnabled( TRUE ); -		LLColorSwatchCtrl* LightColorSwatch = gUICtrlFactory->getColorSwatchByName(this,"colorswatch"); +		LLColorSwatchCtrl* LightColorSwatch = getChild<LLColorSwatchCtrl>("colorswatch");  		if(LightColorSwatch)  		{  			LightColorSwatch->setEnabled( TRUE ); @@ -233,7 +233,7 @@ void LLPanelVolume::getState( )  	else  	{  		childSetEnabled("label color",false);	 -		LLColorSwatchCtrl* LightColorSwatch = gUICtrlFactory->getColorSwatchByName(this,"colorswatch"); +		LLColorSwatchCtrl* LightColorSwatch = getChild<LLColorSwatchCtrl>("colorswatch");  		if(LightColorSwatch)  		{  			LightColorSwatch->setEnabled( FALSE ); @@ -342,7 +342,7 @@ void LLPanelVolume::clearCtrls()  	childSetEnabled("Light Checkbox Ctrl",false);  	childSetEnabled("label color",false);  	childSetEnabled("label color",false); -	LLColorSwatchCtrl* LightColorSwatch = gUICtrlFactory->getColorSwatchByName(this,"colorswatch"); +	LLColorSwatchCtrl* LightColorSwatch = getChild<LLColorSwatchCtrl>("colorswatch");  	if(LightColorSwatch)  	{  		LightColorSwatch->setEnabled( FALSE ); @@ -416,7 +416,7 @@ void LLPanelVolume::sendIsFlexible()  void LLPanelVolume::onLightCancelColor(LLUICtrl* ctrl, void* userdata)  {  	LLPanelVolume* self = (LLPanelVolume*) userdata; -	LLColorSwatchCtrl*	LightColorSwatch = gUICtrlFactory->getColorSwatchByName(self,"colorswatch"); +	LLColorSwatchCtrl*	LightColorSwatch = self->getChild<LLColorSwatchCtrl>("colorswatch");  	if(LightColorSwatch)  	{  		LightColorSwatch->setColor(self->mLightSavedColor); @@ -435,7 +435,7 @@ void LLPanelVolume::onLightSelectColor(LLUICtrl* ctrl, void* userdata)  	LLVOVolume *volobjp = (LLVOVolume *)objectp; -	LLColorSwatchCtrl*	LightColorSwatch = gUICtrlFactory->getColorSwatchByName(self,"colorswatch"); +	LLColorSwatchCtrl*	LightColorSwatch = self->getChild<LLColorSwatchCtrl>("colorswatch");  	if(LightColorSwatch)  	{  		LLColor4	clr = LightColorSwatch->get(); @@ -460,7 +460,7 @@ void LLPanelVolume::onCommitLight( LLUICtrl* ctrl, void* userdata )  	volobjp->setLightIntensity((F32)self->childGetValue("Light Intensity").asReal());  	volobjp->setLightRadius((F32)self->childGetValue("Light Radius").asReal());  	volobjp->setLightFalloff((F32)self->childGetValue("Light Falloff").asReal()); -	LLColorSwatchCtrl*	LightColorSwatch = gUICtrlFactory->getColorSwatchByName(self,"colorswatch"); +	LLColorSwatchCtrl*	LightColorSwatch = self->getChild<LLColorSwatchCtrl>("colorswatch");  	if(LightColorSwatch)  	{  		LLColor4	clr = LightColorSwatch->get(); diff --git a/indra/newview/llparcelselection.cpp b/indra/newview/llparcelselection.cpp index 5478a96b97..e49ae57bcf 100644 --- a/indra/newview/llparcelselection.cpp +++ b/indra/newview/llparcelselection.cpp @@ -17,9 +17,8 @@  LLPointer<LLParcelSelection> LLParcelSelection::sNullSelection;  template<>  -	const LLHandle<LLParcelSelection>::NullFunc  -		LLHandle<LLParcelSelection>::sNullFunc = -			LLParcelSelection::getNullParcelSelection; +	const LLSafeHandle<LLParcelSelection>::NullFunc  +		LLSafeHandle<LLParcelSelection>::sNullFunc = LLParcelSelection::getNullParcelSelection;  //  // LLParcelSelection diff --git a/indra/newview/llparcelselection.h b/indra/newview/llparcelselection.h index 579a0f2549..e6729646c7 100644 --- a/indra/newview/llparcelselection.h +++ b/indra/newview/llparcelselection.h @@ -58,6 +58,6 @@ private:  	static LLPointer<LLParcelSelection> sNullSelection;  }; -typedef LLHandle<LLParcelSelection> LLParcelSelectionHandle; +typedef LLSafeHandle<LLParcelSelection> LLParcelSelectionHandle;  #endif diff --git a/indra/newview/llpreview.cpp b/indra/newview/llpreview.cpp index b0d7aa6d1b..cad38e36ff 100644 --- a/indra/newview/llpreview.cpp +++ b/indra/newview/llpreview.cpp @@ -56,7 +56,7 @@  // Globals and statics  LLPreview::preview_multimap_t LLPreview::sPreviewsBySource;  LLPreview::preview_map_t LLPreview::sInstances; -std::map<LLUUID, LLViewHandle> LLMultiPreview::sAutoOpenPreviewHandles; +std::map<LLUUID, LLHandle<LLFloater> > LLMultiPreview::sAutoOpenPreviewHandles;  // Functions  LLPreview::LLPreview(const std::string& name) : @@ -72,7 +72,7 @@ LLPreview::LLPreview(const std::string& name) :  	// don't add to instance list, since ItemID is null  	mAuxItem = new LLInventoryItem; // (LLPointer is auto-deleted)  	// don't necessarily steal focus on creation -- sometimes these guys pop up without user action -	mAutoFocus = FALSE; +	setAutoFocus(FALSE);  	gInventory.addObserver(this);  } @@ -91,7 +91,7 @@ LLPreview::LLPreview(const std::string& name, const LLRect& rect, const std::str  {  	mAuxItem = new LLInventoryItem;  	// don't necessarily steal focus on creation -- sometimes these guys pop up without user action -	mAutoFocus = FALSE; +	setAutoFocus(FALSE);  	if (mItemUUID.notNull())  	{ @@ -114,7 +114,7 @@ LLPreview::~LLPreview()  		preview_multimap_t::iterator found_it = sPreviewsBySource.find(mSourceID);  		for (; found_it != sPreviewsBySource.end(); ++found_it)  		{ -			if (found_it->second == mViewHandle) +			if (found_it->second == getHandle())  			{  				sPreviewsBySource.erase(found_it);  				break; @@ -152,7 +152,7 @@ void LLPreview::setSourceID(const LLUUID& source_id)  		preview_multimap_t::iterator found_it = sPreviewsBySource.find(mSourceID);  		for (; found_it != sPreviewsBySource.end(); ++found_it)  		{ -			if (found_it->second == mViewHandle) +			if (found_it->second == getHandle())  			{  				sPreviewsBySource.erase(found_it);  				break; @@ -160,7 +160,7 @@ void LLPreview::setSourceID(const LLUUID& source_id)  		}  	}  	mSourceID = source_id; -	sPreviewsBySource.insert(preview_multimap_t::value_type(mSourceID, mViewHandle)); +	sPreviewsBySource.insert(preview_multimap_t::value_type(mSourceID, getHandle()));  }  const LLViewerInventoryItem *LLPreview::getItem() const @@ -427,8 +427,7 @@ BOOL LLPreview::handleHover(S32 x, S32 y, MASK mask)  void LLPreview::open()	/*Flawfinder: ignore*/  { -	LLMultiFloater* hostp = getHost(); -	if (!sHostp && !hostp && getAssetStatus() == PREVIEW_ASSET_UNLOADED) +	if (!getFloaterHost() && !getHost() && getAssetStatus() == PREVIEW_ASSET_UNLOADED)  	{  		loadAsset();  	} @@ -524,14 +523,14 @@ LLPreview* LLPreview::getFirstPreviewForSource(const LLUUID& source_id)  	if (found_it != sPreviewsBySource.end())  	{  		// just return first one -		return (LLPreview*)LLFloater::getFloaterByHandle(found_it->second); +		return (LLPreview*)found_it->second.get();  	}  	return NULL;  }  void LLPreview::userSetShape(const LLRect& new_rect)  { -	if(new_rect.getWidth() != mRect.getWidth() || new_rect.getHeight() != mRect.getHeight()) +	if(new_rect.getWidth() != getRect().getWidth() || new_rect.getHeight() != getRect().getHeight())  	{  		userResized();  	} @@ -560,7 +559,7 @@ void LLMultiPreview::open()		/*Flawfinder: ignore*/  void LLMultiPreview::userSetShape(const LLRect& new_rect)  { -	if(new_rect.getWidth() != mRect.getWidth() || new_rect.getHeight() != mRect.getHeight()) +	if(new_rect.getWidth() != getRect().getWidth() || new_rect.getHeight() != getRect().getHeight())  	{  		LLPreview* frontmost_preview = (LLPreview*)mTabContainer->getCurrentPanel();  		if (frontmost_preview) frontmost_preview->userResized(); @@ -584,7 +583,7 @@ LLMultiPreview* LLMultiPreview::getAutoOpenInstance(const LLUUID& id)  	handle_map_t::iterator found_it = sAutoOpenPreviewHandles.find(id);  	if (found_it != sAutoOpenPreviewHandles.end())  	{ -		return (LLMultiPreview*)gFloaterView->getFloaterByHandle(found_it->second);	 +		return (LLMultiPreview*)found_it->second.get();	  	}  	return NULL;  } diff --git a/indra/newview/llpreview.h b/indra/newview/llpreview.h index 97cd2d5b07..5f129b99d4 100644 --- a/indra/newview/llpreview.h +++ b/indra/newview/llpreview.h @@ -58,10 +58,12 @@ public:  	static void setAutoOpenInstance(LLMultiPreview* previewp, const LLUUID& id);  protected: -	typedef std::map<LLUUID, LLViewHandle> handle_map_t; -	static std::map<LLUUID, LLViewHandle> sAutoOpenPreviewHandles; +	typedef std::map<LLUUID, LLHandle<LLFloater> > handle_map_t; +	static handle_map_t sAutoOpenPreviewHandles;  }; +// https://wiki.lindenlab.com/mediawiki/index.php?title=LLPreview&oldid=81373 +  class LLPreview : public LLFloater, LLInventoryObserver  {  public: @@ -160,7 +162,7 @@ protected:  	EAssetStatus mAssetStatus;  	typedef std::map<LLUUID, LLPreview*> preview_map_t; -	typedef std::multimap<LLUUID, LLViewHandle> preview_multimap_t; +	typedef std::multimap<LLUUID, LLHandle<LLFloater> > preview_multimap_t;  	static preview_multimap_t sPreviewsBySource;  	static preview_map_t sInstances; diff --git a/indra/newview/llpreviewanim.cpp b/indra/newview/llpreviewanim.cpp index f6d5d9d9b7..ba96ba088b 100644 --- a/indra/newview/llpreviewanim.cpp +++ b/indra/newview/llpreviewanim.cpp @@ -96,8 +96,8 @@ LLPreviewAnim::LLPreviewAnim(const std::string& name, const LLRect& rect, const  // static  void LLPreviewAnim::endAnimCallback( void *userdata )  { -	LLViewHandle* handlep = ((LLViewHandle*)userdata); -	LLFloater* self = getFloaterByHandle(*handlep); +	LLHandle<LLFloater>* handlep = ((LLHandle<LLFloater>*)userdata); +	LLFloater* self = handlep->get();  	delete handlep; // done with the handle  	if (self)  	{ @@ -132,7 +132,7 @@ void LLPreviewAnim::playAnim( void *userdata )  			if (motion)  			{ -				motion->setDeactivateCallback(&endAnimCallback, (void *)(new LLViewHandle(self->getHandle()))); +				motion->setDeactivateCallback(&endAnimCallback, (void *)(new LLHandle<LLFloater>(self->getHandle())));  			}  		}  		else @@ -169,7 +169,7 @@ void LLPreviewAnim::auditionAnim( void *userdata )  			if (motion)  			{ -				motion->setDeactivateCallback(&endAnimCallback, (void *)(new LLViewHandle(self->getHandle()))); +				motion->setDeactivateCallback(&endAnimCallback, (void *)(new LLHandle<LLFloater>(self->getHandle())));  			}  		}  		else diff --git a/indra/newview/llpreviewgesture.cpp b/indra/newview/llpreviewgesture.cpp index 61bda9dfc0..ba2925d45a 100644 --- a/indra/newview/llpreviewgesture.cpp +++ b/indra/newview/llpreviewgesture.cpp @@ -585,7 +585,7 @@ void LLPreviewGesture::addAnimations()  	combo->removeall(); -	LLString none_text = childGetText("none_text"); +	LLString none_text = getString("none_text");  	combo->add(none_text, LLUUID::null); @@ -640,7 +640,7 @@ void LLPreviewGesture::addSounds()  	LLComboBox* combo = mSoundCombo;  	combo->removeall(); -	LLString none_text = childGetText("none_text"); +	LLString none_text = getString("none_text");  	combo->add(none_text, LLUUID::null); @@ -789,7 +789,7 @@ void LLPreviewGesture::refresh()  		case STEP_ANIMATION:  			{  				LLGestureStepAnimation* anim_step = (LLGestureStepAnimation*)step; -				optionstext = childGetText("step_anim"); +				optionstext = getString("step_anim");  				mAnimationCombo->setVisible(TRUE);  				mAnimationRadio->setVisible(TRUE);  				mAnimationRadio->setSelectedIndex((anim_step->mFlags & ANIM_FLAG_STOP) ? 1 : 0); @@ -799,7 +799,7 @@ void LLPreviewGesture::refresh()  		case STEP_SOUND:  			{  				LLGestureStepSound* sound_step = (LLGestureStepSound*)step; -				optionstext = childGetText("step_sound"); +				optionstext = getString("step_sound");  				mSoundCombo->setVisible(TRUE);  				mSoundCombo->setCurrentByID(sound_step->mSoundAssetID);  				break; @@ -807,7 +807,7 @@ void LLPreviewGesture::refresh()  		case STEP_CHAT:  			{  				LLGestureStepChat* chat_step = (LLGestureStepChat*)step; -				optionstext = childGetText("step_chat"); +				optionstext = getString("step_chat");  				mChatEditor->setVisible(TRUE);  				mChatEditor->setText(chat_step->mChatText);  				break; @@ -815,7 +815,7 @@ void LLPreviewGesture::refresh()  		case STEP_WAIT:  			{  				LLGestureStepWait* wait_step = (LLGestureStepWait*)step; -				optionstext = childGetText("step_wait"); +				optionstext = getString("step_wait");  				mWaitAnimCheck->setVisible(TRUE);  				mWaitAnimCheck->set(wait_step->mFlags & WAIT_FLAG_ALL_ANIM);  				mWaitTimeCheck->setVisible(TRUE); @@ -1753,7 +1753,7 @@ void LLPreviewGesture::onClickPreview(void* data)  		self->mPreviewGesture->mCallbackData = self;  		// set the button title -		self->mPreviewBtn->setLabel(self->childGetText("stop_txt")); +		self->mPreviewBtn->setLabel(self->getString("stop_txt"));  		// play it, and delete when done  		gGestureManager.playGesture(self->mPreviewGesture); @@ -1775,7 +1775,7 @@ void LLPreviewGesture::onDonePreview(LLMultiGesture* gesture, void* data)  {  	LLPreviewGesture* self = (LLPreviewGesture*)data; -	self->mPreviewBtn->setLabel(self->childGetText("preview_txt")); +	self->mPreviewBtn->setLabel(self->getString("preview_txt"));  	delete self->mPreviewGesture;  	self->mPreviewGesture = NULL; diff --git a/indra/newview/llpreviewnotecard.cpp b/indra/newview/llpreviewnotecard.cpp index eef8c0d636..37d0ba8303 100644 --- a/indra/newview/llpreviewnotecard.cpp +++ b/indra/newview/llpreviewnotecard.cpp @@ -307,7 +307,7 @@ void LLPreviewNotecard::loadAsset()  						// The object that we're trying to look at disappeared, bail.  						llwarns << "Can't find object " << mObjectUUID << " associated with notecard." << llendl;  						mAssetID.setNull(); -						editor->setText(childGetText("no_object")); +						editor->setText(getString("no_object"));  						editor->makePristine();  						editor->setEnabled(FALSE);  						mAssetStatus = PREVIEW_ASSET_LOADED; @@ -332,7 +332,7 @@ void LLPreviewNotecard::loadAsset()  		else  		{  			mAssetID.setNull(); -			editor->setText(childGetText("not_allowed")); +			editor->setText(getString("not_allowed"));  			editor->makePristine();  			editor->setEnabled(FALSE);  			mAssetStatus = PREVIEW_ASSET_LOADED; @@ -654,7 +654,7 @@ void LLPreviewNotecard::reshape(S32 width, S32 height, BOOL called_from_parent)  	{  		// So that next time you open a script it will have the same height and width   		// (although not the same position). -		gSavedSettings.setRect("NotecardEditorRect", mRect); +		gSavedSettings.setRect("NotecardEditorRect", getRect());  	}  } diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp index d3afd65cbe..dd49262cb2 100644 --- a/indra/newview/llpreviewscript.cpp +++ b/indra/newview/llpreviewscript.cpp @@ -288,7 +288,7 @@ LLScriptEdCore::LLScriptEdCore(  	const LLRect& rect,  	const std::string& sample,  	const std::string& help, -	const LLViewHandle& floater_handle, +	const LLHandle<LLFloater>& floater_handle,  	void (*load_callback)(void*),  	void (*save_callback)(void*, BOOL),  	void (*search_replace_callback) (void* userdata), @@ -343,19 +343,19 @@ LLScriptEdCore::LLScriptEdCore(  	LLKeywordToken *token; -	LLKeywords::word_token_map_t::iterator token_it; -	for (token_it = mEditor->mKeywords.mWordTokenMap.begin(); token_it != mEditor->mKeywords.mWordTokenMap.end(); ++token_it) +	LLKeywords::keyword_iterator_t token_it; +	for (token_it = mEditor->keywordsBegin(); token_it != mEditor->keywordsEnd(); ++token_it)  	{  		token = token_it->second; -		if (token->mColor == color) -			mFunctions->add(wstring_to_utf8str(token->mToken)); +		if (token->getColor() == color) +			mFunctions->add(wstring_to_utf8str(token->getToken()));  	} -	for (token_it = mEditor->mKeywords.mWordTokenMap.begin(); token_it != mEditor->mKeywords.mWordTokenMap.end(); ++token_it) +	for (token_it = mEditor->keywordsBegin(); token_it != mEditor->keywordsEnd(); ++token_it)  	{  		token = token_it->second; -		if (token->mColor != color) -			mFunctions->add(wstring_to_utf8str(token->mToken)); +		if (token->getColor() != color) +			mFunctions->add(wstring_to_utf8str(token->getToken()));  	} @@ -365,7 +365,7 @@ LLScriptEdCore::LLScriptEdCore(  	initMenu();  	// Do the work that addTabPanel() normally does. -	//LLRect tab_panel_rect( 0, mRect.getHeight(), mRect.getWidth(), 0 ); +	//LLRect tab_panel_rect( 0, getRect().getHeight(), getRect().getWidth(), 0 );  	//tab_panel_rect.stretch( -LLPANEL_BORDER_WIDTH );  	//mCodePanel->setFollowsAll();  	//mCodePanel->translate( tab_panel_rect.mLeft - mCodePanel->getRect().mLeft, tab_panel_rect.mBottom - mCodePanel->getRect().mBottom); @@ -468,13 +468,13 @@ void LLScriptEdCore::draw()  void LLScriptEdCore::updateDynamicHelp(BOOL immediate)  { -	LLFloater* help_floater = LLFloater::getFloaterByHandle(mLiveHelpHandle); +	LLFloater* help_floater = mLiveHelpHandle.get();  	if (!help_floater) return;  	// update back and forward buttons  	LLButton* fwd_button = LLUICtrlFactory::getButtonByName(help_floater, "fwd_btn");  	LLButton* back_button = LLUICtrlFactory::getButtonByName(help_floater, "back_btn"); -	LLWebBrowserCtrl* browser = LLUICtrlFactory::getWebBrowserCtrlByName(help_floater, "lsl_guide_html"); +	LLWebBrowserCtrl* browser = help_floater->getChild<LLWebBrowserCtrl>("lsl_guide_html");  	back_button->setEnabled(browser->canNavigateBack());  	fwd_button->setEnabled(browser->canNavigateForward()); @@ -483,12 +483,12 @@ void LLScriptEdCore::updateDynamicHelp(BOOL immediate)  		return;  	} -	LLTextSegment* segment = NULL; -	std::vector<LLTextSegment*> selected_segments; +	const LLTextSegment* segment = NULL; +	std::vector<const LLTextSegment*> selected_segments;  	mEditor->getSelectedSegments(selected_segments);  	// try segments in selection range first -	std::vector<LLTextSegment*>::iterator segment_iter; +	std::vector<const LLTextSegment*>::iterator segment_iter;  	for (segment_iter = selected_segments.begin(); segment_iter != selected_segments.end(); ++segment_iter)  	{  		if((*segment_iter)->getToken() && (*segment_iter)->getToken()->getType() == LLKeywordToken::WORD) @@ -501,7 +501,7 @@ void LLScriptEdCore::updateDynamicHelp(BOOL immediate)  	// then try previous segment in case we just typed it  	if (!segment)  	{ -		LLTextSegment* test_segment = mEditor->getPreviousSegment(); +		const LLTextSegment* test_segment = mEditor->getPreviousSegment();  		if(test_segment->getToken() && test_segment->getToken()->getType() == LLKeywordToken::WORD)  		{  			segment = test_segment; @@ -530,10 +530,10 @@ void LLScriptEdCore::updateDynamicHelp(BOOL immediate)  void LLScriptEdCore::setHelpPage(const LLString& help_string)  { -	LLFloater* help_floater = LLFloater::getFloaterByHandle(mLiveHelpHandle); +	LLFloater* help_floater = mLiveHelpHandle.get();  	if (!help_floater) return; -	LLWebBrowserCtrl* web_browser = gUICtrlFactory->getWebBrowserCtrlByName(help_floater, "lsl_guide_html"); +	LLWebBrowserCtrl* web_browser = help_floater->getChild<LLWebBrowserCtrl>("lsl_guide_html");  	if (!web_browser) return;  	LLComboBox* history_combo = gUICtrlFactory->getComboBoxByName(help_floater, "history_combo"); @@ -553,7 +553,7 @@ void LLScriptEdCore::addHelpItemToHistory(const LLString& help_string)  {  	if (help_string.empty()) return; -	LLFloater* help_floater = LLFloater::getFloaterByHandle(mLiveHelpHandle); +	LLFloater* help_floater = mLiveHelpHandle.get();  	if (!help_floater) return;  	LLComboBox* history_combo = gUICtrlFactory->getComboBoxByName(help_floater, "history_combo"); @@ -660,7 +660,7 @@ void LLScriptEdCore::onBtnDynamicHelp(void* userdata)  {  	LLScriptEdCore* corep = (LLScriptEdCore*)userdata; -	LLFloater* live_help_floater = LLFloater::getFloaterByHandle(corep->mLiveHelpHandle); +	LLFloater* live_help_floater = corep->mLiveHelpHandle.get();  	if (live_help_floater)  	{  		live_help_floater->setFocus(TRUE); @@ -678,18 +678,18 @@ void LLScriptEdCore::onBtnDynamicHelp(void* userdata)  	live_help_floater->childSetAction("back_btn", onClickBack, userdata);  	live_help_floater->childSetAction("fwd_btn", onClickForward, userdata); -	LLWebBrowserCtrl* browser = LLUICtrlFactory::getWebBrowserCtrlByName(live_help_floater, "lsl_guide_html"); +	LLWebBrowserCtrl* browser = live_help_floater->getChild<LLWebBrowserCtrl>("lsl_guide_html");  	browser->setAlwaysRefresh(TRUE);  	LLComboBox* help_combo = LLUICtrlFactory::getComboBoxByName(live_help_floater, "history_combo");  	LLKeywordToken *token; -	LLKeywords::word_token_map_t::iterator token_it; -	for (token_it = corep->mEditor->mKeywords.mWordTokenMap.begin();  -		token_it != corep->mEditor->mKeywords.mWordTokenMap.end();  +	LLKeywords::keyword_iterator_t token_it; +	for (token_it = corep->mEditor->keywordsBegin();  +		token_it != corep->mEditor->keywordsEnd();   		++token_it)  	{  		token = token_it->second; -		help_combo->add(wstring_to_utf8str(token->mToken)); +		help_combo->add(wstring_to_utf8str(token->getToken()));  	}  	help_combo->sortByName(); @@ -704,10 +704,10 @@ void LLScriptEdCore::onBtnDynamicHelp(void* userdata)  void LLScriptEdCore::onClickBack(void* userdata)  {  	LLScriptEdCore* corep = (LLScriptEdCore*)userdata; -	LLFloater* live_help_floater = LLFloater::getFloaterByHandle(corep->mLiveHelpHandle); +	LLFloater* live_help_floater = corep->mLiveHelpHandle.get();  	if (live_help_floater)  	{ -		LLWebBrowserCtrl* browserp = LLUICtrlFactory::getWebBrowserCtrlByName(live_help_floater, "lsl_guide_html"); +		LLWebBrowserCtrl* browserp = live_help_floater->getChild<LLWebBrowserCtrl>("lsl_guide_html");  		if (browserp)  		{  			browserp->navigateBack(); @@ -719,10 +719,10 @@ void LLScriptEdCore::onClickBack(void* userdata)  void LLScriptEdCore::onClickForward(void* userdata)  {  	LLScriptEdCore* corep = (LLScriptEdCore*)userdata; -	LLFloater* live_help_floater = LLFloater::getFloaterByHandle(corep->mLiveHelpHandle); +	LLFloater* live_help_floater = corep->mLiveHelpHandle.get();  	if (live_help_floater)  	{ -		LLWebBrowserCtrl* browserp = LLUICtrlFactory::getWebBrowserCtrlByName(live_help_floater, "lsl_guide_html"); +		LLWebBrowserCtrl* browserp = live_help_floater->getChild<LLWebBrowserCtrl>("lsl_guide_html");  		if (browserp)  		{  			browserp->navigateForward(); @@ -757,14 +757,14 @@ void LLScriptEdCore::onHelpComboCommit(LLUICtrl* ctrl, void* userdata)  {  	LLScriptEdCore* corep = (LLScriptEdCore*)userdata; -	LLFloater* live_help_floater = LLFloater::getFloaterByHandle(corep->mLiveHelpHandle); +	LLFloater* live_help_floater = corep->mLiveHelpHandle.get();  	if (live_help_floater)  	{  		LLString help_string = ctrl->getValue().asString();  		corep->addHelpItemToHistory(help_string); -		LLWebBrowserCtrl* web_browser = gUICtrlFactory->getWebBrowserCtrlByName(live_help_floater, "lsl_guide_html"); +		LLWebBrowserCtrl* web_browser = live_help_floater->getChild<LLWebBrowserCtrl>("lsl_guide_html");  		LLUIString url_string = gSavedSettings.getString("LSLHelpURL");  		url_string.setArg("[APP_DIRECTORY]", gDirUtilp->getWorkingDir());  		url_string.setArg("[LSL_STRING]", help_string); @@ -971,7 +971,7 @@ void LLScriptEdCore::handleReloadFromServerDialog( S32 option, void* userdata )  	case 0: // "Yes"  		if( self->mLoadCallback )  		{ -			self->mEditor->setText( self->childGetText("loading") ); +			self->mEditor->setText( self->getString("loading") );  			self->mLoadCallback( self->mUserdata );  		}  		break; @@ -1071,7 +1071,7 @@ void* LLPreviewLSL::createScriptEdPanel(void* userdata)  								   LLRect(),  								   HELLO_LSL,  								   HELP_LSL, -								   self->mViewHandle, +								   self->getHandle(),  								   LLPreviewLSL::onLoad,  								   LLPreviewLSL::onSave,  								   LLPreviewLSL::onSearchReplace, @@ -1104,9 +1104,7 @@ LLPreviewLSL::LLPreviewLSL(const std::string& name, const LLRect& rect,  	childSetText("desc", item->getDescription());  	childSetPrevalidate("desc", &LLLineEditor::prevalidatePrintableNotPipe); -	LLMultiFloater* hostp = getHost(); - -	if (!sHostp && !hostp && getAssetStatus() == PREVIEW_ASSET_UNLOADED) +	if (!getFloaterHost() && !getHost() && getAssetStatus() == PREVIEW_ASSET_UNLOADED)  	{  		loadAsset();  	} @@ -1185,7 +1183,7 @@ void LLPreviewLSL::loadAsset()  		}  		else  		{ -			mScriptEd->mEditor->setText(mScriptEd->childGetText("can_not_view")); +			mScriptEd->mEditor->setText(mScriptEd->getString("can_not_view"));  			mScriptEd->mEditor->makePristine();  			mScriptEd->mEditor->setEnabled(FALSE);  			mScriptEd->mFunctions->setEnabled(FALSE); @@ -1565,7 +1563,7 @@ void LLPreviewLSL::reshape(S32 width, S32 height, BOOL called_from_parent)  	{  		// So that next time you open a script it will have the same height and width   		// (although not the same position). -		gSavedSettings.setRect("PreviewScriptRect", mRect); +		gSavedSettings.setRect("PreviewScriptRect", getRect());  	}  } @@ -1587,7 +1585,7 @@ void* LLLiveLSLEditor::createScriptEdPanel(void* userdata)  								   LLRect(),  								   HELLO_LSL,  								   HELP_LSL, -								   self->mViewHandle, +								   self->getHandle(),  								   &LLLiveLSLEditor::onLoad,  								   &LLLiveLSLEditor::onSave,  								   &LLLiveLSLEditor::onSearchReplace, @@ -1717,7 +1715,7 @@ void LLLiveLSLEditor::loadAsset(BOOL is_new)  					   || !gAgent.allowOperation(PERM_MODIFY, item->getPermissions(), GP_OBJECT_MANIPULATE))))  			{  				mItem = new LLViewerInventoryItem(item); -				mScriptEd->mEditor->setText(childGetText("not_allowed")); +				mScriptEd->mEditor->setText(getString("not_allowed"));  				mScriptEd->mEditor->makePristine();  				mScriptEd->mEditor->setEnabled(FALSE);  				mAssetStatus = PREVIEW_ASSET_LOADED; @@ -1971,12 +1969,12 @@ void LLLiveLSLEditor::draw()  		{  			if(object->permAnyOwner())  			{ -				runningCheckbox->setLabel(childGetText("script_running")); +				runningCheckbox->setLabel(getString("script_running"));  				runningCheckbox->setEnabled(TRUE);  			}  			else  			{ -				runningCheckbox->setLabel(childGetText("public_objects_can_not_run")); +				runningCheckbox->setLabel(getString("public_objects_can_not_run"));  				runningCheckbox->setEnabled(FALSE);  				// *FIX: Set it to false so that the ui is correct for  				// a box that is released to public. It could be @@ -2224,7 +2222,7 @@ void LLLiveLSLEditor::uploadAssetLegacy(const std::string& filename,  	// If we successfully saved it, then we should be able to check/uncheck the running box!  	LLCheckBoxCtrl* runningCheckbox = LLUICtrlFactory::getCheckBoxByName(this, "running"); -	runningCheckbox->setLabel(childGetText("script_running")); +	runningCheckbox->setLabel(getString("script_running"));  	runningCheckbox->setEnabled(TRUE);  } @@ -2404,6 +2402,6 @@ void LLLiveLSLEditor::reshape(S32 width, S32 height, BOOL called_from_parent)  	{  		// So that next time you open a script it will have the same height and width   		// (although not the same position). -		gSavedSettings.setRect("PreviewScriptRect", mRect); +		gSavedSettings.setRect("PreviewScriptRect", getRect());  	}  } diff --git a/indra/newview/llpreviewscript.h b/indra/newview/llpreviewscript.h index a9b36f3978..55b006908f 100644 --- a/indra/newview/llpreviewscript.h +++ b/indra/newview/llpreviewscript.h @@ -67,7 +67,7 @@ public:  		const LLRect& rect,  		const std::string& sample,  		const std::string& help, -		const LLViewHandle& floater_handle, +		const LLHandle<LLFloater>& floater_handle,  		void (*load_callback)(void* userdata),  		void (*save_callback)(void* userdata, BOOL close_after_save),  		void (*search_replace_callback)(void* userdata), @@ -144,7 +144,7 @@ private:  	LLPanel*		mCodePanel;  	LLScrollListCtrl* mErrorList;  	LLDynamicArray<LLEntryAndEdCore*> mBridges; -	LLViewHandle	mLiveHelpHandle; +	LLHandle<LLFloater>	mLiveHelpHandle;  	LLKeywordToken* mLastHelpToken;  	LLFrameTimer	mLiveHelpTimer;  	S32				mLiveHelpHistorySize; diff --git a/indra/newview/llpreviewtexture.cpp b/indra/newview/llpreviewtexture.cpp index 78d066f85f..20737eb7f1 100644 --- a/indra/newview/llpreviewtexture.cpp +++ b/indra/newview/llpreviewtexture.cpp @@ -199,7 +199,7 @@ void LLPreviewTexture::draw()  		LLPreview::draw(); -		if (!mMinimized) +		if (!isMinimized())  		{  			LLGLSUIDefault gls_ui;  			LLGLSNoTexture gls_notex; @@ -255,7 +255,7 @@ void LLPreviewTexture::draw()  					const S32 BAR_HEIGHT = 12;  					const S32 BAR_LEFT_PAD = 80;  					S32 left = interior.mLeft + 4 + BAR_LEFT_PAD; -					S32 bar_width = mRect.getWidth() - left - RESIZE_HANDLE_WIDTH - 2; +					S32 bar_width = getRect().getWidth() - left - RESIZE_HANDLE_WIDTH - 2;  					S32 top = interior.mBottom + 4 + BAR_HEIGHT;  					S32 right = left + bar_width;  					S32 bottom = top - BAR_HEIGHT; @@ -434,8 +434,8 @@ void LLPreviewTexture::updateAspectRatio()  		mLastWidth = client_width;  		mLastHeight = client_height; -		S32 old_top = mRect.mTop; -		S32 old_left = mRect.mLeft; +		S32 old_top = getRect().mTop; +		S32 old_left = getRect().mLeft;  		if (getHost())  		{  			getHost()->growToFit(view_width, view_height); @@ -443,7 +443,7 @@ void LLPreviewTexture::updateAspectRatio()  		else  		{  			reshape( view_width, view_height ); -			S32 new_bottom = old_top - mRect.getHeight(); +			S32 new_bottom = old_top - getRect().getHeight();  			setOrigin( old_left, new_bottom );  			// Try to keep whole view onscreen, don't allow partial offscreen.  			gFloaterView->adjustToFitScreen(this, FALSE); @@ -454,20 +454,20 @@ void LLPreviewTexture::updateAspectRatio()  	if (!mUserResized)  	{  		// clamp texture size to fit within actual size of floater after attempting resize -		client_width = llmin(client_width, mRect.getWidth() - horiz_pad); -		client_height = llmin(client_height, mRect.getHeight() - PREVIEW_HEADER_SIZE  +		client_width = llmin(client_width, getRect().getWidth() - horiz_pad); +		client_height = llmin(client_height, getRect().getHeight() - PREVIEW_HEADER_SIZE   						- (2 * CLIENT_RECT_VPAD) - LLPANEL_BORDER_WIDTH - info_height);  	}  	else  	{ -		client_width = mRect.getWidth() - horiz_pad; +		client_width = getRect().getWidth() - horiz_pad;  		client_height = llround(client_width * inv_aspect_ratio);  	} -	S32 max_height = mRect.getHeight() - PREVIEW_BORDER - button_height  +	S32 max_height = getRect().getHeight() - PREVIEW_BORDER - button_height   			            - CLIENT_RECT_VPAD - info_height - CLIENT_RECT_VPAD - PREVIEW_HEADER_SIZE;  	max_height = llmax(max_height, 1); @@ -478,7 +478,7 @@ void LLPreviewTexture::updateAspectRatio()  		client_width = llround(client_height * aspect_ratio);  	} -	LLRect window_rect(0, mRect.getHeight(), mRect.getWidth(), 0); +	LLRect window_rect(0, getRect().getHeight(), getRect().getWidth(), 0);  	window_rect.mTop -= (PREVIEW_HEADER_SIZE + CLIENT_RECT_VPAD);  	window_rect.mBottom += PREVIEW_BORDER + button_height + CLIENT_RECT_VPAD + info_height + CLIENT_RECT_VPAD; diff --git a/indra/newview/llprogressview.cpp b/indra/newview/llprogressview.cpp index cc9c3fa503..9e437df2d1 100644 --- a/indra/newview/llprogressview.cpp +++ b/indra/newview/llprogressview.cpp @@ -74,7 +74,7 @@ LLProgressView::LLProgressView(const std::string& name, const LLRect &rect)  	const S32 CANCEL_BTN_OFFSET = 16;  	LLRect r;  	r.setOriginAndSize(  -		mRect.getWidth() - CANCEL_BTN_OFFSET - CANCEL_BTN_WIDTH, CANCEL_BTN_OFFSET, +		getRect().getWidth() - CANCEL_BTN_OFFSET - CANCEL_BTN_WIDTH, CANCEL_BTN_OFFSET,  		CANCEL_BTN_WIDTH, BTN_HEIGHT );  	mCancelBtn = new LLButton(  @@ -162,7 +162,7 @@ void LLProgressView::draw()  	// Make sure the progress view always fills the entire window.  	S32 width = gViewerWindow->getWindowWidth();  	S32 height = gViewerWindow->getWindowHeight(); -	if( (width != mRect.getWidth()) || (height != mRect.getHeight()) ) +	if( (width != getRect().getWidth()) || (height != getRect().getHeight()) )  	{  		reshape( width, height );  	} @@ -189,14 +189,14 @@ void LLProgressView::draw()  				glTranslatef(0.f, -0.5f * (view_aspect / image_aspect - 1.f) * height, 0.f);  				glScalef(1.f, view_aspect / image_aspect, 1.f);  			} -			gl_rect_2d_simple_tex( mRect.getWidth(), mRect.getHeight() ); +			gl_rect_2d_simple_tex( getRect().getWidth(), getRect().getHeight() );  			gStartImageGL->unbindTexture(0, GL_TEXTURE_2D);  		}  		else  		{  			LLGLSNoTexture gls_no_texture;  			glColor4f(0.f, 0.f, 0.f, 1.f); -			gl_rect_2d(mRect); +			gl_rect_2d(getRect());  		}  		glPopMatrix();  	} @@ -213,8 +213,8 @@ void LLProgressView::draw()  		return;  	} -	S32 line_x = mRect.getWidth() / 2; -	S32 line_one_y = mRect.getHeight() / 2 + 64; +	S32 line_x = getRect().getWidth() / 2; +	S32 line_one_y = getRect().getHeight() / 2 + 64;  	const S32 LINE_SPACING = 25;  	S32 line_two_y = line_one_y - LINE_SPACING;  	const LLFontGL* font = LLFontGL::sSansSerif; @@ -243,8 +243,8 @@ void LLProgressView::draw()  	S32 bar_bottom = line_two_y - 30;  	S32 bar_height = 18; -	S32 bar_width = mRect.getWidth() * 2 / 3; -	S32 bar_left = (mRect.getWidth() / 2) - (bar_width / 2); +	S32 bar_width = getRect().getWidth() * 2 / 3; +	S32 bar_left = (getRect().getWidth() / 2) - (bar_width / 2);  	gl_draw_scaled_image_with_border(  		bar_left + 2,  diff --git a/indra/newview/llremoteparcelrequest.cpp b/indra/newview/llremoteparcelrequest.cpp index c28623723f..d8bb7c1a61 100644 --- a/indra/newview/llremoteparcelrequest.cpp +++ b/indra/newview/llremoteparcelrequest.cpp @@ -44,7 +44,7 @@  #include "llview.h"  #include "message.h" -LLRemoteParcelRequestResponder::LLRemoteParcelRequestResponder(LLViewHandle place_panel_handle) +LLRemoteParcelRequestResponder::LLRemoteParcelRequestResponder(LLHandle<LLPanel> place_panel_handle)  {  	 mPlacePanelHandle = place_panel_handle;  } @@ -53,7 +53,7 @@ void LLRemoteParcelRequestResponder::result(const LLSD& content)  {  	LLUUID parcel_id = content["parcel_id"]; -	LLPanelPlace* place_panelp = (LLPanelPlace*)LLPanel::getPanelByHandle(mPlacePanelHandle); +	LLPanelPlace* place_panelp = (LLPanelPlace*)mPlacePanelHandle.get();  	if(place_panelp)  	{ @@ -67,7 +67,7 @@ void LLRemoteParcelRequestResponder::error(U32 status, const std::string& reason  {  	llinfos << "LLRemoteParcelRequest::error("  		<< status << ": " << reason << ")" << llendl; -	LLPanelPlace* place_panelp = (LLPanelPlace*)LLPanel::getPanelByHandle(mPlacePanelHandle); +	LLPanelPlace* place_panelp = (LLPanelPlace*)mPlacePanelHandle.get();  	if(place_panelp)  	{ diff --git a/indra/newview/llremoteparcelrequest.h b/indra/newview/llremoteparcelrequest.h index 628994a744..8cbe3f74bf 100644 --- a/indra/newview/llremoteparcelrequest.h +++ b/indra/newview/llremoteparcelrequest.h @@ -35,19 +35,19 @@  #define LL_LLREMOTEPARCELREQUEST_H  #include "llhttpclient.h" -#include "llview.h" +#include "llpanel.h"  class LLRemoteParcelRequestResponder : public LLHTTPClient::Responder  {  public: -	LLRemoteParcelRequestResponder(LLViewHandle place_panel_handle); +	LLRemoteParcelRequestResponder(LLHandle<LLPanel> place_panel_handle);  	//If we get back a normal response, handle it here  	virtual void result(const LLSD& content);  	//If we get back an error (not found, etc...), handle it here  	virtual void error(U32 status, const std::string& reason);  protected: -	LLViewHandle mPlacePanelHandle; +	LLHandle<LLPanel> mPlacePanelHandle;  };  #endif // LL_LLREMOTEPARCELREQUEST_H diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp index 511fd73ef7..d80a9ee053 100644 --- a/indra/newview/llselectmgr.cpp +++ b/indra/newview/llselectmgr.cpp @@ -126,8 +126,8 @@ LLColor4 LLSelectMgr::sContextSilhouetteColor;  static LLObjectSelection *get_null_object_selection();  template<>  -	const LLHandle<LLObjectSelection>::NullFunc  -		LLHandle<LLObjectSelection>::sNullFunc = get_null_object_selection; +	const LLSafeHandle<LLObjectSelection>::NullFunc  +		LLSafeHandle<LLObjectSelection>::sNullFunc = get_null_object_selection;  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // struct LLDeRezInfo @@ -2272,12 +2272,7 @@ BOOL LLSelectMgr::selectGetCreator(LLUUID& result_id, LLString& name)  	if (identical)  	{ -		char firstname[DB_FIRST_NAME_BUF_SIZE];		/* Flawfinder: ignore */ -		char lastname[DB_LAST_NAME_BUF_SIZE];		/* Flawfinder: ignore */ -		gCacheName->getName(first_id, firstname, lastname); -		name.assign( firstname ); -		name.append( " " ); -		name.append( lastname ); +		gCacheName->getFullName(first_id, name);  	}  	else  	{ @@ -2340,12 +2335,7 @@ BOOL LLSelectMgr::selectGetOwner(LLUUID& result_id, LLString& name)  		}  		else if(!public_owner)  		{ -			char firstname[DB_FIRST_NAME_BUF_SIZE];		/* Flawfinder: ignore */ -			char lastname[DB_LAST_NAME_BUF_SIZE];		/* Flawfinder: ignore */ -			gCacheName->getName(first_id, firstname, lastname); -			name.assign( firstname ); -			name.append( " " ); -			name.append( lastname ); +			gCacheName->getFullName(first_id, name);  		}  		else  		{ @@ -2405,12 +2395,7 @@ BOOL LLSelectMgr::selectGetLastOwner(LLUUID& result_id, LLString& name)  		BOOL public_owner = (first_id.isNull());  		if(!public_owner)  		{ -			char firstname[DB_FIRST_NAME_BUF_SIZE];		/* Flawfinder: ignore */ -			char lastname[DB_LAST_NAME_BUF_SIZE];		/* Flawfinder: ignore */ -			gCacheName->getName(first_id, firstname, lastname); -			name.assign( firstname ); -			name.append( " " ); -			name.append( lastname ); +			gCacheName->getFullName(first_id, name);  		}  		else  		{ @@ -4348,12 +4333,8 @@ void LLSelectMgr::processObjectPropertiesFamily(LLMessageSystem* msg, void** use  		LLFloaterReporter *reporterp = LLFloaterReporter::getReporter(report_type);  		if (reporterp)  		{ -			char first_name[DB_FIRST_NAME_BUF_SIZE];		/* Flawfinder: ignore */ -			char last_name[DB_LAST_NAME_BUF_SIZE];		/* Flawfinder: ignore */ -			gCacheName->getName(owner_id, first_name, last_name); -			LLString fullname(first_name); -			fullname.append(" "); -			fullname.append(last_name); +			std::string fullname; +			gCacheName->getFullName(owner_id, fullname);  			reporterp->setPickedObjectProperties(name, fullname, owner_id);  		}  	} @@ -5476,9 +5457,9 @@ LLBBox LLSelectMgr::getBBoxOfSelection() const  //-----------------------------------------------------------------------------  // canUndo()  //----------------------------------------------------------------------------- -BOOL LLSelectMgr::canUndo() +BOOL LLSelectMgr::canUndo() const  { -	return mSelectedObjects->getFirstEditableObject() != NULL; +	return const_cast<LLSelectMgr*>(this)->mSelectedObjects->getFirstEditableObject() != NULL; // HACK: casting away constness - MG  }  //----------------------------------------------------------------------------- @@ -5494,9 +5475,9 @@ void LLSelectMgr::undo()  //-----------------------------------------------------------------------------  // canRedo()  //----------------------------------------------------------------------------- -BOOL LLSelectMgr::canRedo() +BOOL LLSelectMgr::canRedo() const  { -	return mSelectedObjects->getFirstEditableObject() != NULL; +	return const_cast<LLSelectMgr*>(this)->mSelectedObjects->getFirstEditableObject() != NULL; // HACK: casting away constness - MG  }  //----------------------------------------------------------------------------- @@ -5512,10 +5493,10 @@ void LLSelectMgr::redo()  //-----------------------------------------------------------------------------  // canDoDelete()  //----------------------------------------------------------------------------- -BOOL LLSelectMgr::canDoDelete() +BOOL LLSelectMgr::canDoDelete() const  {  	// Note: Can only delete root objects (see getFirstDeleteableObject() for more info) -	return mSelectedObjects->getFirstDeleteableObject() != NULL; +	return const_cast<LLSelectMgr*>(this)->mSelectedObjects->getFirstDeleteableObject() != NULL; // HACK: casting away constness - MG  }  //----------------------------------------------------------------------------- @@ -5529,7 +5510,7 @@ void LLSelectMgr::doDelete()  //-----------------------------------------------------------------------------  // canDeselect()  //----------------------------------------------------------------------------- -BOOL LLSelectMgr::canDeselect() +BOOL LLSelectMgr::canDeselect() const  {  	return !mSelectedObjects->isEmpty();  } @@ -5544,9 +5525,9 @@ void LLSelectMgr::deselect()  //-----------------------------------------------------------------------------  // canDuplicate()  //----------------------------------------------------------------------------- -BOOL LLSelectMgr::canDuplicate() +BOOL LLSelectMgr::canDuplicate() const  { -	return mSelectedObjects->getFirstCopyableObject() != NULL; +	return const_cast<LLSelectMgr*>(this)->mSelectedObjects->getFirstCopyableObject() != NULL; // HACK: casting away constness - MG  }  //-----------------------------------------------------------------------------  // duplicate() @@ -5744,7 +5725,7 @@ LLSelectNode* LLObjectSelection::findNode(LLViewerObject* objectp)  //-----------------------------------------------------------------------------  // isEmpty()  //----------------------------------------------------------------------------- -BOOL LLObjectSelection::isEmpty() +BOOL LLObjectSelection::isEmpty() const  {  	return (mList.size() == 0);  } @@ -6135,3 +6116,4 @@ LLViewerObject* LLObjectSelection::getFirstMoveableObject(BOOL get_parent)  	return getFirstSelectedObject(&func, get_parent);  } + diff --git a/indra/newview/llselectmgr.h b/indra/newview/llselectmgr.h index 071aa15236..32c7f7617e 100644 --- a/indra/newview/llselectmgr.h +++ b/indra/newview/llselectmgr.h @@ -272,7 +272,7 @@ public:  	void updateEffects();  	void cleanupNodes(); -	BOOL isEmpty(); +	BOOL isEmpty() const;  	S32 getOwnershipCost(S32 &cost); @@ -331,7 +331,7 @@ private:  	ESelectType mSelectType;  }; -typedef LLHandle<LLObjectSelection> LLObjectSelectionHandle; +typedef LLSafeHandle<LLObjectSelection> LLObjectSelectionHandle;  class LLSelectMgr : public LLEditMenuHandler  { @@ -360,20 +360,20 @@ public:  	static void cleanupGlobals();  	// LLEditMenuHandler interface -	virtual BOOL canUndo(); +	virtual BOOL canUndo() const;  	virtual void undo(); -	virtual BOOL canRedo(); +	virtual BOOL canRedo() const;  	virtual void redo(); -	virtual BOOL canDoDelete(); +	virtual BOOL canDoDelete() const;  	virtual void doDelete();  	virtual void deselect(); -	virtual BOOL canDeselect(); +	virtual BOOL canDeselect() const;  	virtual void duplicate(); -	virtual BOOL canDuplicate(); +	virtual BOOL canDuplicate() const;  	void clearSelections();  	void update(); diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp index 58039bf878..d64b3864b3 100644 --- a/indra/newview/llstatusbar.cpp +++ b/indra/newview/llstatusbar.cpp @@ -127,7 +127,7 @@ LLStatusBar::LLStatusBar(const std::string& name, const LLRect& rect)  	mSquareMetersCommitted(0)  {  	// status bar can possible overlay menus? -	mMouseOpaque = FALSE; +	setMouseOpaque(FALSE);  	setIsChrome(TRUE);  	// size of day of the weeks and year @@ -171,7 +171,7 @@ LLStatusBar::LLStatusBar(const std::string& name, const LLRect& rect)  	childSetActionTextbox("BalanceText", onClickBalance );  	// Adding Net Stat Graph -	S32 x = mRect.getWidth() - 2; +	S32 x = getRect().getWidth() - 2;  	S32 y = 0;  	LLRect r;  	r.set( x-SIM_STAT_WIDTH, y+MENU_BAR_HEIGHT-1, x, y+1); @@ -241,9 +241,9 @@ void LLStatusBar::draw()  {  	refresh(); -	if (mBgVisible) +	if (isBackgroundVisible())  	{ -		gl_drop_shadow(0, mRect.getHeight(), mRect.getWidth(), 0,  +		gl_drop_shadow(0, getRect().getHeight(), getRect().getWidth(), 0,   				LLUI::sColorsGroup->getColor("ColorDropShadow"),   				LLUI::sConfigGroup->getS32("DropShadowFloater") );  	} @@ -504,7 +504,7 @@ void LLStatusBar::refresh()  		mRegionDetails.mTime = mTextTime->getText();  		mRegionDetails.mBalance = mBalance; -		mRegionDetails.mAccesString = (char *)region->getSimAccessString(); +		mRegionDetails.mAccesString = region->getSimAccessString();  		mRegionDetails.mPing = region->getNetDetailsForLCD();  		if (parcel && !parcel->getName().empty())  		{ @@ -516,7 +516,7 @@ void LLStatusBar::refresh()  			// keep these around for the LCD to use  			mRegionDetails.mRegionName = region->getName(); -			mRegionDetails.mParcelName = (char *)parcel->getName().c_str(); +			mRegionDetails.mParcelName = parcel->getName();  			mRegionDetails.mX = pos_x;  			mRegionDetails.mY = pos_y;  			mRegionDetails.mZ = pos_z; @@ -526,7 +526,7 @@ void LLStatusBar::refresh()  			if (parcel->isPublic())  			{ -				snprintf(mRegionDetails.mOwner, MAX_STRING, "Public"); +				mRegionDetails.mOwner = "Public";  			}  			else  			{ @@ -538,16 +538,13 @@ void LLStatusBar::refresh()  					}  					else  					{ -						snprintf(mRegionDetails.mOwner, MAX_STRING, "Group Owned"); +						mRegionDetails.mOwner = "Group Owned";  					}  				}  				else  				{  					// Figure out the owner's name -					char owner_first[MAX_STRING];	/*Flawfinder: ignore*/ -					char owner_last[MAX_STRING];	/*Flawfinder: ignore*/ -					gCacheName->getName(parcel->getOwnerID(), owner_first, owner_last); -					snprintf(mRegionDetails.mOwner, MAX_STRING, "%s %s", owner_first, owner_last); 		/* Flawfinder: ignore */ +					gCacheName->getFullName(parcel->getOwnerID(), mRegionDetails.mOwner);  				}  			}  		} @@ -566,7 +563,7 @@ void LLStatusBar::refresh()  			mRegionDetails.mZ = pos_z;  			mRegionDetails.mArea = 0;  			mRegionDetails.mForSale = FALSE; -			snprintf(mRegionDetails.mOwner, MAX_STRING, "Unknown"); +			mRegionDetails.mOwner = "Unknown";  			mRegionDetails.mTraffic = 0.0f;  		}  	} @@ -575,7 +572,7 @@ void LLStatusBar::refresh()  		// no region  		location_name = "(Unknown)";  		// keep these around for the LCD to use -		mRegionDetails.mRegionName = LLString("Unknown"); +		mRegionDetails.mRegionName = "Unknown";  		mRegionDetails.mParcelName = "Unknown";  		mRegionDetails.mAccesString = "Unknown";  		mRegionDetails.mX = 0; @@ -583,7 +580,7 @@ void LLStatusBar::refresh()  		mRegionDetails.mZ = 0;  		mRegionDetails.mArea = 0;  		mRegionDetails.mForSale = FALSE; -		snprintf(mRegionDetails.mOwner, MAX_STRING, "Unknown"); +		mRegionDetails.mOwner = "Unknown";  		mRegionDetails.mTraffic = 0.0f;  	} @@ -640,7 +637,7 @@ void LLStatusBar::refresh()  	x += 8;  	const S32 PARCEL_RIGHT =  llmin(mTextTime->getRect().mLeft, mTextParcelName->getTextPixelWidth() + x + 5); -	r.set(x+4, mRect.getHeight() - 2, PARCEL_RIGHT, 0); +	r.set(x+4, getRect().getHeight() - 2, PARCEL_RIGHT, 0);  	mTextParcelName->setRect(r);  	// Set search bar visibility @@ -841,7 +838,7 @@ static void onClickBuyLand(void*)  void LLStatusBar::setupDate()  {  	// fill the day array with what's in the xui -	LLString day_list = getFormattedUIString("StatBarDaysOfWeek"); +	LLString day_list = getString("StatBarDaysOfWeek");  	size_t length = day_list.size();  	// quick input check @@ -865,7 +862,7 @@ void LLStatusBar::setupDate()  	}  	// fill the day array with what's in the xui	 -	LLString month_list = getFormattedUIString( "StatBarMonthsOfYear" ); +	LLString month_list = getString( "StatBarMonthsOfYear" );  	length = month_list.size();  	// quick input check diff --git a/indra/newview/llstatusbar.h b/indra/newview/llstatusbar.h index 78f744c4b5..0605246f16 100644 --- a/indra/newview/llstatusbar.h +++ b/indra/newview/llstatusbar.h @@ -51,30 +51,33 @@ class LLStatGraph;  class LLRegionDetails  {  public: -	LLRegionDetails() +	LLRegionDetails() : +		mRegionName("Unknown"), +		mParcelName("Unknown"), +		mAccesString("Unknown"), +		mX(0), +		mY(0), +		mZ(0), +		mArea (0), +		mForSale(FALSE), +		mOwner("Unknown"), +		mTraffic(0), +		mBalance(0), +		mPing(0)  	{ -		mRegionName = LLString("Unknown"); -		mParcelName = "Unknown"; -		mAccesString = "Unknown"; -		mX = 0; -		mY = 0; -		mZ = 0; -		mArea = 0; -		mForSale = FALSE; -		snprintf(mOwner, MAX_STRING, "Unknown");  	} -	LLString mRegionName; -	char	*mParcelName; -	char	*mAccesString; +	std::string mRegionName; +	std::string	mParcelName; +	std::string	mAccesString;  	S32		mX;  	S32		mY;  	S32		mZ;  	S32		mArea;  	BOOL	mForSale; -	char	mOwner[MAX_STRING]; +	std::string	mOwner;  	F32		mTraffic;  	S32		mBalance; -	LLString	mTime; +	std::string mTime;  	U32		mPing;  }; diff --git a/indra/newview/lltexturectrl.cpp b/indra/newview/lltexturectrl.cpp index c17f0007c2..7368ac9fdb 100644 --- a/indra/newview/lltexturectrl.cpp +++ b/indra/newview/lltexturectrl.cpp @@ -462,7 +462,7 @@ BOOL LLFloaterTexturePicker::postBuild()  	if (!mLabel.empty())  	{ -		std::string pick = childGetText("pick title"); +		std::string pick = getString("pick title");  		setTitle(pick + mLabel);  	} @@ -518,7 +518,7 @@ void LLFloaterTexturePicker::draw()  		}  	} -	if (gFocusMgr.childHasMouseCapture(mDragHandle)) +	if (gFocusMgr.childHasMouseCapture(getDragHandle()))  	{  		mContextConeOpacity = lerp(mContextConeOpacity, gSavedSettings.getF32("PickerContextOpacity"), LLCriticalDamp::getInterpolant(CONTEXT_FADE_TIME));  	} @@ -566,9 +566,9 @@ void LLFloaterTexturePicker::draw()  		// Border  		LLRect border( BORDER_PAD,  -				mRect.getHeight() - LLFLOATER_HEADER_SIZE - BORDER_PAD,  +				getRect().getHeight() - LLFLOATER_HEADER_SIZE - BORDER_PAD,   				((TEX_PICKER_MIN_WIDTH / 2) - TEXTURE_INVENTORY_PADDING - HPAD) - BORDER_PAD, -				BORDER_PAD + FOOTER_HEIGHT + (mRect.getHeight() - TEX_PICKER_MIN_HEIGHT)); +				BORDER_PAD + FOOTER_HEIGHT + (getRect().getHeight() - TEX_PICKER_MIN_HEIGHT));  		gl_rect_2d( border, LLColor4::black, FALSE ); @@ -908,13 +908,13 @@ LLTextureCtrl::LLTextureCtrl(  	mDirty( FALSE )  {  	mCaption = new LLTextBox( label,  -		LLRect( 0, BTN_HEIGHT_SMALL, mRect.getWidth(), 0 ), -		NULL, +		LLRect( 0, BTN_HEIGHT_SMALL, getRect().getWidth(), 0 ), +		label,  		LLFontGL::sSansSerifSmall );  	mCaption->setFollows( FOLLOWS_LEFT | FOLLOWS_RIGHT | FOLLOWS_BOTTOM );  	addChild( mCaption ); -	S32 image_top = mRect.getHeight(); +	S32 image_top = getRect().getHeight();  	S32 image_bottom = BTN_HEIGHT_SMALL;  	S32 image_middle = (image_top + image_bottom) / 2;  	S32 line_height = llround(LLFontGL::sSansSerifSmall->getLineHeight()); @@ -922,14 +922,14 @@ LLTextureCtrl::LLTextureCtrl(  	mTentativeLabel = new LLTextBox( "Multiple",   		LLRect(   			0, image_middle + line_height / 2, -			mRect.getWidth(), image_middle - line_height / 2 ), -		NULL, +			getRect().getWidth(), image_middle - line_height / 2 ), +		"Multiple",  		LLFontGL::sSansSerifSmall );  	mTentativeLabel->setHAlign( LLFontGL::HCENTER );  	mTentativeLabel->setFollowsAll();  	addChild( mTentativeLabel ); -	LLRect border_rect(0, mRect.getHeight(), mRect.getWidth(), 0); +	LLRect border_rect(0, getRect().getHeight(), getRect().getWidth(), 0);  	border_rect.mBottom += BTN_HEIGHT_SMALL;  	mBorder = new LLViewBorder("border", border_rect, LLViewBorder::BEVEL_IN);  	addChild(mBorder); @@ -1013,7 +1013,7 @@ void LLTextureCtrl::setCaption(const LLString& caption)  void LLTextureCtrl::setCanApplyImmediately(BOOL b)  {  	mCanApplyImmediately = b;  -	LLFloaterTexturePicker* floaterp = (LLFloaterTexturePicker*)LLFloater::getFloaterByHandle(mFloaterHandle); +	LLFloaterTexturePicker* floaterp = (LLFloaterTexturePicker*)mFloaterHandle.get();  	if( floaterp )  	{  		floaterp->setCanApplyImmediately(b); @@ -1031,7 +1031,7 @@ void LLTextureCtrl::setVisible( BOOL visible )  void LLTextureCtrl::setEnabled( BOOL enabled )  { -	LLFloaterTexturePicker* floaterp = (LLFloaterTexturePicker*)LLFloater::getFloaterByHandle(mFloaterHandle); +	LLFloaterTexturePicker* floaterp = (LLFloaterTexturePicker*)mFloaterHandle.get();  	if( enabled )  	{  		LLString tooltip; @@ -1061,7 +1061,7 @@ void LLTextureCtrl::setValid(BOOL valid )  	mValid = valid;  	if (!valid)  	{ -		LLFloaterTexturePicker* pickerp = (LLFloaterTexturePicker*)LLFloater::getFloaterByHandle(mFloaterHandle); +		LLFloaterTexturePicker* pickerp = (LLFloaterTexturePicker*)mFloaterHandle.get();  		if (pickerp)  		{  			pickerp->setActive(FALSE); @@ -1096,7 +1096,7 @@ void LLTextureCtrl::setLabel(const LLString& label)  void LLTextureCtrl::showPicker(BOOL take_focus)  { -	LLFloater* floaterp = LLFloater::getFloaterByHandle(mFloaterHandle); +	LLFloater* floaterp = mFloaterHandle.get();  	// Show the dialog  	if( floaterp ) @@ -1134,7 +1134,7 @@ void LLTextureCtrl::showPicker(BOOL take_focus)  void LLTextureCtrl::closeFloater()  { -	LLFloaterTexturePicker* floaterp = (LLFloaterTexturePicker*)LLFloater::getFloaterByHandle(mFloaterHandle); +	LLFloaterTexturePicker* floaterp = (LLFloaterTexturePicker*)mFloaterHandle.get();  	if( floaterp )  	{  		floaterp->setOwner(NULL); @@ -1180,7 +1180,7 @@ BOOL LLTextureCtrl::handleMouseDown(S32 x, S32 y, MASK mask)  void LLTextureCtrl::onFloaterClose()  { -	LLFloaterTexturePicker* floaterp = (LLFloaterTexturePicker*)LLFloater::getFloaterByHandle(mFloaterHandle); +	LLFloaterTexturePicker* floaterp = (LLFloaterTexturePicker*)mFloaterHandle.get();  	if (floaterp)  	{ @@ -1193,9 +1193,9 @@ void LLTextureCtrl::onFloaterClose()  void LLTextureCtrl::onFloaterCommit(ETexturePickOp op)  { -	LLFloaterTexturePicker* floaterp = (LLFloaterTexturePicker*)LLFloater::getFloaterByHandle(mFloaterHandle); +	LLFloaterTexturePicker* floaterp = (LLFloaterTexturePicker*)mFloaterHandle.get(); -	if( floaterp && mEnabled) +	if( floaterp && getEnabled())  	{  		mDirty = (op != TEXTURE_CANCEL);  		if( floaterp->isDirty() ) @@ -1227,7 +1227,7 @@ void LLTextureCtrl::setImageAssetID( const LLUUID& asset_id )  	{  		mImageItemID.setNull();  		mImageAssetID = asset_id; -		LLFloaterTexturePicker* floaterp = (LLFloaterTexturePicker*)LLFloater::getFloaterByHandle(mFloaterHandle); +		LLFloaterTexturePicker* floaterp = (LLFloaterTexturePicker*)mFloaterHandle.get();  		if( floaterp && getEnabled() )  		{  			floaterp->setImageID( asset_id ); @@ -1247,7 +1247,7 @@ BOOL LLTextureCtrl::handleDragAndDrop(S32 x, S32 y, MASK mask,  	// returns true, then the cast was valid, and we can perform  	// the third test without problems.  	LLInventoryItem* item = (LLInventoryItem*)cargo_data;  -	if (mEnabled && (cargo_type == DAD_TEXTURE) && allowDrop(item)) +	if (getEnabled() && (cargo_type == DAD_TEXTURE) && allowDrop(item))  	{  		if (drop)  		{ @@ -1290,7 +1290,7 @@ void LLTextureCtrl::draw()  		}  		// Border -		LLRect border( 0, mRect.getHeight(), mRect.getWidth(), BTN_HEIGHT_SMALL ); +		LLRect border( 0, getRect().getHeight(), getRect().getWidth(), BTN_HEIGHT_SMALL );  		gl_rect_2d( border, mBorderColor, FALSE );  		// Interior @@ -1315,7 +1315,7 @@ void LLTextureCtrl::draw()  			gl_draw_x( interior, LLColor4::black );  		} -		mTentativeLabel->setVisible( !mTexturep.isNull() && mTentative ); +		mTentativeLabel->setVisible( !mTexturep.isNull() && getTentative() );  		LLUICtrl::draw();  	} @@ -1371,7 +1371,7 @@ BOOL LLTextureCtrl::doDrop(LLInventoryItem* item)  BOOL LLTextureCtrl::handleUnicodeCharHere(llwchar uni_char, BOOL called_from_parent)  { -	if( getVisible() && mEnabled && !called_from_parent && ' ' == uni_char ) +	if( getVisible() && getEnabled() && !called_from_parent && ' ' == uni_char )  	{  		showPicker(TRUE);  		return TRUE; @@ -1450,3 +1450,4 @@ BOOL LLToolTexEyedropper::handleHover(S32 x, S32 y, MASK mask)  } + diff --git a/indra/newview/lltexturectrl.h b/indra/newview/lltexturectrl.h index cad3980394..4a279d4084 100644 --- a/indra/newview/lltexturectrl.h +++ b/indra/newview/lltexturectrl.h @@ -44,6 +44,7 @@ class LLFloaterTexturePicker;  class LLInventoryItem;  class LLTextBox;  class LLViewBorder; +class LLViewerImage;  // used for setting drag & drop callbacks.  typedef BOOL (*drag_n_drop_callback)(LLUICtrl*, LLInventoryItem*, void*); @@ -163,7 +164,7 @@ private:  	LLUUID					 mImageAssetID;  	LLUUID					 mDefaultImageAssetID;  	LLString				 mDefaultImageName; -	LLViewHandle			 mFloaterHandle; +	LLHandle<LLFloater>			 mFloaterHandle;  	LLTextBox*				 mTentativeLabel;  	LLTextBox*				 mCaption;  	LLString				 mLabel; diff --git a/indra/newview/lltextureview.cpp b/indra/newview/lltextureview.cpp index 465a40c1ef..031492e0e9 100644 --- a/indra/newview/lltextureview.cpp +++ b/indra/newview/lltextureview.cpp @@ -210,7 +210,7 @@ void LLTextureBar::draw()  				mImagep->mFetchPriority);  	} -	LLFontGL::sMonospace->renderUTF8(tex_str, 0, title_x1, mRect.getHeight(), +	LLFontGL::sMonospace->renderUTF8(tex_str, 0, title_x1, getRect().getHeight(),  									 color, LLFontGL::LEFT, LLFontGL::TOP);  	// State @@ -246,7 +246,7 @@ void LLTextureBar::draw()  		mImagep->mFetchState;  	state = llclamp(state,0,fetch_state_desc_size-1); -	LLFontGL::sMonospace->renderUTF8(fetch_state_desc[state].desc, 0, title_x2, mRect.getHeight(), +	LLFontGL::sMonospace->renderUTF8(fetch_state_desc[state].desc, 0, title_x2, getRect().getHeight(),  									 fetch_state_desc[state].color,  									 LLFontGL::LEFT, LLFontGL::TOP);  	LLGLSNoTexture gls_no_texture; @@ -328,7 +328,7 @@ void LLTextureBar::draw()  		// draw the packet data  // 		{  // 			LLString num_str = llformat("%3d/%3d", mImagep->mLastPacket+1, mImagep->mPackets); -// 			LLFontGL::sMonospace->renderUTF8(num_str, 0, bar_left + 100, mRect.getHeight(), color, +// 			LLFontGL::sMonospace->renderUTF8(num_str, 0, bar_left + 100, getRect().getHeight(), color,  // 											 LLFontGL::LEFT, LLFontGL::TOP);  // 		} @@ -336,7 +336,7 @@ void LLTextureBar::draw()  		{  			LLString num_str = llformat("%3dx%3d (%d) %7d", mImagep->getWidth(), mImagep->getHeight(),  										mImagep->getDiscardLevel(), mImagep->mTextureMemory); -			LLFontGL::sMonospace->renderUTF8(num_str, 0, title_x4, mRect.getHeight(), color, +			LLFontGL::sMonospace->renderUTF8(num_str, 0, title_x4, getRect().getHeight(), color,  											LLFontGL::LEFT, LLFontGL::TOP);  		}  	} @@ -727,7 +727,7 @@ void LLTextureView::draw()  		mGLTexMemBar = new LLGLTexMemBar("gl texmem bar", this);  		addChild(mGLTexMemBar); -		reshape(mRect.getWidth(), mRect.getHeight(), TRUE); +		reshape(getRect().getWidth(), getRect().getHeight(), TRUE);  		/*  		  count = gImageList.getNumImages(); @@ -806,3 +806,4 @@ BOOL LLTextureView::handleKey(KEY key, MASK mask, BOOL called_from_parent)  	return FALSE;  } + diff --git a/indra/newview/lltool.cpp b/indra/newview/lltool.cpp index cfc3f78fd9..48743aeb39 100644 --- a/indra/newview/lltool.cpp +++ b/indra/newview/lltool.cpp @@ -42,7 +42,6 @@  #include "lltoolfocus.h"  #include "llfocusmgr.h"  #include "llagent.h" -#include "llviewborder.h"  extern BOOL gDebugClicks; diff --git a/indra/newview/lltool.h b/indra/newview/lltool.h index 33dc4785c6..7d565f1574 100644 --- a/indra/newview/lltool.h +++ b/indra/newview/lltool.h @@ -51,7 +51,7 @@ public:  	virtual ~LLTool();  	// Hack to support LLFocusMgr -	virtual BOOL isView() { return FALSE; } +	virtual BOOL isView() const { return FALSE; }  	// Virtual functions inherited from LLMouseHandler  	virtual BOOL	handleMouseDown(S32 x, S32 y, MASK mask); diff --git a/indra/newview/lltoolbar.cpp b/indra/newview/lltoolbar.cpp index c80edd0eab..444a2d1524 100644 --- a/indra/newview/lltoolbar.cpp +++ b/indra/newview/lltoolbar.cpp @@ -389,7 +389,7 @@ void LLToolBar::updateCommunicateList()  		communicate_button->addSeparator(ADD_TOP);  		communicate_button->add(LLFloaterMute::getInstance()->getShortTitle(), LLSD("mute list"), ADD_TOP); -		std::set<LLViewHandle>::const_iterator floater_handle_it; +		std::set<LLHandle<LLFloater> >::const_iterator floater_handle_it;  		if (gIMMgr->getIMFloaterHandles().size() > 0)  		{ @@ -398,7 +398,7 @@ void LLToolBar::updateCommunicateList()  		for(floater_handle_it = gIMMgr->getIMFloaterHandles().begin(); floater_handle_it != gIMMgr->getIMFloaterHandles().end(); ++floater_handle_it)  		{ -			LLFloaterIMPanel* im_floaterp = (LLFloaterIMPanel*)LLFloater::getFloaterByHandle(*floater_handle_it); +			LLFloaterIMPanel* im_floaterp = (LLFloaterIMPanel*)floater_handle_it->get();  			if (im_floaterp)  			{  				LLString floater_title = im_floaterp->getNumUnreadMessages() > 0 ? "*" : ""; @@ -443,10 +443,10 @@ void LLToolBar::onClickCommunicate(LLUICtrl* ctrl, void* user_data)  		LLFloaterChatterBox::getInstance()->addFloater(LLFloaterChat::getInstance(), FALSE);  		LLUUID session_to_show; -		std::set<LLViewHandle>::const_iterator floater_handle_it; +		std::set<LLHandle<LLFloater> >::const_iterator floater_handle_it;  		for(floater_handle_it = gIMMgr->getIMFloaterHandles().begin(); floater_handle_it != gIMMgr->getIMFloaterHandles().end(); ++floater_handle_it)  		{ -			LLFloater* im_floaterp = LLFloater::getFloaterByHandle(*floater_handle_it); +			LLFloater* im_floaterp = floater_handle_it->get();  			if (im_floaterp)  			{  				if (im_floaterp->isFrontmost()) diff --git a/indra/newview/lltoolbrush.h b/indra/newview/lltoolbrush.h index 76a361e560..738934ebb1 100644 --- a/indra/newview/lltoolbrush.h +++ b/indra/newview/lltoolbrush.h @@ -74,11 +74,7 @@ public:  	void modifyLandInSelectionGlobal();  	virtual void	undo(); -	virtual BOOL	canUndo()	{ return TRUE; } - -	//virtual void	redo(); -	virtual BOOL	canRedo()	{ return FALSE; } - +	virtual BOOL	canUndo() const	{ return TRUE; }  protected:  	void brush( void ); diff --git a/indra/newview/lltoolcomp.cpp b/indra/newview/lltoolcomp.cpp index 182ea5602e..d8f4e55b0e 100644 --- a/indra/newview/lltoolcomp.cpp +++ b/indra/newview/lltoolcomp.cpp @@ -173,7 +173,7 @@ void LLToolCompInspect::pickCallback(S32 x, S32 y, MASK mask)  	{  		if (gSelectMgr->getSelection()->getObjectCount())  		{ -			gEditMenuHandler = gSelectMgr; +			LLEditMenuHandler::gEditMenuHandler = gSelectMgr;  		}  		gToolInspect->setCurrentTool( gToolInspect->mSelectRect );  		gToolInspect->mSelectRect->handleMouseDown( x, y, mask ); @@ -247,7 +247,7 @@ void LLToolCompTranslate::pickCallback(S32 x, S32 y, MASK mask)  	{  		if (gToolTranslate->mManip->getSelection()->getObjectCount())  		{ -			gEditMenuHandler = gSelectMgr; +			LLEditMenuHandler::gEditMenuHandler = gSelectMgr;  		}  		BOOL can_move = gToolTranslate->mManip->canAffectSelection(); @@ -372,7 +372,7 @@ void LLToolCompScale::pickCallback(S32 x, S32 y, MASK mask)  	{  		if (gToolStretch->mManip->getSelection()->getObjectCount())  		{ -			gEditMenuHandler = gSelectMgr; +			LLEditMenuHandler::gEditMenuHandler = gSelectMgr;  		}  		if(	LLManip::LL_NO_PART != gToolStretch->mManip->getHighlightedPart() )  		{ @@ -572,7 +572,7 @@ void LLToolCompRotate::pickCallback(S32 x, S32 y, MASK mask)  	{  		if (gToolRotate->mManip->getSelection()->getObjectCount())  		{ -			gEditMenuHandler = gSelectMgr; +			LLEditMenuHandler::gEditMenuHandler = gSelectMgr;  		}  		if(	LLManip::LL_NO_PART != gToolRotate->mManip->getHighlightedPart() )  		{ diff --git a/indra/newview/lltoolfocus.cpp b/indra/newview/lltoolfocus.cpp index 43c8e1a8d1..6d33a9c2bc 100644 --- a/indra/newview/lltoolfocus.cpp +++ b/indra/newview/lltoolfocus.cpp @@ -51,7 +51,6 @@  #include "llstatusbar.h"  #include "lltoolmgr.h"  #include "lltoolselect.h" -#include "llviewborder.h"  #include "llviewercamera.h"  #include "llviewerobject.h"  #include "llviewerwindow.h" diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp index 0c88442fd2..1bf08d9e22 100644 --- a/indra/newview/lltoolpie.cpp +++ b/indra/newview/lltoolpie.cpp @@ -70,7 +70,7 @@  LLToolPie *gToolPie = NULL;  LLPointer<LLViewerObject> LLToolPie::sClickActionObject; -LLHandle<LLObjectSelection> LLToolPie::sLeftClickSelection = NULL; +LLSafeHandle<LLObjectSelection> LLToolPie::sLeftClickSelection = NULL;  U8 LLToolPie::sClickAction = 0;  extern void handle_buy(void*); diff --git a/indra/newview/lltoolpie.h b/indra/newview/lltoolpie.h index ffc2fb9122..1af4b26a94 100644 --- a/indra/newview/lltoolpie.h +++ b/indra/newview/lltoolpie.h @@ -78,7 +78,7 @@ protected:  	BOOL				mMouseOutsideSlop;				// for this drag, has mouse moved outside slop region  	static LLPointer<LLViewerObject> sClickActionObject;  	static U8				sClickAction; -	static LLHandle<LLObjectSelection> sLeftClickSelection; +	static LLSafeHandle<LLObjectSelection> sLeftClickSelection;  };  extern LLToolPie *gToolPie; diff --git a/indra/newview/lltoolselect.cpp b/indra/newview/lltoolselect.cpp index 37c8b00ed2..3f4c823d40 100644 --- a/indra/newview/lltoolselect.cpp +++ b/indra/newview/lltoolselect.cpp @@ -96,7 +96,7 @@ BOOL LLToolSelect::handleDoubleClick(S32 x, S32 y, MASK mask)  }  // static -LLHandle<LLObjectSelection> LLToolSelect::handleObjectSelection(LLViewerObject *object, MASK mask, BOOL ignore_group, BOOL temp_select) +LLSafeHandle<LLObjectSelection> LLToolSelect::handleObjectSelection(LLViewerObject *object, MASK mask, BOOL ignore_group, BOOL temp_select)  {  	BOOL select_owned = gSavedSettings.getBOOL("SelectOwnedOnly");  	BOOL select_movable = gSavedSettings.getBOOL("SelectMovableOnly"); @@ -275,3 +275,4 @@ void LLToolSelect::onMouseCaptureLost()  } + diff --git a/indra/newview/lltoolselect.h b/indra/newview/lltoolselect.h index bbf3529017..cc9168f7cc 100644 --- a/indra/newview/lltoolselect.h +++ b/indra/newview/lltoolselect.h @@ -49,7 +49,7 @@ public:  	virtual void		stopEditing(); -	static LLHandle<LLObjectSelection>	handleObjectSelection(LLViewerObject *object, MASK mask, BOOL ignore_group, BOOL temp_select); +	static LLSafeHandle<LLObjectSelection>	handleObjectSelection(LLViewerObject *object, MASK mask, BOOL ignore_group, BOOL temp_select);  	virtual void		onMouseCaptureLost();  	virtual void		handleDeselect(); diff --git a/indra/newview/lltoolselectland.h b/indra/newview/lltoolselectland.h index 8abcdc33b9..f847967ac8 100644 --- a/indra/newview/lltoolselectland.h +++ b/indra/newview/lltoolselectland.h @@ -75,7 +75,7 @@ protected:  	LLVector3d		mEastNorthTop;			// global coords, from drag  	BOOL			mLastShowParcelOwners;	// store last Show Parcel Owners setting -	LLHandle<LLParcelSelection> mSelection;		// hold on to a parcel selection +	LLSafeHandle<LLParcelSelection> mSelection;		// hold on to a parcel selection  };  extern LLToolSelectLand *gToolParcel; diff --git a/indra/newview/lltoolview.cpp b/indra/newview/lltoolview.cpp index b3f0dc4883..93729a5b91 100644 --- a/indra/newview/lltoolview.cpp +++ b/indra/newview/lltoolview.cpp @@ -130,7 +130,7 @@ LLRect LLToolView::getButtonRect(S32 button_index)  	const S32 HORIZ_SPACING = TOOL_SIZE + 5;  	const S32 VERT_SPACING = TOOL_SIZE + 14; -	S32 tools_per_row = mRect.getWidth() / HORIZ_SPACING; +	S32 tools_per_row = getRect().getWidth() / HORIZ_SPACING;  	S32 row = button_index / tools_per_row;  	S32 column = button_index % tools_per_row;  @@ -196,3 +196,4 @@ void LLToolView::onClickToolButton(void* userdata)  } + diff --git a/indra/newview/lluploaddialog.cpp b/indra/newview/lluploaddialog.cpp index a63f546761..b9f2ef2ddf 100644 --- a/indra/newview/lluploaddialog.cpp +++ b/indra/newview/lluploaddialog.cpp @@ -78,7 +78,7 @@ LLUploadDialog::LLUploadDialog( const std::string& msg)  	LLRect msg_rect;  	for (int line_num=0; line_num<16; ++line_num)  	{ -		mLabelBox[line_num] = new LLTextBox( "Filename", msg_rect, "", font ); +		mLabelBox[line_num] = new LLTextBox( "Filename", msg_rect, "Filename", font );  		addChild(mLabelBox[line_num]);  	} @@ -131,8 +131,8 @@ void LLUploadDialog::setMessage( const std::string& msg)  	reshape( dialog_width, dialog_height, FALSE );  	// Message -	S32 msg_x = (mRect.getWidth() - max_msg_width) / 2; -	S32 msg_y = mRect.getHeight() - VPAD - line_height; +	S32 msg_x = (getRect().getWidth() - max_msg_width) / 2; +	S32 msg_y = getRect().getHeight() - VPAD - line_height;  	int line_num;  	for (line_num=0; line_num<16; ++line_num)  	{ @@ -152,7 +152,7 @@ void LLUploadDialog::setMessage( const std::string& msg)  	}  	msg_lines.deleteAllData(); -	centerDialog(); +	centerWithin(gViewerWindow->getRootView()->getRect());  }  LLUploadDialog::~LLUploadDialog() @@ -165,13 +165,5 @@ LLUploadDialog::~LLUploadDialog()  	LLUploadDialog::sDialog = NULL;  } -void LLUploadDialog::centerDialog() -{ -	LLRect window_rect = gViewerWindow->getRootView()->getRect(); - -	S32 dialog_left = window_rect.mLeft + (window_rect.getWidth() - mRect.getWidth()) / 2; -	S32 dialog_bottom = window_rect.mBottom + (window_rect.getHeight() - mRect.getHeight()) / 2; -	translate( dialog_left - mRect.mLeft, dialog_bottom - mRect.mBottom ); -} diff --git a/indra/newview/lluploaddialog.h b/indra/newview/lluploaddialog.h index b975fd595c..06bc0f45e2 100644 --- a/indra/newview/lluploaddialog.h +++ b/indra/newview/lluploaddialog.h @@ -50,8 +50,6 @@ private:  	LLUploadDialog( const std::string& msg);  	virtual ~LLUploadDialog();	// No you can't kill it.  It can only kill itself. -	void			centerDialog(); -  	LLTextBox* mLabelBox[16];  private: diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp index 7180683a86..9c81f89e99 100644 --- a/indra/newview/llviewercontrol.cpp +++ b/indra/newview/llviewercontrol.cpp @@ -114,13 +114,13 @@ BOOL LLFloaterSettingsDebug::postBuild()  	childSetCommitCallback("color_swatch", onCommitSettings);  	childSetUserData("color_swatch", this);  	childSetAction("default_btn", onClickDefault, this); -	mComment = (LLTextEditor*)getChildByName("comment_text"); +	mComment = getChild<LLTextEditor>("comment_text");  	return TRUE;  }  void LLFloaterSettingsDebug::draw()  { -	LLComboBox* settings_combo = (LLComboBox*)getChildByName("settings_combo"); +	LLComboBox* settings_combo = getChild<LLComboBox>("settings_combo");  	LLControlBase* controlp = (LLControlBase*)settings_combo->getCurrentUserdata();  	updateControl(controlp); @@ -155,7 +155,7 @@ void LLFloaterSettingsDebug::onCommitSettings(LLUICtrl* ctrl, void* user_data)  {  	LLFloaterSettingsDebug* floaterp = (LLFloaterSettingsDebug*)user_data; -	LLComboBox* settings_combo = (LLComboBox*)floaterp->getChildByName("settings_combo"); +	LLComboBox* settings_combo = floaterp->getChild<LLComboBox>("settings_combo");  	LLControlBase* controlp = (LLControlBase*)settings_combo->getCurrentUserdata();  	LLVector3 vector; @@ -229,7 +229,7 @@ void LLFloaterSettingsDebug::onCommitSettings(LLUICtrl* ctrl, void* user_data)  void LLFloaterSettingsDebug::onClickDefault(void* user_data)  {  	LLFloaterSettingsDebug* floaterp = (LLFloaterSettingsDebug*)user_data; -	LLComboBox* settings_combo = (LLComboBox*)floaterp->getChildByName("settings_combo"); +	LLComboBox* settings_combo = floaterp->getChild<LLComboBox>("settings_combo");  	LLControlBase* controlp = (LLControlBase*)settings_combo->getCurrentUserdata();  	if (controlp) @@ -246,7 +246,7 @@ void LLFloaterSettingsDebug::updateControl(LLControlBase* controlp)  	LLSpinCtrl* spinner2 = LLUICtrlFactory::getSpinnerByName(this, "val_spinner_2");  	LLSpinCtrl* spinner3 = LLUICtrlFactory::getSpinnerByName(this, "val_spinner_3");  	LLSpinCtrl* spinner4 = LLUICtrlFactory::getSpinnerByName(this, "val_spinner_4"); -	LLColorSwatchCtrl* color_swatch = LLUICtrlFactory::getColorSwatchByName(this, "color_swatch"); +	LLColorSwatchCtrl* color_swatch = getChild<LLColorSwatchCtrl>("color_swatch");  	if (!spinner1 || !spinner2 || !spinner3 || !spinner4 || !color_swatch)  	{ diff --git a/indra/newview/llviewerkeyboard.cpp b/indra/newview/llviewerkeyboard.cpp index b5d30df2f4..a8f88ec036 100644 --- a/indra/newview/llviewerkeyboard.cpp +++ b/indra/newview/llviewerkeyboard.cpp @@ -473,11 +473,8 @@ void stop_moving( EKeystate s )  void start_chat( EKeystate s )  { -	if (!gChatBar->inputEditorHasFocus()) -	{ -		// start chat -		gChatBar->startChat(NULL); -	} +	// start chat +	gChatBar->startChat(NULL);  }  void bind_keyboard_functions() diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index 7a86b1d67c..b8ff934f8d 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -115,9 +115,12 @@ void LLViewerMediaImpl::play(const std::string& media_url,  	mMediaSource = mgr->createSourceFromMimeType(scheme, mMimeType );  	if ( !mMediaSource )  	{ -		llwarns << "media source create failed " << media_url -			<< " type " << mMimeType -			<< llendl; +		if (mMimeType != "none/none") +		{ +			llwarns << "media source create failed " << media_url +					<< " type " << mMimeType +					<< llendl; +		}  		return;  	} diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 9c94306fb7..fc9b765525 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -245,8 +245,8 @@ LLPieMenu	*gPieLand	= NULL;  // local constants  const LLString LANDMARK_MENU_NAME("Landmarks"); -const LLString CLIENT_MENU_NAME("Client"); -const LLString SERVER_MENU_NAME("Server"); +const LLString CLIENT_MENU_NAME("Advanced"); +const LLString SERVER_MENU_NAME("Admin");  const LLString SAVE_INTO_INVENTORY("Save Object Back to My Inventory");  const LLString SAVE_INTO_TASK_INVENTORY("Save Object Back to Object Contents"); @@ -424,7 +424,6 @@ BOOL enable_dehinge(void*);  void handle_force_delete(void*);  void print_object_info(void*);  void print_agent_nvpairs(void*); -void show_debug_menus();  void toggle_debug_menus(void*);  void toggle_map( void* user_data );  void export_info_callback(LLAssetInfo *info, void **user_data, S32 result); @@ -613,13 +612,13 @@ void set_underclothes_menu_options()  {  	if (gMenuHolder && gAgent.isTeen())  	{ -		gMenuHolder->getChildByName("Self Underpants", TRUE)->setVisible(FALSE); -		gMenuHolder->getChildByName("Self Undershirt", TRUE)->setVisible(FALSE); +		gMenuHolder->getChild<LLView>("Self Underpants", TRUE)->setVisible(FALSE); +		gMenuHolder->getChild<LLView>("Self Undershirt", TRUE)->setVisible(FALSE);  	}  	if (gMenuBarView && gAgent.isTeen())  	{ -		gMenuBarView->getChildByName("Menu Underpants", TRUE)->setVisible(FALSE); -		gMenuBarView->getChildByName("Menu Undershirt", TRUE)->setVisible(FALSE); +		gMenuBarView->getChild<LLView>("Menu Underpants", TRUE)->setVisible(FALSE); +		gMenuBarView->getChild<LLView>("Menu Undershirt", TRUE)->setVisible(FALSE);  	}  } @@ -656,16 +655,16 @@ void init_menus()  	gPieSelf = gUICtrlFactory->buildPieMenu("menu_pie_self.xml", gMenuHolder);  	// TomY TODO: what shall we do about these? -	gDetachScreenPieMenu = (LLPieMenu*)gMenuHolder->getChildByName("Object Detach HUD", true); -	gDetachPieMenu = (LLPieMenu*)gMenuHolder->getChildByName("Object Detach", true); +	gDetachScreenPieMenu = gMenuHolder->getChild<LLPieMenu>("Object Detach HUD", true); +	gDetachPieMenu = gMenuHolder->getChild<LLPieMenu>("Object Detach", true);  	gPieAvatar = gUICtrlFactory->buildPieMenu("menu_pie_avatar.xml", gMenuHolder);  	gPieObject = gUICtrlFactory->buildPieMenu("menu_pie_object.xml", gMenuHolder); -	gAttachScreenPieMenu = (LLPieMenu*)gMenuHolder->getChildByName("Object Attach HUD", true); -	gAttachPieMenu = (LLPieMenu*)gMenuHolder->getChildByName("Object Attach", true); -	gPieRate = (LLPieMenu*)gMenuHolder->getChildByName("Rate Menu", true); +	gAttachScreenPieMenu = gMenuHolder->getChild<LLPieMenu>("Object Attach HUD"); +	gAttachPieMenu = gMenuHolder->getChild<LLPieMenu>("Object Attach"); +	gPieRate = gMenuHolder->getChild<LLPieMenu>("Rate Menu");  	gPieAttachment = gUICtrlFactory->buildPieMenu("menu_pie_attachment.xml", gMenuHolder); @@ -715,8 +714,8 @@ void init_menus()  	gMenuHolder->childSetLabelArg("Upload Animation", "[COST]", upload_cost);  	gMenuHolder->childSetLabelArg("Bulk Upload", "[COST]", upload_cost); -	gAFKMenu = (LLMenuItemCallGL*)gMenuBarView->getChildByName("Set Away", TRUE); -	gBusyMenu = (LLMenuItemCallGL*)gMenuBarView->getChildByName("Set Busy", TRUE); +	gAFKMenu = gMenuBarView->getChild<LLMenuItemCallGL>("Set Away", TRUE); +	gBusyMenu = gMenuBarView->getChild<LLMenuItemCallGL>("Set Busy", TRUE);  	gAttachSubMenu = gMenuBarView->getChildMenuByName("Attach Object", TRUE);  	gDetachSubMenu = gMenuBarView->getChildMenuByName("Detach Object", TRUE); @@ -1101,6 +1100,13 @@ void init_client_menu(LLMenuGL* menu)  	menu->append(new LLMenuItemCallGL("Debug Settings", LLFloaterSettingsDebug::show, NULL, NULL));  	menu->append(new LLMenuItemCheckGL("View Admin Options", &handle_admin_override_toggle, NULL, &check_admin_override, NULL, 'V', MASK_CONTROL | MASK_ALT)); + +	menu->append(new LLMenuItemCallGL("Request Admin Status",  +		&handle_god_mode, NULL, NULL, 'G', MASK_ALT | MASK_CONTROL)); + +	menu->append(new LLMenuItemCallGL("Leave Admin Status",  +		&handle_leave_god_mode, NULL, NULL, 'G', MASK_ALT | MASK_SHIFT | MASK_CONTROL)); +  	menu->createJumpKeys();  } @@ -1586,19 +1592,11 @@ void init_server_menu(LLMenuGL* menu)  		&LLPanelRegionTools::onSaveState, &enable_god_customer_service, NULL));  //	menu->append(new LLMenuItemCallGL("Force Join Group", handle_force_join_group)); - - - -	menu->appendSeparator(); +// +//	menu->appendSeparator();  //  //	menu->append(new LLMenuItemCallGL( "OverlayTitle",  //		&handle_show_overlay_title, &enable_god_customer_service, NULL)); - -	menu->append(new LLMenuItemCallGL("Request Admin Status",  -		&handle_god_mode, NULL, NULL, 'G', MASK_ALT | MASK_CONTROL)); - -	menu->append(new LLMenuItemCallGL("Leave Admin Status",  -		&handle_leave_god_mode, NULL, NULL, 'G', MASK_ALT | MASK_SHIFT | MASK_CONTROL));  	menu->createJumpKeys();  } @@ -2627,12 +2625,10 @@ BOOL check_admin_override(void*)  void handle_admin_override_toggle(void*)  { -	if(!gAgent.getAdminOverride()) -	{ -		gAgent.setAdminOverride(TRUE); -		show_debug_menus(); -	} -	else gAgent.setAdminOverride(FALSE); +	gAgent.setAdminOverride(!gAgent.getAdminOverride()); + +	// The above may have affected which debug menus are visible +	show_debug_menus();  }  void handle_god_mode(void*) @@ -2649,7 +2645,6 @@ void set_god_level(U8 god_level)  {  	U8 old_god_level = gAgent.getGodLevel();  	gAgent.setGodLevel( god_level ); -	show_debug_menus();  	gIMMgr->refresh();  	gParcelMgr->notifyObservers(); @@ -2681,6 +2676,9 @@ void set_god_level(U8 god_level)  		LLNotifyBox::showXml("LeavingGodMode", args);  	} + +	// changing god-level can affect which menus we see +	show_debug_menus();  }  #ifdef TOGGLE_HACKED_GODLIKE_VIEWER @@ -3351,9 +3349,9 @@ class LLEditDuplicate : public view_listener_t  {  	bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)  	{ -		if(gEditMenuHandler) +		if(LLEditMenuHandler::gEditMenuHandler)  		{ -			gEditMenuHandler->duplicate(); +			LLEditMenuHandler::gEditMenuHandler->duplicate();  		}  		return true;  	} @@ -3363,7 +3361,7 @@ class LLEditEnableDuplicate : public view_listener_t  {  	bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)  	{ -		bool new_value = gEditMenuHandler && gEditMenuHandler->canDuplicate(); +		bool new_value = LLEditMenuHandler::gEditMenuHandler && LLEditMenuHandler::gEditMenuHandler->canDuplicate();  		gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);  		return true;  	} @@ -4445,7 +4443,7 @@ class LLEditEnableCut : public view_listener_t  {  	bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)  	{ -		bool new_value = gEditMenuHandler && gEditMenuHandler->canCut(); +		bool new_value = LLEditMenuHandler::gEditMenuHandler && LLEditMenuHandler::gEditMenuHandler->canCut();  		gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);  		return true;  	} @@ -4455,9 +4453,9 @@ class LLEditCut : public view_listener_t  {  	bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)  	{ -		if( gEditMenuHandler ) +		if( LLEditMenuHandler::gEditMenuHandler )  		{ -			gEditMenuHandler->cut(); +			LLEditMenuHandler::gEditMenuHandler->cut();  		}  		return true;  	} @@ -4467,7 +4465,7 @@ class LLEditEnableCopy : public view_listener_t  {  	bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)  	{ -		bool new_value = gEditMenuHandler && gEditMenuHandler->canCopy(); +		bool new_value = LLEditMenuHandler::gEditMenuHandler && LLEditMenuHandler::gEditMenuHandler->canCopy();  		gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);  		return true;  	} @@ -4477,9 +4475,9 @@ class LLEditCopy : public view_listener_t  {  	bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)  	{ -		if( gEditMenuHandler ) +		if( LLEditMenuHandler::gEditMenuHandler )  		{ -			gEditMenuHandler->copy(); +			LLEditMenuHandler::gEditMenuHandler->copy();  		}  		return true;  	} @@ -4489,7 +4487,7 @@ class LLEditEnablePaste : public view_listener_t  {  	bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)  	{ -		bool new_value = gEditMenuHandler && gEditMenuHandler->canPaste(); +		bool new_value = LLEditMenuHandler::gEditMenuHandler && LLEditMenuHandler::gEditMenuHandler->canPaste();  		gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);  		return true;  	} @@ -4499,9 +4497,9 @@ class LLEditPaste : public view_listener_t  {  	bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)  	{ -		if( gEditMenuHandler ) +		if( LLEditMenuHandler::gEditMenuHandler )  		{ -			gEditMenuHandler->paste(); +			LLEditMenuHandler::gEditMenuHandler->paste();  		}  		return true;  	} @@ -4511,7 +4509,7 @@ class LLEditEnableDelete : public view_listener_t  {  	bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)  	{ -		bool new_value = gEditMenuHandler && gEditMenuHandler->canDoDelete(); +		bool new_value = LLEditMenuHandler::gEditMenuHandler && LLEditMenuHandler::gEditMenuHandler->canDoDelete();  		gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);  		return true;  	} @@ -4523,9 +4521,9 @@ class LLEditDelete : public view_listener_t  	{  		// If a text field can do a deletion, it gets precedence over deleting  		// an object in the world. -		if( gEditMenuHandler && gEditMenuHandler->canDoDelete()) +		if( LLEditMenuHandler::gEditMenuHandler && LLEditMenuHandler::gEditMenuHandler->canDoDelete())  		{ -			gEditMenuHandler->doDelete(); +			LLEditMenuHandler::gEditMenuHandler->doDelete();  		}  		// and close any pie/context menus when done @@ -4605,7 +4603,7 @@ class LLEditEnableDeselect : public view_listener_t  {  	bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)  	{ -		bool new_value = gEditMenuHandler && gEditMenuHandler->canDeselect(); +		bool new_value = LLEditMenuHandler::gEditMenuHandler && LLEditMenuHandler::gEditMenuHandler->canDeselect();  		gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);  		return true;  	} @@ -4615,9 +4613,9 @@ class LLEditDeselect : public view_listener_t  {  	bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)  	{ -		if( gEditMenuHandler ) +		if( LLEditMenuHandler::gEditMenuHandler )  		{ -			gEditMenuHandler->deselect(); +			LLEditMenuHandler::gEditMenuHandler->deselect();  		}  		return true;  	} @@ -4627,7 +4625,7 @@ class LLEditEnableSelectAll : public view_listener_t  {  	bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)  	{ -		bool new_value = gEditMenuHandler && gEditMenuHandler->canSelectAll(); +		bool new_value = LLEditMenuHandler::gEditMenuHandler && LLEditMenuHandler::gEditMenuHandler->canSelectAll();  		gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);  		return true;  	} @@ -4638,9 +4636,9 @@ class LLEditSelectAll : public view_listener_t  {  	bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)  	{ -		if( gEditMenuHandler ) +		if( LLEditMenuHandler::gEditMenuHandler )  		{ -			gEditMenuHandler->selectAll(); +			LLEditMenuHandler::gEditMenuHandler->selectAll();  		}  		return true;  	} @@ -4651,7 +4649,7 @@ class LLEditEnableUndo : public view_listener_t  {  	bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)  	{ -		bool new_value = gEditMenuHandler && gEditMenuHandler->canUndo(); +		bool new_value = LLEditMenuHandler::gEditMenuHandler && LLEditMenuHandler::gEditMenuHandler->canUndo();  		gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);  		return true;  	} @@ -4661,9 +4659,9 @@ class LLEditUndo : public view_listener_t  {  	bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)  	{ -		if( gEditMenuHandler && gEditMenuHandler->canUndo() ) +		if( LLEditMenuHandler::gEditMenuHandler && LLEditMenuHandler::gEditMenuHandler->canUndo() )  		{ -			gEditMenuHandler->undo(); +			LLEditMenuHandler::gEditMenuHandler->undo();  		}  		return true;  	} @@ -4673,7 +4671,7 @@ class LLEditEnableRedo : public view_listener_t  {  	bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)  	{ -		bool new_value = gEditMenuHandler && gEditMenuHandler->canRedo(); +		bool new_value = LLEditMenuHandler::gEditMenuHandler && LLEditMenuHandler::gEditMenuHandler->canRedo();  		gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);  		return true;  	} @@ -4683,9 +4681,9 @@ class LLEditRedo : public view_listener_t  {  	bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)  	{ -		if( gEditMenuHandler && gEditMenuHandler->canRedo() ) +		if( LLEditMenuHandler::gEditMenuHandler && LLEditMenuHandler::gEditMenuHandler->canRedo() )  		{ -			gEditMenuHandler->redo(); +			LLEditMenuHandler::gEditMenuHandler->redo();  		}  		return true;  	} @@ -4731,8 +4729,12 @@ void show_debug_menus()  		gMenuBarView->setItemVisible(CLIENT_MENU_NAME, debug);  		gMenuBarView->setItemEnabled(CLIENT_MENU_NAME, debug); -		gMenuBarView->setItemVisible(SERVER_MENU_NAME, debug); -		gMenuBarView->setItemEnabled(SERVER_MENU_NAME, debug); + +		// Server ('Admin') menu hidden when not in godmode. +		const bool show_server_menu = debug && (gAgent.getGodLevel() > GOD_NOT); +		gMenuBarView->setItemVisible(SERVER_MENU_NAME, show_server_menu); +		gMenuBarView->setItemEnabled(SERVER_MENU_NAME, show_server_menu); +  		//gMenuBarView->setItemVisible(LLString("DebugOptions"),	visible);  		//gMenuBarView->setItemVisible(LLString(AVI_TOOLS),	visible);  	}; @@ -5366,19 +5368,7 @@ class LLShowFloater : public view_listener_t  		}  		else if (floater_name == "help f1")  		{ -			gViewerHtmlHelp.show( gSavedSettings.getString("HelpHomeURL") ); -		} -		else if (floater_name == "help in-world") -		{ -			const bool open_app_slurls = true; -			LLFloaterHtml::getInstance()->show(  -				"in-world_help", open_app_slurls ); -		} -		else if (floater_name == "help additional") -		{ -			const bool open_app_slurls = true; -			LLFloaterHtml::getInstance()->show(  -				"additional_help", open_app_slurls ); +			gViewerHtmlHelp.show();  		}  		else if (floater_name == "complaint reporter")  		{ @@ -5436,7 +5426,7 @@ class LLFloaterVisible : public view_listener_t  		}  		else if (floater_name == "chat history")  		{ -			new_value = LLFloaterChat::visible(NULL); +			new_value = LLFloaterChat::instanceVisible();  		}  		else if (floater_name == "im")  		{ @@ -7112,12 +7102,12 @@ BOOL LLViewerMenuHolderGL::hideMenus()  	return handled;  } -void LLViewerMenuHolderGL::setParcelSelection(LLHandle<LLParcelSelection> selection)  +void LLViewerMenuHolderGL::setParcelSelection(LLSafeHandle<LLParcelSelection> selection)   {   	mParcelSelection = selection;   } -void LLViewerMenuHolderGL::setObjectSelection(LLHandle<LLObjectSelection> selection)  +void LLViewerMenuHolderGL::setObjectSelection(LLSafeHandle<LLObjectSelection> selection)   {   	mObjectSelection = selection;   } @@ -7125,7 +7115,7 @@ void LLViewerMenuHolderGL::setObjectSelection(LLHandle<LLObjectSelection> select  const LLRect LLViewerMenuHolderGL::getMenuRect() const  { -	return LLRect(0, mRect.getHeight() - MENU_BAR_HEIGHT, mRect.getWidth(), STATUS_BAR_HEIGHT); +	return LLRect(0, getRect().getHeight() - MENU_BAR_HEIGHT, getRect().getWidth(), STATUS_BAR_HEIGHT);  }  void handle_save_to_xml(void*) @@ -7168,8 +7158,9 @@ void handle_load_from_xml(void*)  void handle_slurl_test(void*)  { -	LLFloaterHtml::getInstance()->show( -		"http://secondlife.com/app/search/slurls.html", "SLURL Test", true); +	bool open_app_slurls = true; +	bool open_links_externally = false; +	LLFloaterHtml::getInstance()->show("http://secondlife.com/app/search/slurls.html", "SLURL Test", open_app_slurls, open_links_externally);  }  void handle_rebake_textures(void*) diff --git a/indra/newview/llviewermenu.h b/indra/newview/llviewermenu.h index 003e3efe42..21b2554ceb 100644 --- a/indra/newview/llviewermenu.h +++ b/indra/newview/llviewermenu.h @@ -126,14 +126,14 @@ public:  	virtual BOOL hideMenus(); -	void setParcelSelection(LLHandle<LLParcelSelection> selection); -	void setObjectSelection(LLHandle<LLObjectSelection> selection); +	void setParcelSelection(LLSafeHandle<LLParcelSelection> selection); +	void setObjectSelection(LLSafeHandle<LLObjectSelection> selection);  	virtual const LLRect getMenuRect() const;  protected: -	LLHandle<LLParcelSelection> mParcelSelection; -	LLHandle<LLObjectSelection> mObjectSelection; +	LLSafeHandle<LLParcelSelection> mParcelSelection; +	LLSafeHandle<LLObjectSelection> mObjectSelection;  };  extern const LLString SAVE_INTO_INVENTORY; diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 5e3ffb5e04..e9839d64dc 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -919,37 +919,25 @@ void inventory_offer_mute_callback(const LLUUID& blocked_id,  		gFloaterMute->selectMute(blocked_id);  	} -	// purge the offer queue of any previously queued inventory offers from the same source. -	LLView::child_list_t notification_queue(*(gNotifyBoxView->getChildList())); -	for(LLView::child_list_iter_t iter = notification_queue.begin(); -		iter != notification_queue.end(); -		iter++) -	{ -		LLNotifyBox* notification = (LLNotifyBox*)*iter; -		// scan for other inventory offers (i.e. ignore other types of notifications). -		// we can tell by looking for the associated callback they were created with. -		if(notification->getNotifyCallback() == inventory_offer_callback) -		{ -			// found one. -			// safe to downcast user data because we know it's associated with offer callback. -			LLOfferInfo* offer_data = (LLOfferInfo*)notification->getUserData(); -			if(offer_data == user_data) -			{ -				continue; // don't remove the msg triggering us. it will be dequeued normally. -			} -			if(offer_data->mFromID == blocked_id)  -			{ -				gNotifyBoxView->removeChild(notification); -			} +	// purge the message queue of any previously queued inventory offers from the same source. +	class OfferMatcher : public LLNotifyBoxView::Matcher +	{ +	public: +		OfferMatcher(const LLUUID& to_block) : blocked_id(to_block) {} +		BOOL matches(LLNotifyBox::notify_callback_t callback, void* cb_data) const +		{ +			return callback == inventory_offer_callback && ((LLOfferInfo*)cb_data)->mFromID == blocked_id;  		} -	} +	private: +		const LLUUID& blocked_id; +	}; +	gNotifyBoxView->purgeMessagesMatching(OfferMatcher(blocked_id));  }  void inventory_offer_callback(S32 button, void* user_data)   {  	LLChat chat;  	LLString log_message; -  	LLOfferInfo* info = (LLOfferInfo*)user_data;  	if(!info) return; @@ -997,7 +985,7 @@ void inventory_offer_callback(S32 button, void* user_data)  	{  		if (info->mFromGroup)  		{ -			char group_name[MAX_STRING];		/* Flawfinder: ignore */ +			std::string group_name;  			if (gCacheName->getGroupName(info->mFromID, group_name))  			{  				from_string = LLString("An object named '") + info->mFromName + "' owned by the group '" + group_name + "'"; @@ -1011,8 +999,7 @@ void inventory_offer_callback(S32 button, void* user_data)  		}  		else  		{ -			char first_name[MAX_STRING];		/* Flawfinder: ignore */ -			char last_name[MAX_STRING];		/* Flawfinder: ignore */ +			std::string first_name, last_name;  			if (gCacheName->getName(info->mFromID, first_name, last_name))  			{  				from_string = LLString("An object named '") + info->mFromName + "' owned by " + first_name + " " + last_name; @@ -1213,19 +1200,19 @@ void inventory_offer_handler(LLOfferInfo* info, BOOL from_task)  	// Name cache callbacks don't store userdata, so can't save  	// off the LLOfferInfo.  Argh.  JC  	BOOL name_found = FALSE; -	char first_name[MAX_STRING];		/* Flawfinder: ignore */ -	char last_name[MAX_STRING];		/* Flawfinder: ignore */  	if (info->mFromGroup)  	{ -		if (gCacheName->getGroupName(info->mFromID, first_name)) +		std::string group_name; +		if (gCacheName->getGroupName(info->mFromID, group_name))  		{ -			args["[FIRST]"] = first_name; +			args["[FIRST]"] = group_name;  			args["[LAST]"] = "";  			name_found = TRUE;  		}  	}  	else  	{ +		std::string first_name, last_name;  		if (gCacheName->getName(info->mFromID, first_name, last_name))  		{  			args["[FIRST]"] = first_name; @@ -4413,9 +4400,23 @@ void script_question_cb(S32 option, void* user_data)  		notify_cautioned_script_question(cbdata, orig, allowed);  	} -	if ( option == 2 ) +	if ( option == 2 ) // mute  	{  		gMuteListp->add(LLMute(cbdata->mItemID, cbdata->mObjectName, LLMute::OBJECT)); + +		// purge the message queue of any previously queued requests from the same source. DEV-4879 +		class OfferMatcher : public LLNotifyBoxView::Matcher +		{ +		public: +			OfferMatcher(const LLUUID& to_block) : blocked_id(to_block) {} +			BOOL matches(LLNotifyBox::notify_callback_t callback, void* cb_data) const +			{ +				return callback == script_question_cb && ((LLScriptQuestionCBData*)cb_data)->mItemID == blocked_id; +			} +		private: +			const LLUUID& blocked_id; +		}; +		gNotifyBoxView->purgeMessagesMatching(OfferMatcher(cbdata->mItemID));  	}  	delete cbdata;  } diff --git a/indra/newview/llviewerparcelmedia.cpp b/indra/newview/llviewerparcelmedia.cpp index 33c8ed919c..4c9a0aab95 100644 --- a/indra/newview/llviewerparcelmedia.cpp +++ b/indra/newview/llviewerparcelmedia.cpp @@ -160,7 +160,7 @@ void LLViewerParcelMedia::update(LLParcel* parcel)  // static  void LLViewerParcelMedia::play(LLParcel* parcel)  { -	llinfos << "play" << llendl; +	lldebugs << "LLViewerParcelMedia::play" << llendl;  	if (!parcel) return; diff --git a/indra/newview/llviewerparcelmgr.cpp b/indra/newview/llviewerparcelmgr.cpp index b5c2e81ab7..290650e251 100644 --- a/indra/newview/llviewerparcelmgr.cpp +++ b/indra/newview/llviewerparcelmgr.cpp @@ -590,13 +590,13 @@ void LLViewerParcelMgr::deselectLand()  		mSelectedDwell = 0.f; -		notifyObservers(); -  		// invalidate parcel selection so that existing users of this selection can clean up  		mCurrentParcelSelection->setParcel(NULL);  		mFloatingParcelSelection->setParcel(NULL);  		// create new parcel selection  		mCurrentParcelSelection = new LLParcelSelection(mCurrentParcel); + +		notifyObservers(); // Notify observers *after* changing the parcel selection  	}  } @@ -1968,17 +1968,14 @@ void LLViewerParcelMgr::sendParcelAccessListUpdate(U32 which)  void LLViewerParcelMgr::deedLandToGroup()  { -	char group_name[MAX_STRING];		/* Flawfinder: ignore */ +	std::string group_name;  	gCacheName->getGroupName(mCurrentParcel->getGroupID(), group_name);  	LLString::format_map_t args;  	args["[AREA]"] = llformat("%d", mCurrentParcel->getArea());  	args["[GROUP_NAME]"] = group_name;  	if(mCurrentParcel->getContributeWithDeed())  	{ -		char first_name[DB_FIRST_NAME_BUF_SIZE];		/* Flawfinder: ignore */ -		first_name[0] = '\0'; -		char last_name[DB_FIRST_NAME_BUF_SIZE];		/* Flawfinder: ignore */ -		last_name[0] = '\0';		 +		std::string first_name, last_name;  		gCacheName->getName(mCurrentParcel->getOwnerID(), first_name, last_name);  		args["[FIRST_NAME]"] = first_name;  		args["[LAST_NAME]"] = last_name; diff --git a/indra/newview/llviewerparcelmgr.h b/indra/newview/llviewerparcelmgr.h index efea18158c..f86ffe309f 100644 --- a/indra/newview/llviewerparcelmgr.h +++ b/indra/newview/llviewerparcelmgr.h @@ -110,7 +110,7 @@ public:  	void selectCollisionParcel();  	// Select the parcel at a specific point -	LLHandle<LLParcelSelection> selectParcelAt(const LLVector3d& pos_global); +	LLSafeHandle<LLParcelSelection> selectParcelAt(const LLVector3d& pos_global);  	// Take the current rectangle select, and select the parcel contained  	// within it. diff --git a/indra/newview/llviewertexteditor.cpp b/indra/newview/llviewertexteditor.cpp index 871fc9702e..2721a626c7 100644 --- a/indra/newview/llviewertexteditor.cpp +++ b/indra/newview/llviewertexteditor.cpp @@ -1,6 +1,6 @@  /**    * @file llviewertexteditor.cpp - * @brief Text editor widget to let users enter a a multi-line ASCII document. + * @brief Text editor widget to let users enter a multi-line document.   *   * $LicenseInfo:firstyear=2001&license=viewergpl$   *  @@ -145,8 +145,8 @@ public:  	// return true if there are no embedded items.  	bool empty(); -	void	bindEmbeddedChars(const LLFontGL* font); -	void	unbindEmbeddedChars(const LLFontGL* font); +	void	bindEmbeddedChars(LLFontGL* font) const; +	void	unbindEmbeddedChars(LLFontGL* font) const;  	BOOL	insertEmbeddedItem(LLInventoryItem* item, llwchar* value, bool is_new);  	BOOL	removeEmbeddedItem( llwchar ext_char ); @@ -167,12 +167,13 @@ public:  	static LLInventoryItem* getEmbeddedItem(llwchar ext_char); // returns item from static list  	static BOOL getEmbeddedItemSaved(llwchar ext_char); // returns whether item from static list is saved +private: +  	struct embedded_info_t  	{  		LLPointer<LLInventoryItem> mItem;  		BOOL mSaved;  	}; -private:  	typedef std::map<llwchar, embedded_info_t > item_map_t;  	static item_map_t sEntries;  	static std::stack<llwchar> sFreeEntries; @@ -227,14 +228,14 @@ BOOL LLEmbeddedItems::insertEmbeddedItem( LLInventoryItem* item, llwchar* ext_ch  	}  	else if (sEntries.empty())  	{ -		wc_emb = FIRST_EMBEDDED_CHAR; +		wc_emb = LLTextEditor::FIRST_EMBEDDED_CHAR;  	}  	else  	{  		item_map_t::iterator last = sEntries.end();  		--last;  		wc_emb = last->first; -		if (wc_emb >= LAST_EMBEDDED_CHAR) +		if (wc_emb >= LLTextEditor::LAST_EMBEDDED_CHAR)  		{  			return FALSE;  		} @@ -265,7 +266,7 @@ BOOL LLEmbeddedItems::removeEmbeddedItem( llwchar ext_char )  // static  LLInventoryItem* LLEmbeddedItems::getEmbeddedItem(llwchar ext_char)  { -	if( ext_char >= FIRST_EMBEDDED_CHAR && ext_char <= LAST_EMBEDDED_CHAR ) +	if( ext_char >= LLTextEditor::FIRST_EMBEDDED_CHAR && ext_char <= LLTextEditor::LAST_EMBEDDED_CHAR )  	{  		item_map_t::iterator iter = sEntries.find(ext_char);  		if (iter != sEntries.end()) @@ -279,7 +280,7 @@ LLInventoryItem* LLEmbeddedItems::getEmbeddedItem(llwchar ext_char)  // static  BOOL LLEmbeddedItems::getEmbeddedItemSaved(llwchar ext_char)  { -	if( ext_char >= FIRST_EMBEDDED_CHAR && ext_char <= LAST_EMBEDDED_CHAR ) +	if( ext_char >= LLTextEditor::FIRST_EMBEDDED_CHAR && ext_char <= LLTextEditor::LAST_EMBEDDED_CHAR )  	{  		item_map_t::iterator iter = sEntries.find(ext_char);  		if (iter != sEntries.end()) @@ -307,7 +308,7 @@ void LLEmbeddedItems::removeUnusedChars()  	for (S32 i=0; i<(S32)wtext.size(); i++)  	{  		llwchar wc = wtext[i]; -		if( wc >= FIRST_EMBEDDED_CHAR && wc <= LAST_EMBEDDED_CHAR ) +		if( wc >= LLTextEditor::FIRST_EMBEDDED_CHAR && wc <= LLTextEditor::LAST_EMBEDDED_CHAR )  		{  			used.erase(wc);  		} @@ -365,14 +366,14 @@ BOOL LLEmbeddedItems::hasEmbeddedItem(llwchar ext_char)  	return FALSE;  } -void LLEmbeddedItems::bindEmbeddedChars( const LLFontGL* font ) +void LLEmbeddedItems::bindEmbeddedChars( LLFontGL* font ) const  {  	if( sEntries.empty() )  	{  		return;   	} -	for (std::set<llwchar>::iterator iter1 = mEmbeddedUsedChars.begin(); iter1 != mEmbeddedUsedChars.end(); ++iter1) +	for (std::set<llwchar>::const_iterator iter1 = mEmbeddedUsedChars.begin(); iter1 != mEmbeddedUsedChars.end(); ++iter1)  	{  		llwchar wch = *iter1;  		item_map_t::iterator iter2 = sEntries.find(wch); @@ -431,20 +432,20 @@ void LLEmbeddedItems::bindEmbeddedChars( const LLFontGL* font )  		LLViewerImage* image = gImageList.getImage(LLUUID(gViewerArt.getString(img_name)), MIPMAP_FALSE, TRUE); -		((LLFontGL*)font)->addEmbeddedChar( wch, image, item->getName() ); +		font->addEmbeddedChar( wch, image, item->getName() );  	}  } -void LLEmbeddedItems::unbindEmbeddedChars( const LLFontGL* font ) +void LLEmbeddedItems::unbindEmbeddedChars( LLFontGL* font ) const  {  	if( sEntries.empty() )  	{  		return;   	} -	for (std::set<llwchar>::iterator iter1 = mEmbeddedUsedChars.begin(); iter1 != mEmbeddedUsedChars.end(); ++iter1) +	for (std::set<llwchar>::const_iterator iter1 = mEmbeddedUsedChars.begin(); iter1 != mEmbeddedUsedChars.end(); ++iter1)  	{ -		((LLFontGL*)font)->removeEmbeddedChar(*iter1); +		font->removeEmbeddedChar(*iter1);  	}  } @@ -490,7 +491,7 @@ void LLEmbeddedItems::markSaved()  /////////////////////////////////////////////////////////////////// -class LLTextCmdInsertEmbeddedItem : public LLTextCmd +class LLViewerTextEditor::LLTextCmdInsertEmbeddedItem : public LLTextEditor::LLTextCmd  {  public:  	LLTextCmdInsertEmbeddedItem( S32 pos, LLInventoryItem* item ) @@ -509,7 +510,7 @@ public:  		{  			LLWString ws;  			ws.assign(1, mExtCharValue); -			*delta = insert(editor, mPos, ws ); +			*delta = insert(editor, getPosition(), ws );  			return (*delta != 0);  		}  		return FALSE; @@ -517,18 +518,18 @@ public:  	virtual S32 undo( LLTextEditor* editor )  	{ -		remove(editor, mPos, 1); -		return mPos;  +		remove(editor, getPosition(), 1); +		return getPosition();   	}  	virtual S32 redo( LLTextEditor* editor )  	{   		LLWString ws;  		ws += mExtCharValue; -		insert(editor, mPos, ws ); -		return mPos + 1; +		insert(editor, getPosition(), ws ); +		return getPosition() + 1;  	} -	virtual BOOL hasExtCharValue( llwchar value ) +	virtual BOOL hasExtCharValue( llwchar value ) const  	{  		return (value == mExtCharValue);  	} @@ -571,17 +572,17 @@ LLViewerTextEditor::LLViewerTextEditor(const LLString& name,  	mEmbeddedItemList = new LLEmbeddedItems(this);  	mInventoryCallback->setEditor(this); +	// *TODO: Add right click menus for SLURLs  	// Build the right click menu  	// make the popup menu available - -	LLMenuGL* menu = gUICtrlFactory->buildMenu("menu_slurl.xml", this); -	if (!menu) -	{ -		menu = new LLMenuGL(""); -	} -	menu->setBackgroundColor(gColors.getColor("MenuPopupBgColor")); -	// menu->setVisible(FALSE); -	mPopupMenuHandle = menu->mViewHandle; +	//LLMenuGL* menu = gUICtrlFactory->buildMenu("menu_slurl.xml", this); +	//if (!menu) +	//{ +	//	menu = new LLMenuGL(""); +	//} +	//menu->setBackgroundColor(gColors.getColor("MenuPopupBgColor")); +	//// menu->setVisible(FALSE); +	//mPopupMenuHandle = menu->getHandle();  }  LLViewerTextEditor::~LLViewerTextEditor() @@ -623,7 +624,7 @@ BOOL LLViewerTextEditor::handleToolTip(S32 x, S32 y, LLString& msg, LLRect* stic  		return TRUE;  	} -	LLTextSegment* cur_segment = getSegmentAtLocalPos( x, y ); +	const LLTextSegment* cur_segment = getSegmentAtLocalPos( x, y );  	if( cur_segment )  	{  		BOOL has_tool_tip = FALSE; @@ -674,13 +675,13 @@ BOOL LLViewerTextEditor::handleMouseDown(S32 x, S32 y, MASK mask)  		}  		BOOL start_select = TRUE; -		if( mAllowEmbeddedItems ) +		if( allowsEmbeddedItems() )  		{  			setCursorAtLocalPos( x, y, FALSE );  			llwchar wc = 0;  			if (mCursorPos < getLength())  			{ -				wc = mWText[mCursorPos]; +				wc = getWChar(mCursorPos);  			}  			LLInventoryItem* item_at_pos = LLEmbeddedItems::getEmbeddedItem(wc);  			if (item_at_pos) @@ -763,7 +764,7 @@ BOOL LLViewerTextEditor::handleMouseDown(S32 x, S32 y, MASK mask)  	}  	// Delay cursor flashing -	mKeystrokeTimer.reset(); +	resetKeystrokeTimer();  	return handled;  } @@ -790,12 +791,12 @@ BOOL LLViewerTextEditor::handleHover(S32 x, S32 y, MASK mask)  					mLastSelectionY = y;  				} -				if( y > mTextRect.mTop ) +				if( y > getTextRect().mTop )  				{  					mScrollbar->setDocPos( mScrollbar->getDocPos() - 1 );  				}  				else -				if( y < mTextRect.mBottom ) +				if( y < getTextRect().mBottom )  				{  					mScrollbar->setDocPos( mScrollbar->getDocPos() + 1 );  				} @@ -817,7 +818,7 @@ BOOL LLViewerTextEditor::handleHover(S32 x, S32 y, MASK mask)  						LLAssetType::lookupDragAndDropType( mDragItem->getType() ),  						mDragItem->getUUID(),  						LLToolDragAndDrop::SOURCE_NOTECARD, -						mSourceID, mObjectID); +						getSourceID(), mObjectID);  					return gToolDragAndDrop->handleHover( x, y, mask );  				} @@ -837,7 +838,7 @@ BOOL LLViewerTextEditor::handleHover(S32 x, S32 y, MASK mask)  		if( handled )  		{  			// Delay cursor flashing -			mKeystrokeTimer.reset(); +			resetKeystrokeTimer();  		}  		// Opaque @@ -846,7 +847,7 @@ BOOL LLViewerTextEditor::handleHover(S32 x, S32 y, MASK mask)  			// Check to see if we're over an HTML-style link  			if( !mSegments.empty() )  			{ -				LLTextSegment* cur_segment = getSegmentAtLocalPos( x, y ); +				const LLTextSegment* cur_segment = getSegmentAtLocalPos( x, y );  				if( cur_segment )  				{  					if(cur_segment->getStyle().isLink()) @@ -870,7 +871,7 @@ BOOL LLViewerTextEditor::handleHover(S32 x, S32 y, MASK mask)  			if( !handled )  			{  				lldebugst(LLERR_USER_INPUT) << "hover handled by " << getName() << " (inactive)" << llendl;		 -				if (!mScrollbar->getVisible() || x < mRect.getWidth() - SCROLLBAR_SIZE) +				if (!mScrollbar->getVisible() || x < getRect().getWidth() - SCROLLBAR_SIZE)  				{  					getWindow()->setCursor(UI_CURSOR_IBEAM);  				} @@ -894,7 +895,7 @@ BOOL LLViewerTextEditor::handleMouseUp(S32 x, S32 y, MASK mask)  	// let scrollbar have first dibs  	handled = LLView::childrenHandleMouseUp(x, y, mask) != NULL; -	// enable I Agree checkbox if the user scrolled through entire text +	// Used to enable I Agree checkbox if the user scrolled through entire text  	BOOL was_scrolled_to_bottom = (mScrollbar->getDocPos() == mScrollbar->getDocPosMax());  	if (mOnScrollEndCallback && was_scrolled_to_bottom)  	{ @@ -906,12 +907,12 @@ BOOL LLViewerTextEditor::handleMouseUp(S32 x, S32 y, MASK mask)  		if( mIsSelecting )  		{  			// Finish selection -			if( y > mTextRect.mTop ) +			if( y > getTextRect().mTop )  			{  				mScrollbar->setDocPos( mScrollbar->getDocPos() - 1 );  			}  			else -			if( y < mTextRect.mBottom ) +			if( y < getTextRect().mBottom )  			{  				mScrollbar->setDocPos( mScrollbar->getDocPos() + 1 );  			} @@ -931,7 +932,7 @@ BOOL LLViewerTextEditor::handleMouseUp(S32 x, S32 y, MASK mask)  	}  	// Delay cursor flashing -	mKeystrokeTimer.reset(); +	resetKeystrokeTimer();  	if( hasMouseCapture()  )  	{ @@ -965,34 +966,35 @@ BOOL LLViewerTextEditor::handleRightMouseDown(S32 x, S32 y, MASK mask)  	BOOL handled = childrenHandleRightMouseDown(x, y, mask) != NULL; -	if(! handled) -	{ -		LLTextSegment* cur_segment = getSegmentAtLocalPos( x, y ); -		if( cur_segment ) -		{ -			if(cur_segment->getStyle().isLink()) -			{ -				handled = TRUE; -				mHTML = cur_segment->getStyle().getLinkHREF(); -			} -		} -	} -	LLMenuGL* menu = (LLMenuGL*)LLView::getViewByHandle(mPopupMenuHandle); -	if(handled && menu && mParseHTML && mHTML.length() > 0) -	{ -		menu->setVisible(TRUE); -		menu->arrange(); -		menu->updateParent(LLMenuGL::sMenuContainer); -		LLMenuGL::showPopup(this, menu, x, y); -		mHTML = ""; -	} -	else -	{ -		if(menu && menu->getVisible()) -		{ -			menu->setVisible(FALSE); -		} -	} +	// *TODO: Add right click menus for SLURLs +// 	if(! handled) +// 	{ +// 		const LLTextSegment* cur_segment = getSegmentAtLocalPos( x, y ); +// 		if( cur_segment ) +// 		{ +// 			if(cur_segment->getStyle().isLink()) +// 			{ +// 				handled = TRUE; +// 				mHTML = cur_segment->getStyle().getLinkHREF(); +// 			} +// 		} +// 	} +// 	LLMenuGL* menu = (LLMenuGL*)mPopupMenuHandle.get(); +// 	if(handled && menu && mParseHTML && mHTML.length() > 0) +// 	{ +// 		menu->setVisible(TRUE); +// 		menu->arrange(); +// 		menu->updateParent(LLMenuGL::sMenuContainer); +// 		LLMenuGL::showPopup(this, menu, x, y); +// 		mHTML = ""; +// 	} +// 	else +// 	{ +// 		if(menu && menu->getVisible()) +// 		{ +// 			menu->setVisible(FALSE); +// 		} +// 	}  	return handled;  } @@ -1005,9 +1007,9 @@ BOOL LLViewerTextEditor::handleDoubleClick(S32 x, S32 y, MASK mask)  	if( !handled && mTakesNonScrollClicks)  	{ -		if( mAllowEmbeddedItems ) +		if( allowsEmbeddedItems() )  		{ -			LLTextSegment* cur_segment = getSegmentAtLocalPos( x, y ); +			const LLTextSegment* cur_segment = getSegmentAtLocalPos( x, y );  			if( cur_segment && cur_segment->getStyle().getIsEmbeddedItem() )  			{  				if( openEmbeddedItemAtPos( cur_segment->getStart() ) ) @@ -1054,7 +1056,7 @@ BOOL LLViewerTextEditor::handleDoubleClick(S32 x, S32 y, MASK mask)  		mIsSelecting = FALSE;    		// delay cursor flashing -		mKeystrokeTimer.reset(); +		resetKeystrokeTimer();  		handled = TRUE;  	} @@ -1074,12 +1076,12 @@ BOOL LLViewerTextEditor::handleDragAndDrop(S32 x, S32 y, MASK mask,  	if (mTakesNonScrollClicks)  	{ -		if (getEnabled() && !mReadOnly) +		if (getEnabled() && acceptsTextInput())  		{  			switch( cargo_type )  			{  			case DAD_CALLINGCARD: -				if(mAcceptCallingCardNames) +				if(acceptsCallingCardNames())  				{  					if (drop)  					{ @@ -1107,7 +1109,7 @@ BOOL LLViewerTextEditor::handleDragAndDrop(S32 x, S32 y, MASK mask,  			case DAD_GESTURE:  				{  					LLInventoryItem *item = (LLInventoryItem *)cargo_data; -					if( mAllowEmbeddedItems ) +					if( allowsEmbeddedItems() )  					{  						U32 mask_next = item->getPermissions().getMaskNextOwner();  						if((mask_next & PERM_ITEM_UNRESTRICTED) == PERM_ITEM_UNRESTRICTED) @@ -1208,9 +1210,9 @@ LLString LLViewerTextEditor::getEmbeddedText()  	// New version (Version 2)  	mEmbeddedItemList->copyUsedCharsToIndexed();  	LLWString outtextw; -	for (S32 i=0; i<(S32)mWText.size(); i++) +	for (S32 i=0; i<(S32)getWText().size(); i++)  	{ -		llwchar wch = mWText[i]; +		llwchar wch = getWChar(i);  		if( wch >= FIRST_EMBEDDED_CHAR && wch <= LAST_EMBEDDED_CHAR )  		{  			S32 index = mEmbeddedItemList->getIndexFromEmbeddedChar(wch); @@ -1282,21 +1284,21 @@ llwchar LLViewerTextEditor::pasteEmbeddedItem(llwchar ext_char)  	return LL_UNKNOWN_CHAR; // item not found or list full  } -void LLViewerTextEditor::bindEmbeddedChars(const LLFontGL* font) +void LLViewerTextEditor::bindEmbeddedChars(LLFontGL* font) const  {  	mEmbeddedItemList->bindEmbeddedChars( font );  } -void LLViewerTextEditor::unbindEmbeddedChars(const LLFontGL* font) +void LLViewerTextEditor::unbindEmbeddedChars(LLFontGL* font) const  {  	mEmbeddedItemList->unbindEmbeddedChars( font );  } -BOOL LLViewerTextEditor::getEmbeddedItemToolTipAtPos(S32 pos, LLWString &msg) +BOOL LLViewerTextEditor::getEmbeddedItemToolTipAtPos(S32 pos, LLWString &msg) const  {  	if (pos < getLength())  	{ -		LLInventoryItem* item = LLEmbeddedItems::getEmbeddedItem(mWText[pos]); +		LLInventoryItem* item = LLEmbeddedItems::getEmbeddedItem(getWChar(pos));  		if( item )  		{  			msg = utf8str_to_wstring(item->getName()); @@ -1313,10 +1315,10 @@ BOOL LLViewerTextEditor::openEmbeddedItemAtPos(S32 pos)  {  	if( pos < getLength())  	{ -		LLInventoryItem* item = LLEmbeddedItems::getEmbeddedItem( mWText[pos] ); +		LLInventoryItem* item = LLEmbeddedItems::getEmbeddedItem( getWChar(pos) );  		if( item )  		{ -			BOOL saved = LLEmbeddedItems::getEmbeddedItemSaved( mWText[pos] ); +			BOOL saved = LLEmbeddedItems::getEmbeddedItemSaved( getWChar(pos) );  			if (saved)  			{  				return openEmbeddedItem(item);  @@ -1490,7 +1492,7 @@ bool LLViewerTextEditor::importStream(std::istream& str)  		const std::vector<LLPointer<LLInventoryItem> >& items = nc.getItems();  		mEmbeddedItemList->addItems(items);  		// Actually set the text -		if (mAllowEmbeddedItems) +		if (allowsEmbeddedItems())  		{  			if (nc.getVersion() == 1)  				setASCIIEmbeddedText( nc.getText() ); @@ -1514,7 +1516,7 @@ void LLViewerTextEditor::copyInventory(const LLInventoryItem* item, U32 callback  bool LLViewerTextEditor::hasEmbeddedInventory()  { -	return (!(mEmbeddedItemList->empty())); +	return ! mEmbeddedItemList->empty();  }  //////////////////////////////////////////////////////////////////////////// @@ -1577,11 +1579,9 @@ LLView* LLViewerTextEditor::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlF  								font,  								allow_embedded_items); -	BOOL ignore_tabs = text_editor->mTabToNextField; +	BOOL ignore_tabs = text_editor->tabsToNextField();  	node->getAttributeBOOL("ignore_tab", ignore_tabs); - -	text_editor->setTabToNextField(ignore_tabs); - +	text_editor->setTabsToNextField(ignore_tabs);  	text_editor->setTextEditorParameters(node); @@ -1589,7 +1589,7 @@ LLView* LLViewerTextEditor::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlF  	node->getAttributeBOOL("hide_scrollbar",hide_scrollbar);  	text_editor->setHideScrollbarForShortDocs(hide_scrollbar); -	BOOL hide_border = !text_editor->mBorder->getVisible(); +	BOOL hide_border = !text_editor->isBorderVisible();  	node->getAttributeBOOL("hide_border", hide_border);  	text_editor->setBorderVisible(!hide_border); diff --git a/indra/newview/llviewertexteditor.h b/indra/newview/llviewertexteditor.h index 02d934fc3c..237c85ad53 100644 --- a/indra/newview/llviewertexteditor.h +++ b/indra/newview/llviewertexteditor.h @@ -1,6 +1,6 @@  /**    * @file llviewertexteditor.h - * @brief Text editor widget to let users enter a a multi-line document// + * @brief Text editor widget to let users enter a multi-line document//   *   * $LicenseInfo:firstyear=2001&license=viewergpl$   *  @@ -34,17 +34,12 @@  #include "lltexteditor.h" -class LLInventoryItem; -class LLEmbeddedItems; -class LLEmbeddedNotecardOpener;  //  // Classes  //  class LLViewerTextEditor : public LLTextEditor  { -	friend class LLEmbeddedItems; -	friend class LLTextCmdInsertEmbeddedItem;  public:  	LLViewerTextEditor(const LLString& name, @@ -72,7 +67,7 @@ public:  										BOOL drop, EDragAndDropType cargo_type,   										void *cargo_data, EAcceptance *accept, LLString& tooltip_msg); -  	const LLInventoryItem* getDragItem() { return mDragItem; } +  	const class LLInventoryItem* getDragItem() const { return mDragItem; }  	virtual BOOL 	importBuffer(const LLString& buffer);  	virtual bool	importStream(std::istream& str);  	virtual BOOL 	exportBuffer(LLString& buffer); @@ -86,9 +81,9 @@ public:  	void setEmbeddedText(const LLString& instr);  	LLString getEmbeddedText(); +	// Appends Second Life time, small font, grey. +	// If this starts a line, you need to prepend a newline.  	LLString appendTime(bool prepend_newline); -		// Appends Second Life time, small font, grey -		// If this starts a line, you need to prepend a newline.  	void copyInventory(const LLInventoryItem* item, U32 callback_id = 0); @@ -99,13 +94,13 @@ public:  	// rather than checking if a re-load is necessary. Phoenix 2007-02-27  	bool hasEmbeddedInventory(); -protected: +private:  	// Embedded object operations  	virtual llwchar	pasteEmbeddedItem(llwchar ext_char); -	virtual void	bindEmbeddedChars(const LLFontGL* font); -	virtual void	unbindEmbeddedChars(const LLFontGL* font); +	virtual void	bindEmbeddedChars(LLFontGL* font) const; +	virtual void	unbindEmbeddedChars(LLFontGL* font) const; -	BOOL			getEmbeddedItemToolTipAtPos(S32 pos, LLWString &wmsg); +	BOOL			getEmbeddedItemToolTipAtPos(S32 pos, LLWString &wmsg) const;  	BOOL			openEmbeddedItemAtPos( S32 pos );  	BOOL			openEmbeddedItem(LLInventoryItem* item); @@ -121,17 +116,24 @@ protected:  	static void		onCopyToInvDialog( S32 option, void* userdata );  	static void		onNotecardDialog( S32 option, void* userdata ); -protected:  	LLPointer<LLInventoryItem> mDragItem;  	BOOL mDragItemSaved; -	LLEmbeddedItems* mEmbeddedItemList; +	class LLEmbeddedItems* mEmbeddedItemList;  	LLUUID mObjectID;  	LLUUID mNotecardInventoryID; -	LLPointer<LLEmbeddedNotecardOpener> mInventoryCallback; +	LLPointer<class LLEmbeddedNotecardOpener> mInventoryCallback; + +	// *TODO: Add right click menus for SLURLs +	//LLHandle<LLView> mPopupMenuHandle; + +	// +	// Inner classes +	// + +	class LLTextCmdInsertEmbeddedItem; -	LLViewHandle mPopupMenuHandle;  };  #endif  // LL_VIEWERTEXTEDITOR_H diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 95adf32ed5..5dcf4fdb5d 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -607,6 +607,8 @@ BOOL LLViewerWindow::handleMouseDown(LLWindow *window,  LLCoordGL pos, MASK mask  	x = llround((F32)x / mDisplayScale.mV[VX]);  	y = llround((F32)y / mDisplayScale.mV[VY]); +	LLView::sMouseHandlerMessage = ""; +  	if (gDebugClicks)  	{  		llinfos << "ViewerWindow left mouse down at " << x << "," << y << llendl; @@ -684,7 +686,6 @@ BOOL LLViewerWindow::handleMouseDown(LLWindow *window,  LLCoordGL pos, MASK mask  		if (LLView::sDebugMouseHandling)  		{  			llinfos << "Left Mouse Down" << LLView::sMouseHandlerMessage << llendl; -			LLView::sMouseHandlerMessage = "";  		}  		return TRUE;  	} @@ -720,6 +721,8 @@ BOOL LLViewerWindow::handleDoubleClick(LLWindow *window,  LLCoordGL pos, MASK ma  	x = llround((F32)x / mDisplayScale.mV[VX]);  	y = llround((F32)y / mDisplayScale.mV[VY]); +	LLView::sMouseHandlerMessage = ""; +  	if (gDebugClicks)  	{  		llinfos << "ViewerWindow left mouse double-click at " << x << "," << y << llendl; @@ -768,7 +771,6 @@ BOOL LLViewerWindow::handleDoubleClick(LLWindow *window,  LLCoordGL pos, MASK ma  		if (LLView::sDebugMouseHandling)  		{  			llinfos << "Left Mouse Down" << LLView::sMouseHandlerMessage << llendl; -			LLView::sMouseHandlerMessage = "";  		}  		return TRUE;  	} @@ -802,6 +804,8 @@ BOOL LLViewerWindow::handleMouseUp(LLWindow *window,  LLCoordGL pos, MASK mask)  	x = llround((F32)x / mDisplayScale.mV[VX]);  	y = llround((F32)y / mDisplayScale.mV[VY]); +	LLView::sMouseHandlerMessage = ""; +  	if (gDebugClicks)  	{  		llinfos << "ViewerWindow left mouse up" << llendl; @@ -868,7 +872,6 @@ BOOL LLViewerWindow::handleMouseUp(LLWindow *window,  LLCoordGL pos, MASK mask)  		if (handled)  		{  			llinfos << "Left Mouse Up" << LLView::sMouseHandlerMessage << llendl; -			LLView::sMouseHandlerMessage = "";  		}  		else   		{ @@ -896,6 +899,8 @@ BOOL LLViewerWindow::handleRightMouseDown(LLWindow *window,  LLCoordGL pos, MASK  	x = llround((F32)x / mDisplayScale.mV[VX]);  	y = llround((F32)y / mDisplayScale.mV[VY]); +	LLView::sMouseHandlerMessage = ""; +  	if (gDebugClicks)  	{  		llinfos << "ViewerWindow right mouse down at " << x << "," << y << llendl; @@ -966,7 +971,6 @@ BOOL LLViewerWindow::handleRightMouseDown(LLWindow *window,  LLCoordGL pos, MASK  		if (LLView::sDebugMouseHandling)  		{  			llinfos << "Right Mouse Down" << LLView::sMouseHandlerMessage << llendl; -			LLView::sMouseHandlerMessage = "";  		}  		return TRUE;  	} @@ -1008,6 +1012,8 @@ BOOL LLViewerWindow::handleRightMouseUp(LLWindow *window,  LLCoordGL pos, MASK m  	x = llround((F32)x / mDisplayScale.mV[VX]);  	y = llround((F32)y / mDisplayScale.mV[VY]); +	LLView::sMouseHandlerMessage = ""; +  	// Don't care about caps lock for mouse events.  	if (gDebugClicks)  	{ @@ -1074,7 +1080,6 @@ BOOL LLViewerWindow::handleRightMouseUp(LLWindow *window,  LLCoordGL pos, MASK m  		if (handled)  		{  			llinfos << "Right Mouse Up" << LLView::sMouseHandlerMessage << llendl; -			LLView::sMouseHandlerMessage = "";  		}  		else   		{ @@ -2641,6 +2646,8 @@ BOOL LLViewerWindow::handleUnicodeChar(llwchar uni_char, MASK mask)  void LLViewerWindow::handleScrollWheel(S32 clicks)  { +	LLView::sMouseHandlerMessage = ""; +  	gMouseIdleTimer.reset();  	// Hide tooltips @@ -2677,7 +2684,6 @@ void LLViewerWindow::handleScrollWheel(S32 clicks)  		if (LLView::sDebugMouseHandling)  		{  			llinfos << "Scroll Wheel" << LLView::sMouseHandlerMessage << llendl; -			LLView::sMouseHandlerMessage = "";  		}  		return;  	} @@ -2719,6 +2725,8 @@ BOOL LLViewerWindow::handlePerFrameHover()  {  	static std::string last_handle_msg; +	LLView::sMouseHandlerMessage = ""; +  	//RN: fix for asynchronous notification of mouse leaving window not working  	LLCoordWindow mouse_pos;  	mWindow->getCursorPosition(&mouse_pos); @@ -2776,23 +2784,23 @@ BOOL LLViewerWindow::handlePerFrameHover()  		{  			gFocusMgr.releaseFocusIfNeeded(cur_focus); -			LLView* parent = cur_focus->getParent(); -			LLView* focus_root = cur_focus->findRootMostFocusRoot(); +			LLUICtrl* parent = cur_focus->getParentUICtrl(); +			const LLUICtrl* focus_root = cur_focus->findRootMostFocusRoot();  			while(parent)  			{  				if (parent->isCtrl() &&  -					(((LLUICtrl*)parent)->hasTabStop() || parent == focus_root) &&  -					!((LLUICtrl*)parent)->getIsChrome() &&  +					(parent->hasTabStop() || parent == focus_root) &&  +					!parent->getIsChrome() &&   					parent->isInVisibleChain() &&   					parent->isInEnabledChain())  				{  					if (!parent->focusFirstItem())  					{ -						((LLUICtrl*)parent)->setFocus(TRUE); +						parent->setFocus(TRUE);  					}  					break;  				} -				parent = parent->getParent(); +				parent = parent->getParentUICtrl();  			}  		}  		else if (cur_focus->isFocusRoot()) @@ -2854,7 +2862,6 @@ BOOL LLViewerWindow::handlePerFrameHover()  					last_handle_msg = LLView::sMouseHandlerMessage;  					llinfos << "Hover" << LLView::sMouseHandlerMessage << llendl;  				} -				LLView::sMouseHandlerMessage = "";  				handled = TRUE;  			}  			else if (LLView::sDebugMouseHandling) @@ -3020,7 +3027,7 @@ BOOL LLViewerWindow::handlePerFrameHover()  		}  		// snap floaters to top of chat bar/button strip -		LLView* chatbar_and_buttons = gOverlayBar->getChildByName("chatbar_and_buttons", TRUE); +		LLView* chatbar_and_buttons = gOverlayBar->getChild<LLView>("chatbar_and_buttons", TRUE);  		if (chatbar_and_buttons)  		{  			// convert top/left corner of chatbar/buttons container to gFloaterView-relative coordinates @@ -3048,9 +3055,9 @@ BOOL LLViewerWindow::handlePerFrameHover()  	mLastMousePoint = mCurrentMousePoint;  	// last ditch force of edit menu to selection manager -	if (gEditMenuHandler == NULL && gSelectMgr && gSelectMgr->getSelection()->getObjectCount()) +	if (LLEditMenuHandler::gEditMenuHandler == NULL && gSelectMgr && gSelectMgr->getSelection()->getObjectCount())  	{ -		gEditMenuHandler = gSelectMgr; +		LLEditMenuHandler::gEditMenuHandler = gSelectMgr;  	}  	if (gFloaterView->getCycleMode()) diff --git a/indra/newview/llworldmapview.cpp b/indra/newview/llworldmapview.cpp index b188c70b70..1abc1b165c 100644 --- a/indra/newview/llworldmapview.cpp +++ b/indra/newview/llworldmapview.cpp @@ -325,8 +325,8 @@ void LLWorldMapView::draw()  	sPanX = lerp(sPanX, sTargetPanX, LLCriticalDamp::getInterpolant(0.1f));  	sPanY = lerp(sPanY, sTargetPanY, LLCriticalDamp::getInterpolant(0.1f)); -	const S32 width = mRect.getWidth(); -	const S32 height = mRect.getHeight(); +	const S32 width = getRect().getWidth(); +	const S32 height = getRect().getHeight();  	const S32 half_width = width / 2;  	const S32 half_height = height / 2;  	LLVector3d camera_global = gAgent.getCameraPositionGlobal(); @@ -990,8 +990,8 @@ void LLWorldMapView::drawFrustum()  	F32 half_width_meters = far_clip_meters * tan( horiz_fov / 2 );  	F32 half_width_pixels = half_width_meters * meters_to_pixels; -	F32 ctr_x = mRect.getWidth() * 0.5f + sPanX; -	F32 ctr_y = mRect.getHeight() * 0.5f + sPanY; +	F32 ctr_x = getRect().getWidth() * 0.5f + sPanX; +	F32 ctr_y = getRect().getHeight() * 0.5f + sPanY;  	LLGLSNoTexture gls_no_texture; @@ -1027,8 +1027,8 @@ LLVector3 LLWorldMapView::globalPosToView( const LLVector3d& global_pos )  	// leave Z component in meters -	pos_local.mV[VX] += mRect.getWidth() / 2 + sPanX; -	pos_local.mV[VY] += mRect.getHeight() / 2 + sPanY; +	pos_local.mV[VX] += getRect().getWidth() / 2 + sPanX; +	pos_local.mV[VY] += getRect().getHeight() / 2 + sPanY;  	return pos_local;  } @@ -1048,13 +1048,13 @@ void LLWorldMapView::drawTracking(const LLVector3d& pos_global, const LLColor4&  	if(    x < 0   		|| y < 0  -		|| x >= mRect.getWidth()  -		|| y >= mRect.getHeight() ) +		|| x >= getRect().getWidth()  +		|| y >= getRect().getHeight() )  	{  		if (draw_arrow)  		{ -			drawTrackingCircle( mRect, x, y, color, 3, 15 ); -			drawTrackingArrow( mRect, x, y, color ); +			drawTrackingCircle( getRect(), x, y, color, 3, 15 ); +			drawTrackingArrow( getRect(), x, y, color );  			text_x = sTrackingArrowX;  			text_y = sTrackingArrowY;  		} @@ -1063,7 +1063,7 @@ void LLWorldMapView::drawTracking(const LLVector3d& pos_global, const LLColor4&  	else if (LLTracker::getTrackingStatus() == LLTracker::TRACKING_LOCATION &&  		LLTracker::getTrackedLocationType() != LLTracker::LOCATION_NOTHING)  	{ -		drawTrackingCircle( mRect, x, y, color, 3, 15 ); +		drawTrackingCircle( getRect(), x, y, color, 3, 15 );  	}  	else  	{ @@ -1073,8 +1073,8 @@ void LLWorldMapView::drawTracking(const LLVector3d& pos_global, const LLColor4&  	// clamp text position to on-screen  	const S32 TEXT_PADDING = DEFAULT_TRACKING_ARROW_SIZE + 2;  	S32 half_text_width = llfloor(font->getWidthF32(label) * 0.5f); -	text_x = llclamp(text_x, half_text_width + TEXT_PADDING, mRect.getWidth() - half_text_width - TEXT_PADDING); -	text_y = llclamp(text_y + vert_offset, TEXT_PADDING + vert_offset, mRect.getHeight() - llround(font->getLineHeight()) - TEXT_PADDING - vert_offset); +	text_x = llclamp(text_x, half_text_width + TEXT_PADDING, getRect().getWidth() - half_text_width - TEXT_PADDING); +	text_y = llclamp(text_y + vert_offset, TEXT_PADDING + vert_offset, getRect().getHeight() - llround(font->getLineHeight()) - TEXT_PADDING - vert_offset);  	if (label != "")  	{ @@ -1102,8 +1102,8 @@ void LLWorldMapView::drawTracking(const LLVector3d& pos_global, const LLColor4&  // If you change this, then you need to change LLTracker::getTrackedPositionGlobal() as well  LLVector3d LLWorldMapView::viewPosToGlobal( S32 x, S32 y )  { -	x -= llfloor((mRect.getWidth() / 2 + sPanX)); -	y -= llfloor((mRect.getHeight() / 2 + sPanY)); +	x -= llfloor((getRect().getWidth() / 2 + sPanX)); +	y -= llfloor((getRect().getHeight() / 2 + sPanY));  	LLVector3 pos_local( (F32)x, (F32)y, 0.f ); @@ -1448,8 +1448,8 @@ void LLWorldMapView::setDirectionPos( LLTextBox* text_box, F32 rotation )  	// Rotation of 0 means x = 1, y = 0 on the unit circle. -	F32 map_half_height = mRect.getHeight() * 0.5f; -	F32 map_half_width = mRect.getWidth() * 0.5f; +	F32 map_half_height = getRect().getHeight() * 0.5f; +	F32 map_half_width = getRect().getWidth() * 0.5f;  	F32 text_half_height = text_box->getRect().getHeight() * 0.5f;  	F32 text_half_width = text_box->getRect().getWidth() * 0.5f;  	F32 radius = llmin( map_half_height - text_half_height, map_half_width - text_half_width ); @@ -1462,8 +1462,8 @@ void LLWorldMapView::setDirectionPos( LLTextBox* text_box, F32 rotation )  void LLWorldMapView::updateDirections()  { -	S32 width = mRect.getWidth(); -	S32 height = mRect.getHeight(); +	S32 width = getRect().getWidth(); +	S32 height = getRect().getHeight();  	S32 text_height = mTextBoxNorth->getRect().getHeight();  	S32 text_width = mTextBoxNorth->getRect().getWidth(); @@ -1695,7 +1695,7 @@ BOOL LLWorldMapView::handleMouseUp( S32 x, S32 y, MASK mask )  			S32 local_x, local_y;  			local_x = mMouseDownX + llfloor(sPanX - mMouseDownPanX);  			local_y = mMouseDownY + llfloor(sPanY - mMouseDownPanY); -			LLRect clip_rect = mRect; +			LLRect clip_rect = getRect();  			clip_rect.stretch(-8);  			clip_rect.clipPointToRect(mMouseDownX, mMouseDownY, local_x, local_y);  			LLUI::setCursorPositionLocal(this, local_x, local_y); | 
