diff options
| author | Vadim ProductEngine <vsavchuk@productengine.com> | 2012-02-13 17:12:03 +0200 | 
|---|---|---|
| committer | Vadim ProductEngine <vsavchuk@productengine.com> | 2012-02-13 17:12:03 +0200 | 
| commit | 47425d67fe032804d8a10123cd1a7daf9bff84f7 (patch) | |
| tree | 775b68e9333cd13826daf9b870da387e365186dc | |
| parent | 3e2eca7c1f215ff42844d6cf40bff4498ced457e (diff) | |
EXP-1882 FIXED Crashes when invoking avatar picker from mouse look mode.
Fixing the cases missed in EXP-1879.
| -rwxr-xr-x | indra/newview/llavataractions.cpp | 5 | ||||
| -rw-r--r-- | indra/newview/llfloatergodtools.cpp | 6 | ||||
| -rw-r--r-- | indra/newview/llfloaterland.cpp | 14 | ||||
| -rw-r--r-- | indra/newview/llfloaterregioninfo.cpp | 10 | ||||
| -rw-r--r-- | indra/newview/llfloaterreporter.cpp | 6 | ||||
| -rw-r--r-- | indra/newview/llfloatersellland.cpp | 6 | ||||
| -rw-r--r-- | indra/newview/llpanelgroupinvite.cpp | 12 | 
7 files changed, 46 insertions, 13 deletions
| diff --git a/indra/newview/llavataractions.cpp b/indra/newview/llavataractions.cpp index 9a7cdcfa21..f618af9536 100755 --- a/indra/newview/llavataractions.cpp +++ b/indra/newview/llavataractions.cpp @@ -738,6 +738,11 @@ void LLAvatarActions::shareWithAvatars()  	LLFloaterAvatarPicker* picker =  		LLFloaterAvatarPicker::show(boost::bind(give_inventory, _1, _2), TRUE, FALSE); +	if (!picker) +	{ +		return; +	} +  	picker->setOkBtnEnableCb(boost::bind(is_give_inventory_acceptable));  	picker->openFriendsTab();  	LLNotificationsUtil::add("ShareNotification"); diff --git a/indra/newview/llfloatergodtools.cpp b/indra/newview/llfloatergodtools.cpp index a34e0353ec..fb905eae11 100644 --- a/indra/newview/llfloatergodtools.cpp +++ b/indra/newview/llfloatergodtools.cpp @@ -1123,8 +1123,12 @@ bool LLPanelObjectTools::callbackSimWideDeletes( const LLSD& notification, const  void LLPanelObjectTools::onClickSet()  { +	LLFloaterAvatarPicker* picker = LLFloaterAvatarPicker::show(boost::bind(&LLPanelObjectTools::callbackAvatarID, this, _1,_2));  	// grandparent is a floater, which can have a dependent -	gFloaterView->getParentFloater(this)->addDependentFloater(LLFloaterAvatarPicker::show(boost::bind(&LLPanelObjectTools::callbackAvatarID, this, _1,_2))); +	if (picker) +	{ +		gFloaterView->getParentFloater(this)->addDependentFloater(picker); +	}  }  void LLPanelObjectTools::onClickSetBySelection(void* data) diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp index 95da8ff948..ee18c95b34 100644 --- a/indra/newview/llfloaterland.cpp +++ b/indra/newview/llfloaterland.cpp @@ -2739,7 +2739,12 @@ void LLPanelLandAccess::onCommitAny(LLUICtrl *ctrl, void *userdata)  void LLPanelLandAccess::onClickAddAccess()  { -	gFloaterView->getParentFloater(this)->addDependentFloater(LLFloaterAvatarPicker::show(boost::bind(&LLPanelLandAccess::callbackAvatarCBAccess, this, _1)) ); +	LLFloaterAvatarPicker* picker = LLFloaterAvatarPicker::show( +		boost::bind(&LLPanelLandAccess::callbackAvatarCBAccess, this, _1)); +	if (picker) +	{ +		gFloaterView->getParentFloater(this)->addDependentFloater(picker); +	}  }  void LLPanelLandAccess::callbackAvatarCBAccess(const uuid_vec_t& ids) @@ -2783,7 +2788,12 @@ void LLPanelLandAccess::onClickRemoveAccess(void* data)  // static  void LLPanelLandAccess::onClickAddBanned()  { -	gFloaterView->getParentFloater(this)->addDependentFloater(LLFloaterAvatarPicker::show(boost::bind(&LLPanelLandAccess::callbackAvatarCBBanned, this, _1))); +	LLFloaterAvatarPicker* picker = LLFloaterAvatarPicker::show( +		boost::bind(&LLPanelLandAccess::callbackAvatarCBBanned, this, _1)); +	if (picker) +	{ +		gFloaterView->getParentFloater(this)->addDependentFloater(picker); +	}  }  // static diff --git a/indra/newview/llfloaterregioninfo.cpp b/indra/newview/llfloaterregioninfo.cpp index 676059779c..1f746ed31a 100644 --- a/indra/newview/llfloaterregioninfo.cpp +++ b/indra/newview/llfloaterregioninfo.cpp @@ -650,7 +650,10 @@ void LLPanelRegionGeneralInfo::onClickKick()  	// in order to set up floater dependency  	LLFloater* parent_floater = gFloaterView->getParentFloater(this);  	LLFloater* child_floater = LLFloaterAvatarPicker::show(boost::bind(&LLPanelRegionGeneralInfo::onKickCommit, this, _1), FALSE, TRUE); -	parent_floater->addDependentFloater(child_floater); +	if (child_floater) +	{ +		parent_floater->addDependentFloater(child_floater); +	}  }  void LLPanelRegionGeneralInfo::onKickCommit(const uuid_vec_t& ids) @@ -1470,7 +1473,10 @@ void LLPanelEstateInfo::onClickKickUser()  	// in order to set up floater dependency  	LLFloater* parent_floater = gFloaterView->getParentFloater(this);  	LLFloater* child_floater = LLFloaterAvatarPicker::show(boost::bind(&LLPanelEstateInfo::onKickUserCommit, this, _1), FALSE, TRUE); -	parent_floater->addDependentFloater(child_floater); +	if (child_floater) +	{ +		parent_floater->addDependentFloater(child_floater); +	}  }  void LLPanelEstateInfo::onKickUserCommit(const uuid_vec_t& ids) diff --git a/indra/newview/llfloaterreporter.cpp b/indra/newview/llfloaterreporter.cpp index c08848b1ea..3ec1e372eb 100644 --- a/indra/newview/llfloaterreporter.cpp +++ b/indra/newview/llfloaterreporter.cpp @@ -285,7 +285,11 @@ void LLFloaterReporter::getObjectInfo(const LLUUID& object_id)  void LLFloaterReporter::onClickSelectAbuser()  { -	gFloaterView->getParentFloater(this)->addDependentFloater(LLFloaterAvatarPicker::show(boost::bind(&LLFloaterReporter::callbackAvatarID, this, _1, _2), FALSE, TRUE )); +	LLFloaterAvatarPicker* picker = LLFloaterAvatarPicker::show(boost::bind(&LLFloaterReporter::callbackAvatarID, this, _1, _2), FALSE, TRUE ); +	if (picker) +	{ +		gFloaterView->getParentFloater(this)->addDependentFloater(picker); +	}  }  void LLFloaterReporter::callbackAvatarID(const uuid_vec_t& ids, const std::vector<LLAvatarName> names) diff --git a/indra/newview/llfloatersellland.cpp b/indra/newview/llfloatersellland.cpp index 3434841d09..64c0dfa023 100644 --- a/indra/newview/llfloatersellland.cpp +++ b/indra/newview/llfloatersellland.cpp @@ -392,8 +392,12 @@ void LLFloaterSellLandUI::onChangeValue(LLUICtrl *ctrl, void *userdata)  void LLFloaterSellLandUI::doSelectAgent()  { +	LLFloaterAvatarPicker* picker = LLFloaterAvatarPicker::show(boost::bind(&LLFloaterSellLandUI::callbackAvatarPick, this, _1, _2), FALSE, TRUE);  	// grandparent is a floater, in order to set up dependency -	addDependentFloater(LLFloaterAvatarPicker::show(boost::bind(&LLFloaterSellLandUI::callbackAvatarPick, this, _1, _2), FALSE, TRUE)); +	if (picker) +	{ +		addDependentFloater(picker); +	}  }  void LLFloaterSellLandUI::callbackAvatarPick(const uuid_vec_t& ids, const std::vector<LLAvatarName> names) diff --git a/indra/newview/llpanelgroupinvite.cpp b/indra/newview/llpanelgroupinvite.cpp index ca48e8561b..7a15d93181 100644 --- a/indra/newview/llpanelgroupinvite.cpp +++ b/indra/newview/llpanelgroupinvite.cpp @@ -289,12 +289,12 @@ void LLPanelGroupInvite::impl::callbackClickAdd(void* userdata)  		//Soon the avatar picker will be embedded into this panel  		//instead of being it's own separate floater.  But that is next week.  		//This will do for now. -jwolk May 10, 2006 -		LLFloater* parentp; - -		parentp = gFloaterView->getParentFloater(panelp); -		parentp->addDependentFloater(LLFloaterAvatarPicker::show(boost::bind(impl::callbackAddUsers, _1, -																panelp->mImplementation), -																 TRUE)); +		LLFloaterAvatarPicker* picker = LLFloaterAvatarPicker::show( +			boost::bind(impl::callbackAddUsers, _1, panelp->mImplementation), TRUE); +		if (picker) +		{ +			gFloaterView->getParentFloater(panelp)->addDependentFloater(picker); +		}  	}  } | 
