MAINT-971 : [PUBLIC]Renaming a new inventory item while filtering item names

renames parent folder instead.   Reviewed by Kelly
master
simon@Simon-PC.lindenlab.com 2012-07-02 16:40:18 -07:00
parent a96a260a4d
commit f199b298b4
4 changed files with 42 additions and 27 deletions

View File

@ -440,7 +440,7 @@ void show_item_original(const LLUUID& item_uuid)
//sidetray inventory panel
LLSidepanelInventory *sidepanel_inventory = LLFloaterSidePanelContainer::getPanel<LLSidepanelInventory>("inventory");
bool reset_inventory_filter = !floater_inventory->isInVisibleChain();
bool do_reset_inventory_filter = !floater_inventory->isInVisibleChain();
LLInventoryPanel* active_panel = LLInventoryPanel::getActiveInventoryPanel();
if (!active_panel)
@ -460,37 +460,49 @@ void show_item_original(const LLUUID& item_uuid)
}
active_panel->setSelection(gInventory.getLinkedItemID(item_uuid), TAKE_FOCUS_NO);
if(reset_inventory_filter)
if(do_reset_inventory_filter)
{
//inventory floater
bool floater_inventory_visible = false;
LLFloaterReg::const_instance_list_t& inst_list = LLFloaterReg::getFloaterList("inventory");
for (LLFloaterReg::const_instance_list_t::const_iterator iter = inst_list.begin(); iter != inst_list.end(); ++iter)
{
LLFloaterInventory* floater_inventory = dynamic_cast<LLFloaterInventory*>(*iter);
if (floater_inventory)
{
LLPanelMainInventory* main_inventory = floater_inventory->getMainInventoryPanel();
main_inventory->onFilterEdit("");
if(floater_inventory->getVisible())
{
floater_inventory_visible = true;
}
}
}
if(sidepanel_inventory && !floater_inventory_visible)
{
LLPanelMainInventory* main_inventory = sidepanel_inventory->getMainInventoryPanel();
main_inventory->onFilterEdit("");
}
reset_inventory_filter();
}
}
void reset_inventory_filter()
{
//inventory floater
bool floater_inventory_visible = false;
LLFloaterReg::const_instance_list_t& inst_list = LLFloaterReg::getFloaterList("inventory");
for (LLFloaterReg::const_instance_list_t::const_iterator iter = inst_list.begin(); iter != inst_list.end(); ++iter)
{
LLFloaterInventory* floater_inventory = dynamic_cast<LLFloaterInventory*>(*iter);
if (floater_inventory)
{
LLPanelMainInventory* main_inventory = floater_inventory->getMainInventoryPanel();
main_inventory->onFilterEdit("");
if(floater_inventory->getVisible())
{
floater_inventory_visible = true;
}
}
}
if(!floater_inventory_visible)
{
LLSidepanelInventory *sidepanel_inventory = LLFloaterSidePanelContainer::getPanel<LLSidepanelInventory>("inventory");
if (sidepanel_inventory)
{
LLPanelMainInventory* main_inventory = sidepanel_inventory->getMainInventoryPanel();
if (main_inventory)
{
main_inventory->onFilterEdit("");
}
}
}
}
void open_outbox()
{
LLFloaterReg::showInstance("outbox");

View File

@ -56,6 +56,7 @@ void show_item_profile(const LLUUID& item_uuid);
void show_task_item_profile(const LLUUID& item_uuid, const LLUUID& object_id);
void show_item_original(const LLUUID& item_uuid);
void reset_inventory_filter();
void rename_category(LLInventoryModel* model, const LLUUID& cat_id, const std::string& new_name);

View File

@ -966,6 +966,7 @@ void LLInventoryPanel::doToSelected(const LLSD& userdata)
void LLInventoryPanel::doCreate(const LLSD& userdata)
{
reset_inventory_filter();
menu_create_inventory_item(mFolderRoot, LLFolderBridge::sSelf.get(), userdata);
}

View File

@ -306,6 +306,7 @@ void LLPanelMainInventory::newWindow()
void LLPanelMainInventory::doCreate(const LLSD& userdata)
{
reset_inventory_filter();
menu_create_inventory_item(getPanel()->getRootFolder(), NULL, userdata);
}