Skip to content
Snippets Groups Projects
Commit 81051206 authored by Tofu Linden's avatar Tofu Linden
Browse files

merge storm-249

parents 704cdf2b 16a973fe
No related branches found
No related tags found
No related merge requests found
...@@ -182,8 +182,26 @@ void LLSidepanelInventory::performActionOnSelection(const std::string &action) ...@@ -182,8 +182,26 @@ void LLSidepanelInventory::performActionOnSelection(const std::string &action)
void LLSidepanelInventory::onWearButtonClicked() void LLSidepanelInventory::onWearButtonClicked()
{ {
performActionOnSelection("wear"); LLPanelMainInventory *panel_main_inventory = mInventoryPanel->findChild<LLPanelMainInventory>("panel_main_inventory");
performActionOnSelection("attach"); if (!panel_main_inventory)
{
llassert(panel_main_inventory != NULL);
return;
}
// Get selected items set.
const std::set<LLUUID> selected_uuids_set = panel_main_inventory->getActivePanel()->getRootFolder()->getSelectionList();
if (selected_uuids_set.empty()) return; // nothing selected
// Convert the set to a vector.
uuid_vec_t selected_uuids_vec;
for (std::set<LLUUID>::const_iterator it = selected_uuids_set.begin(); it != selected_uuids_set.end(); ++it)
{
selected_uuids_vec.push_back(*it);
}
// Wear all selected items.
wear_multiple(selected_uuids_vec, true);
} }
void LLSidepanelInventory::onPlayButtonClicked() void LLSidepanelInventory::onPlayButtonClicked()
...@@ -286,7 +304,7 @@ void LLSidepanelInventory::updateVerbs() ...@@ -286,7 +304,7 @@ void LLSidepanelInventory::updateVerbs()
case LLInventoryType::IT_OBJECT: case LLInventoryType::IT_OBJECT:
case LLInventoryType::IT_ATTACHMENT: case LLInventoryType::IT_ATTACHMENT:
mWearBtn->setVisible(TRUE); mWearBtn->setVisible(TRUE);
mWearBtn->setEnabled(get_can_item_be_worn(item->getLinkedUUID())); mWearBtn->setEnabled(canWearSelected());
mShopBtn->setVisible(FALSE); mShopBtn->setVisible(FALSE);
break; break;
case LLInventoryType::IT_SOUND: case LLInventoryType::IT_SOUND:
...@@ -325,6 +343,28 @@ bool LLSidepanelInventory::canShare() ...@@ -325,6 +343,28 @@ bool LLSidepanelInventory::canShare()
return bridge ? bridge->canShare() : false; return bridge ? bridge->canShare() : false;
} }
bool LLSidepanelInventory::canWearSelected()
{
LLPanelMainInventory* panel_main_inventory =
mInventoryPanel->findChild<LLPanelMainInventory>("panel_main_inventory");
if (!panel_main_inventory)
{
llassert(panel_main_inventory != NULL);
return false;
}
std::set<LLUUID> selected_uuids = panel_main_inventory->getActivePanel()->getRootFolder()->getSelectionList();
for (std::set<LLUUID>::const_iterator it = selected_uuids.begin();
it != selected_uuids.end();
++it)
{
if (!get_can_item_be_worn(*it)) return false;
}
return true;
}
LLInventoryItem *LLSidepanelInventory::getSelectedItem() LLInventoryItem *LLSidepanelInventory::getSelectedItem()
{ {
LLPanelMainInventory *panel_main_inventory = mInventoryPanel->findChild<LLPanelMainInventory>("panel_main_inventory"); LLPanelMainInventory *panel_main_inventory = mInventoryPanel->findChild<LLPanelMainInventory>("panel_main_inventory");
......
...@@ -65,6 +65,8 @@ class LLSidepanelInventory : public LLPanel ...@@ -65,6 +65,8 @@ class LLSidepanelInventory : public LLPanel
void performActionOnSelection(const std::string &action); void performActionOnSelection(const std::string &action);
void updateVerbs(); void updateVerbs();
bool canWearSelected(); // check whether selected items can be worn
// //
// UI Elements // UI Elements
// //
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment