fixed showstopper EXT-6289 (Clicking the plus button in the Places side panel only lets you add landmarks not folders)

- PLUS button works as GEAR button and PLUS button on inventory panel (show context menu on click)
- "Add a folder" menu item is always enabled (except for received folder)
- clicking "Add a folder" menu item creates a folder in My Landmarks tab no matter what has been selected in the Places panel before

Reviewed by Mike at https://codereview.productengine.com/secondlife/r/10/

--HG--
branch : product-engine
meow-7.2.2
Igor Borovkov 2010-03-16 16:34:41 +02:00
parent 163077bd98
commit d21980df98
2 changed files with 11 additions and 11 deletions

View File

@ -656,9 +656,6 @@ void LLLandmarksPanel::initListCommandsHandlers()
mListCommands->childSetAction(OPTIONS_BUTTON_NAME, boost::bind(&LLLandmarksPanel::onActionsButtonClick, this));
mListCommands->childSetAction(TRASH_BUTTON_NAME, boost::bind(&LLLandmarksPanel::onTrashButtonClick, this));
mListCommands->getChild<LLButton>(ADD_BUTTON_NAME)->setHeldDownCallback(boost::bind(&LLLandmarksPanel::onAddButtonHeldDown, this));
static const LLSD add_landmark_command("add_landmark");
mListCommands->childSetAction(ADD_BUTTON_NAME, boost::bind(&LLLandmarksPanel::onAddAction, this, add_landmark_command));
LLDragAndDropButton* trash_btn = mListCommands->getChild<LLDragAndDropButton>(TRASH_BUTTON_NAME);
trash_btn->setDragAndDropHandler(boost::bind(&LLLandmarksPanel::handleDragAndDropToTrash, this
@ -676,6 +673,8 @@ void LLLandmarksPanel::initListCommandsHandlers()
mGearLandmarkMenu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>("menu_places_gear_landmark.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
mGearFolderMenu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>("menu_places_gear_folder.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
mMenuAdd = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>("menu_place_add_button.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
mListCommands->childSetAction(ADD_BUTTON_NAME, boost::bind(&LLLandmarksPanel::showActionMenu, this, mMenuAdd, ADD_BUTTON_NAME));
}
@ -713,11 +712,6 @@ void LLLandmarksPanel::onActionsButtonClick()
showActionMenu(menu,OPTIONS_BUTTON_NAME);
}
void LLLandmarksPanel::onAddButtonHeldDown()
{
showActionMenu(mMenuAdd,ADD_BUTTON_NAME);
}
void LLLandmarksPanel::showActionMenu(LLMenuGL* menu, std::string spawning_view_name)
{
if (menu)
@ -777,6 +771,12 @@ void LLLandmarksPanel::onAddAction(const LLSD& userdata) const
"category"), gInventory.findCategoryUUIDForType(
LLFolderType::FT_LANDMARK));
}
else
{
//in case My Landmarks tab is completely empty (thus cannot be determined as being selected)
menu_create_inventory_item(mLandmarksInventoryPanel->getRootFolder(), NULL, LLSD("category"),
gInventory.findCategoryUUIDForType(LLFolderType::FT_LANDMARK));
}
}
}
@ -917,7 +917,7 @@ bool LLLandmarksPanel::isActionEnabled(const LLSD& userdata) const
return false;
}
}
else if (!root_folder_view)
else if (!root_folder_view && "category" != command_name)
{
return false;
}
@ -953,7 +953,8 @@ bool LLLandmarksPanel::isActionEnabled(const LLSD& userdata) const
// ... but except Received folder
return !isReceivedFolderSelected();
}
else return false;
//"Add a folder" is enabled by default (case when My Landmarks is empty)
else return true;
}
else if("create_pick" == command_name)
{

View File

@ -121,7 +121,6 @@ private:
void updateListCommands();
void onActionsButtonClick();
void showActionMenu(LLMenuGL* menu, std::string spawning_view_name);
void onAddButtonHeldDown();
void onTrashButtonClick() const;
void onAddAction(const LLSD& command_name) const;
void onClipboardAction(const LLSD& command_name) const;