diff options
| -rw-r--r-- | indra/newview/llpanelpicks.cpp | 14 | ||||
| -rw-r--r-- | indra/newview/llpanelpicks.h | 1 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/menu_picks_plus.xml | 3 | 
3 files changed, 17 insertions, 1 deletions
diff --git a/indra/newview/llpanelpicks.cpp b/indra/newview/llpanelpicks.cpp index 751705dd57..ada65c98a4 100644 --- a/indra/newview/llpanelpicks.cpp +++ b/indra/newview/llpanelpicks.cpp @@ -411,6 +411,7 @@ BOOL LLPanelPicks::postBuild()  	LLUICtrl::CommitCallbackRegistry::ScopedRegistrar plus_registar;  	plus_registar.add("Picks.Plus.Action", boost::bind(&LLPanelPicks::onPlusMenuItemClicked, this, _2)); +	mEnableCallbackRegistrar.add("Picks.Plus.Enable", boost::bind(&LLPanelPicks::isActionEnabled, this, _2));  	mPlusMenu = LLUICtrlFactory::getInstance()->createFromFile<LLToggleableMenu>("menu_picks_plus.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());  	return TRUE; @@ -430,6 +431,18 @@ void LLPanelPicks::onPlusMenuItemClicked(const LLSD& param)  	}  } +bool LLPanelPicks::isActionEnabled(const LLSD& userdata) const +{ +	std::string command_name = userdata.asString(); + +	if (command_name == "new_pick" && LLAgentPicksInfo::getInstance()->isPickLimitReached()) +	{ +		return false; +	} + +	return true; +} +  void LLPanelPicks::onAccordionStateChanged(const LLAccordionCtrlTab* acc_tab)  {  	if(!mPicksAccTab->getDisplayChildren()) @@ -652,7 +665,6 @@ void LLPanelPicks::updateButtons()  	if (getAvatarId() == gAgentID)  	{ -		childSetEnabled(XML_BTN_NEW, !LLAgentPicksInfo::getInstance()->isPickLimitReached());  		childSetEnabled(XML_BTN_DELETE, has_selected);  	} diff --git a/indra/newview/llpanelpicks.h b/indra/newview/llpanelpicks.h index 1b2e35ca46..3f757e482e 100644 --- a/indra/newview/llpanelpicks.h +++ b/indra/newview/llpanelpicks.h @@ -97,6 +97,7 @@ private:  	void onClickMap();  	void onPlusMenuItemClicked(const LLSD& param); +	bool isActionEnabled(const LLSD& userdata) const;  	void onListCommit(const LLFlatListView* f_list);  	void onAccordionStateChanged(const LLAccordionCtrlTab* acc_tab); diff --git a/indra/newview/skins/default/xui/en/menu_picks_plus.xml b/indra/newview/skins/default/xui/en/menu_picks_plus.xml index 3065239615..f3b207e36c 100644 --- a/indra/newview/skins/default/xui/en/menu_picks_plus.xml +++ b/indra/newview/skins/default/xui/en/menu_picks_plus.xml @@ -11,6 +11,9 @@          <menu_item_call.on_click            function="Picks.Plus.Action"            userdata="new_pick" /> +        <menu_item_call.on_enable +         function="Picks.Plus.Enable" +         userdata="new_pick" />          </menu_item_call>      <menu_item_call        name="create_classified"   | 
