From d21980df98eba5e936621f4184ce8379ea44f9c0 Mon Sep 17 00:00:00 2001 From: Igor Borovkov Date: Tue, 16 Mar 2010 16:34:41 +0200 Subject: 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 --- indra/newview/llpanellandmarks.cpp | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) (limited to 'indra/newview/llpanellandmarks.cpp') diff --git a/indra/newview/llpanellandmarks.cpp b/indra/newview/llpanellandmarks.cpp index 45a8dc4cbe..879fbba9cd 100644 --- a/indra/newview/llpanellandmarks.cpp +++ b/indra/newview/llpanellandmarks.cpp @@ -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(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(TRASH_BUTTON_NAME); trash_btn->setDragAndDropHandler(boost::bind(&LLLandmarksPanel::handleDragAndDropToTrash, this @@ -676,6 +673,8 @@ void LLLandmarksPanel::initListCommandsHandlers() mGearLandmarkMenu = LLUICtrlFactory::getInstance()->createFromFile("menu_places_gear_landmark.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance()); mGearFolderMenu = LLUICtrlFactory::getInstance()->createFromFile("menu_places_gear_folder.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance()); mMenuAdd = LLUICtrlFactory::getInstance()->createFromFile("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) { -- cgit v1.2.3 From b240270552a4409b1a2391b4b8d3de39227e775a Mon Sep 17 00:00:00 2001 From: Igor Borovkov Date: Wed, 17 Mar 2010 16:03:22 +0200 Subject: added my landmarks auto-expansion when new folder gets created EXT-6289 (Clicking the plus button in the Places side panel only lets you add landmarks not folders) added auto-expanding My landmarks Tab when it is closed and Add folder menu item is clicked Reviewed by Mike at https://codereview.productengine.com/secondlife/r/10/ --HG-- branch : product-engine --- indra/newview/llpanellandmarks.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'indra/newview/llpanellandmarks.cpp') diff --git a/indra/newview/llpanellandmarks.cpp b/indra/newview/llpanellandmarks.cpp index 879fbba9cd..4842fcac38 100644 --- a/indra/newview/llpanellandmarks.cpp +++ b/indra/newview/llpanellandmarks.cpp @@ -534,7 +534,7 @@ void LLLandmarksPanel::initLandmarksInventoryPanel() // subscribe to have auto-rename functionality while creating New Folder mLandmarksInventoryPanel->setSelectCallback(boost::bind(&LLInventoryPanel::onSelectionChange, mLandmarksInventoryPanel, _1, _2)); - initAccordion("tab_landmarks", mLandmarksInventoryPanel, true); + mMyLandmarksAccordionTab = initAccordion("tab_landmarks", mLandmarksInventoryPanel, true); } void LLLandmarksPanel::initMyInventoryPanel() @@ -588,7 +588,7 @@ void LLLandmarksPanel::initLandmarksPanel(LLPlacesInventoryPanel* inventory_list inventory_list->saveFolderState(); } -void LLLandmarksPanel::initAccordion(const std::string& accordion_tab_name, LLPlacesInventoryPanel* inventory_list, bool expand_tab) +LLAccordionCtrlTab* LLLandmarksPanel::initAccordion(const std::string& accordion_tab_name, LLPlacesInventoryPanel* inventory_list, bool expand_tab) { LLAccordionCtrlTab* accordion_tab = getChild(accordion_tab_name); @@ -596,6 +596,7 @@ void LLLandmarksPanel::initAccordion(const std::string& accordion_tab_name, LLPl accordion_tab->setDropDownStateChangedCallback( boost::bind(&LLLandmarksPanel::onAccordionExpandedCollapsed, this, _2, inventory_list)); accordion_tab->setDisplayChildren(expand_tab); + return accordion_tab; } void LLLandmarksPanel::onAccordionExpandedCollapsed(const LLSD& param, LLPlacesInventoryPanel* inventory_list) @@ -776,6 +777,11 @@ void LLLandmarksPanel::onAddAction(const LLSD& userdata) const //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)); + + if (mMyLandmarksAccordionTab) + { + mMyLandmarksAccordionTab->changeOpenClose(false); + } } } } -- cgit v1.2.3 From 7b9dc9f8d72d9eb25e1dbc06f78f2fc81ac64ae0 Mon Sep 17 00:00:00 2001 From: Tofu Linden Date: Tue, 23 Mar 2010 13:57:42 +0000 Subject: CID-452 Checker: FORWARD_NULL Function: LLLandmarksPanel::isActionEnabled(const LLSD &) const File: /indra/newview/llpanellandmarks.cpp --- indra/newview/llpanellandmarks.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'indra/newview/llpanellandmarks.cpp') diff --git a/indra/newview/llpanellandmarks.cpp b/indra/newview/llpanellandmarks.cpp index 4842fcac38..e3b8581aca 100644 --- a/indra/newview/llpanellandmarks.cpp +++ b/indra/newview/llpanellandmarks.cpp @@ -946,7 +946,8 @@ bool LLLandmarksPanel::isActionEnabled(const LLSD& userdata) const ) { // disable some commands for multi-selection. EXT-1757 - if (root_folder_view->getSelectedCount() > 1) + if (root_folder_view && + root_folder_view->getSelectedCount() > 1) { return false; } -- cgit v1.2.3