diff options
| author | Eric M. Tulla (BigPapi) <tulla@lindenlab.com> | 2010-01-06 12:24:14 -0500 | 
|---|---|---|
| committer | Eric M. Tulla (BigPapi) <tulla@lindenlab.com> | 2010-01-06 12:24:14 -0500 | 
| commit | c55cb905fbe0964b08725291377d0e4c181b33a9 (patch) | |
| tree | e1d952fd348da0148913789cbf59f9cb07ba9ec8 | |
| parent | faad5eff72f3cfa9ec113bfa861e850e7dd9ef9b (diff) | |
EXT-3668- Trash icon now disables if nothing selected in appearance side panel.
Remove link and delete outfit also correspondingly auto enable / disable properly now.
-Reviewed by nyx
| -rw-r--r-- | indra/newview/llpaneloutfitsinventory.cpp | 29 | ||||
| -rw-r--r-- | indra/newview/llpaneloutfitsinventory.h | 1 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/panel_outfits_inventory_gear_default.xml | 6 | 
3 files changed, 29 insertions, 7 deletions
| diff --git a/indra/newview/llpaneloutfitsinventory.cpp b/indra/newview/llpaneloutfitsinventory.cpp index 8e14074de1..4e26314fc3 100644 --- a/indra/newview/llpaneloutfitsinventory.cpp +++ b/indra/newview/llpaneloutfitsinventory.cpp @@ -303,6 +303,8 @@ void LLPanelOutfitsInventory::onClipboardAction(const LLSD& userdata)  {  	std::string command_name = userdata.asString();  	getActivePanel()->getRootFolder()->doToSelected(getActivePanel()->getModel(),command_name); +	updateListCommands(); +	updateVerbs();  }  void LLPanelOutfitsInventory::onCustomAction(const LLSD& userdata) @@ -343,6 +345,8 @@ void LLPanelOutfitsInventory::onCustomAction(const LLSD& userdata)  	{  		onClipboardAction("delete");  	} +	updateListCommands(); +	updateVerbs();  }  BOOL LLPanelOutfitsInventory::isActionEnabled(const LLSD& userdata) @@ -354,9 +358,9 @@ BOOL LLPanelOutfitsInventory::isActionEnabled(const LLSD& userdata)  		LLFolderView *folder = getActivePanel()->getRootFolder();  		if (folder)  		{ -			can_delete = TRUE;  			std::set<LLUUID> selection_set;  			folder->getSelectionList(selection_set); +			can_delete = (selection_set.size() > 0);  			for (std::set<LLUUID>::iterator iter = selection_set.begin();  				 iter != selection_set.end();  				 ++iter) @@ -375,9 +379,9 @@ BOOL LLPanelOutfitsInventory::isActionEnabled(const LLSD& userdata)  		LLFolderView *folder = getActivePanel()->getRootFolder();  		if (folder)  		{ -			can_delete = TRUE;  			std::set<LLUUID> selection_set;  			folder->getSelectionList(selection_set); +			can_delete = (selection_set.size() > 0);  			for (std::set<LLUUID>::iterator iter = selection_set.begin();  				 iter != selection_set.end();  				 ++iter) @@ -391,10 +395,14 @@ BOOL LLPanelOutfitsInventory::isActionEnabled(const LLSD& userdata)  		}  		return FALSE;  	} +	if (command_name == "rename" || +		command_name == "delete_outfit") +	{ +		return (getCorrectListenerForAction() != NULL) && hasItemsSelected(); +	}  	if (command_name == "edit" ||   		command_name == "wear" || -		command_name == "add" || -		command_name == "remove" +		command_name == "add"  		)  	{  		return (getCorrectListenerForAction() != NULL); @@ -402,6 +410,19 @@ BOOL LLPanelOutfitsInventory::isActionEnabled(const LLSD& userdata)  	return TRUE;  } +bool LLPanelOutfitsInventory::hasItemsSelected() +{ +	bool has_items_selected = false; +	LLFolderView *folder = getActivePanel()->getRootFolder(); +	if (folder) +	{ +		std::set<LLUUID> selection_set; +		folder->getSelectionList(selection_set); +		has_items_selected = (selection_set.size() > 0); +	} +	return has_items_selected; +} +  bool LLPanelOutfitsInventory::handleDragAndDropToTrash(BOOL drop, EDragAndDropType cargo_type, EAcceptance* accept)  {  	*accept = ACCEPT_NO; diff --git a/indra/newview/llpaneloutfitsinventory.h b/indra/newview/llpaneloutfitsinventory.h index 1e084750a0..77ed15dd96 100644 --- a/indra/newview/llpaneloutfitsinventory.h +++ b/indra/newview/llpaneloutfitsinventory.h @@ -114,6 +114,7 @@ protected:  	BOOL isActionEnabled(const LLSD& command_name);  	void onCustomAction(const LLSD& command_name);  	bool handleDragAndDropToTrash(BOOL drop, EDragAndDropType cargo_type, EAcceptance* accept); +	bool hasItemsSelected();  private:  	LLPanel*					mListCommands;  	LLMenuGL*					mMenuGearDefault; diff --git a/indra/newview/skins/default/xui/en/panel_outfits_inventory_gear_default.xml b/indra/newview/skins/default/xui/en/panel_outfits_inventory_gear_default.xml index 7b88fca7c3..56d4528a40 100644 --- a/indra/newview/skins/default/xui/en/panel_outfits_inventory_gear_default.xml +++ b/indra/newview/skins/default/xui/en/panel_outfits_inventory_gear_default.xml @@ -54,7 +54,7 @@  		 parameter="rename" />      </menu_item_call>      <menu_item_call -     label="Remove" +     label="Remove Link"       layout="topleft"       name="remove_link">          <on_click @@ -65,7 +65,7 @@  		 parameter="remove_link" />      </menu_item_call>      <menu_item_call -     label="Delete" +     label="Delete Outfit"       layout="topleft"       name="delete">          <on_click @@ -73,6 +73,6 @@           parameter="delete" />          <on_enable  		 function="panel_outfits_inventory_gear_default.Enable" -		 parameter="delete" /> +		 parameter="delete_outfit" />      </menu_item_call>  </menu> | 
