diff options
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/newview/llpaneloutfitedit.cpp | 62 | ||||
| -rw-r--r-- | indra/newview/llpaneloutfitedit.h | 3 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/panel_outfit_edit.xml | 2 | 
3 files changed, 44 insertions, 23 deletions
diff --git a/indra/newview/llpaneloutfitedit.cpp b/indra/newview/llpaneloutfitedit.cpp index ea7d233333..54776ca2f7 100644 --- a/indra/newview/llpaneloutfitedit.cpp +++ b/indra/newview/llpaneloutfitedit.cpp @@ -564,7 +564,8 @@ void LLPanelOutfitEdit::onSearchEdit(const std::string& string)  void LLPanelOutfitEdit::onPlusBtnClicked(void)  { -	LLUUID selected_id = getSelectedItemUUID(); +	LLUUID selected_id; +	getCurrentItemUUID(selected_id);  	if (selected_id.isNull()) return; @@ -651,30 +652,31 @@ void LLPanelOutfitEdit::onEditWearableClicked(void)  void LLPanelOutfitEdit::onInventorySelectionChange()  { -	LLUUID item_uuid = getSelectedItemUUID(); -	if (item_uuid.isNull()) +	uuid_vec_t selected_items; +	getSelectedItemsUUID(selected_items); +	if (selected_items.empty())  	{  		return;  	} +	uuid_vec_t::iterator worn_item = std::find_if(selected_items.begin(), selected_items.end(), boost::bind(&get_is_item_worn, _1)); +	bool can_add = ( worn_item == selected_items.end() ); -	LLViewerInventoryItem* item(gInventory.getItem(item_uuid)); -	if (!item) -	{ -		return; -	} +	mPlusBtn->setEnabled(can_add); -	switch (item->getType()) +	LLViewerInventoryItem* first_item(gInventory.getItem(selected_items.front())); + +	if (can_add &&  +		first_item && +		selected_items.size() == 1 &&  +		first_item->getType() == LLAssetType::AT_BODYPART)  	{ -	case LLAssetType::AT_BODYPART:  		mPlusBtn->setToolTip(getString("replace_body_part")); -		break; -	case LLAssetType::AT_CLOTHING: -	case LLAssetType::AT_OBJECT: +	} +	else +	{  		mPlusBtn->setToolTip(LLStringUtil::null); -	default: -		break;  	} -	 +  	/* Removing add to look inline button (not part of mvp for viewer 2)  	LLRect btn_rect(current_item->getLocalRect().mRight - 50,  					current_item->getLocalRect().mTop, @@ -931,16 +933,15 @@ void LLPanelOutfitEdit::onOutfitChanging(bool started)  	indicator->setVisible(started);  } -LLUUID LLPanelOutfitEdit::getSelectedItemUUID() +void LLPanelOutfitEdit::getCurrentItemUUID(LLUUID& selected_id)  { -	LLUUID selected_id;  	if (mInventoryItemsPanel->getVisible())  	{  		LLFolderViewItem* curr_item = mInventoryItemsPanel->getRootFolder()->getCurSelectedItem(); -		if (!curr_item) return selected_id; +		if (!curr_item) return;  		LLFolderViewEventListener* listenerp  = curr_item->getListener(); -		if (!listenerp) return selected_id; +		if (!listenerp) return;  		selected_id = listenerp->getUUID();  	} @@ -948,8 +949,27 @@ LLUUID LLPanelOutfitEdit::getSelectedItemUUID()  	{  		selected_id = mWearableItemsList->getSelectedUUID();  	} +} + + +void LLPanelOutfitEdit::getSelectedItemsUUID(uuid_vec_t& uuid_list) +{ +	if (mInventoryItemsPanel->getVisible()) +	{ +		std::set<LLUUID> item_set = mInventoryItemsPanel->getRootFolder()->getSelectionList(); + +		std::for_each(item_set.begin(), item_set.end(), boost::bind( &uuid_vec_t::push_back, &uuid_list, _1)); +	} +	else if (mWearablesListViewPanel->getVisible()) +	{ +		std::vector<LLSD> item_set; +		mWearableItemsList->getSelectedValues(item_set); + +		std::for_each(item_set.begin(), item_set.end(), boost::bind( &uuid_vec_t::push_back, &uuid_list, boost::bind(&LLSD::asUUID, _1 ))); + +	} -	return selected_id; +//	return selected_id;  } diff --git a/indra/newview/llpaneloutfitedit.h b/indra/newview/llpaneloutfitedit.h index aa5d00903a..de1bf87fb3 100644 --- a/indra/newview/llpaneloutfitedit.h +++ b/indra/newview/llpaneloutfitedit.h @@ -192,7 +192,8 @@ private:  	void onAddMoreButtonClicked();  	void showFilteredWearablesListView(LLWearableType::EType type);  	void onOutfitChanging(bool started); -	LLUUID getSelectedItemUUID(); +	void getSelectedItemsUUID(uuid_vec_t& uuid_list); +	void getCurrentItemUUID(LLUUID& selected_id);  	LLTextBox*			mCurrentOutfitName;  	LLTextBox*			mStatus; diff --git a/indra/newview/skins/default/xui/en/panel_outfit_edit.xml b/indra/newview/skins/default/xui/en/panel_outfit_edit.xml index fde48d6ba3..10dea659af 100644 --- a/indra/newview/skins/default/xui/en/panel_outfit_edit.xml +++ b/indra/newview/skins/default/xui/en/panel_outfit_edit.xml @@ -190,7 +190,7 @@ It is calculated as border_size + 2*UIResizeBarOverlap                  <layout_panel                   auto_resize="true"                    background_visible="true" -                 bg_alpha_color="DkGray2" +                 bg_alpha_color="Black"                   layout="topleft"                   height="154"                   name="add_button_and_combobox"  | 
