SL-14901 Add a button on the Landmarks bar to open the Places floater

meow-7.2.2
Mnikolenko Productengine 2021-02-25 16:55:11 +02:00
parent 8f717b988a
commit 2d4a894b70
7 changed files with 49 additions and 9 deletions

View File

@ -847,7 +847,7 @@ void LLFavoritesBarCtrl::updateButtons(bool force_update)
int j = first_changed_item_index;
for (; j < mItems.size(); j++)
{
last_new_button = createButton(mItems[j], button_params, last_right_edge);
last_new_button = createButton(mItems[j], button_params, j == 0? last_right_edge + 4 : last_right_edge);
if (!last_new_button)
{
break;

View File

@ -58,6 +58,7 @@
#include "llweb.h"
#include "llhints.h"
#include "llfloatersidepanelcontainer.h"
#include "llinventorymodel.h"
#include "lllandmarkactions.h"
@ -290,6 +291,7 @@ BOOL LLNavigationBar::postBuild()
mBtnBack = getChild<LLPullButton>("back_btn");
mBtnForward = getChild<LLPullButton>("forward_btn");
mBtnHome = getChild<LLButton>("home_btn");
mBtnLandmarks = getChild<LLButton>("landmarks_btn");
mCmbLocation= getChild<LLLocationInputCtrl>("location_combo");
@ -305,6 +307,8 @@ BOOL LLNavigationBar::postBuild()
mBtnHome->setClickedCallback(boost::bind(&LLNavigationBar::onHomeButtonClicked, this));
mBtnLandmarks->setClickedCallback(boost::bind(&LLNavigationBar::onLandmarksButtonClicked, this));
mCmbLocation->setCommitCallback(boost::bind(&LLNavigationBar::onLocationSelection, this));
mTeleportFinishConnection = LLViewerParcelMgr::getInstance()->
@ -401,6 +405,12 @@ void LLNavigationBar::onHomeButtonClicked()
gAgent.teleportHome();
}
void LLNavigationBar::onLandmarksButtonClicked()
{
LLFloaterReg::toggleInstanceOrBringToFront("places");
LLFloaterSidePanelContainer::showPanel("places", LLSD().with("type", "open_landmark_tab"));
}
void LLNavigationBar::onTeleportHistoryMenuItemClicked(const LLSD& userdata)
{
int idx = userdata.asInteger();

View File

@ -119,6 +119,7 @@ private:
void onNavigationButtonHeldUp(LLButton* nav_button);
void onForwardButtonClicked();
void onHomeButtonClicked();
void onLandmarksButtonClicked();
void onLocationSelection();
void onLocationPrearrange(const LLSD& data);
void onTeleportFinished(const LLVector3d& global_agent_pos);
@ -144,6 +145,7 @@ private:
LLPullButton* mBtnBack;
LLPullButton* mBtnForward;
LLButton* mBtnHome;
LLButton* mBtnLandmarks;
LLLocationInputCtrl* mCmbLocation;
LLRect mDefaultNbRect;
LLRect mDefaultFpRect;

View File

@ -65,6 +65,7 @@ static const std::string ADD_BUTTON_NAME = "add_btn";
static const std::string ADD_FOLDER_BUTTON_NAME = "add_folder_btn";
static const std::string TRASH_BUTTON_NAME = "trash_btn";
static const std::string TAB_FAVORITES = "tab_favorites";
// helper functions
static void filter_list(LLPlacesInventoryPanel* inventory_list, const std::string& string);
@ -383,7 +384,7 @@ void LLLandmarksPanel::updateShowFolderState()
void LLLandmarksPanel::setItemSelected(const LLUUID& obj_id, BOOL take_keyboard_focus)
{
if (selectItemInAccordionTab(mFavoritesInventoryPanel, "tab_favorites", obj_id, take_keyboard_focus))
if (selectItemInAccordionTab(mFavoritesInventoryPanel, TAB_FAVORITES, obj_id, take_keyboard_focus))
{
return;
}
@ -506,6 +507,12 @@ void LLLandmarksPanel::updateSortOrder(LLInventoryPanel* panel, bool byDate)
}
}
void LLLandmarksPanel::resetSelection()
{
getChild<LLAccordionCtrlTab>(TAB_FAVORITES)->setDisplayChildren(true);
getChild<LLAccordionCtrlTab>(TAB_FAVORITES)->showAndFocusHeader();
}
// virtual
void LLLandmarksPanel::processParcelInfo(const LLParcelData& parcel_data)
{
@ -550,7 +557,7 @@ void LLLandmarksPanel::initFavoritesInventoryPanel()
initLandmarksPanel(mFavoritesInventoryPanel);
mFavoritesInventoryPanel->getFilter().setEmptyLookupMessage("FavoritesNoMatchingItems");
initAccordion("tab_favorites", mFavoritesInventoryPanel, true);
initAccordion(TAB_FAVORITES, mFavoritesInventoryPanel, true);
}
void LLLandmarksPanel::initLandmarksInventoryPanel()

View File

@ -82,6 +82,8 @@ public:
void updateMenuVisibility(LLUICtrl* menu);
void resetSelection();
protected:
/**
* @return true - if current selected panel is not null and selected item is a landmark
@ -105,6 +107,7 @@ protected:
void updateSortOrder(LLInventoryPanel* panel, bool byDate);
//LLRemoteParcelInfoObserver interface
/*virtual*/ void processParcelInfo(const LLParcelData& parcel_data);
/*virtual*/ void setParcelID(const LLUUID& parcel_id);

View File

@ -1056,6 +1056,10 @@ void LLPanelPlaces::togglePlaceInfoPanel(BOOL visible)
{
landmarks_panel->setItemSelected(mItem->getUUID(), TRUE);
}
else
{
landmarks_panel->resetSelection();
}
}
}
}

View File

@ -151,7 +151,7 @@
layout="topleft"
auto_resize="true"
user_resize="true"
min_width="185"
min_width="237"
name="favorites_layout_panel"
width="320">
<icon
@ -163,18 +163,32 @@
name="resize_handle"
top="4"
width="5" />
<button
height="16"
width="16"
layout="topleft"
mouse_opaque="true"
follows="left|top"
name="landmarks_btn"
tool_tip="My Landmarks"
top="9"
left_pad="10"
image_selected="Icon_Gear"
image_pressed="Icon_Gear"
image_unselected="Icon_Gear"
is_toggle="true">
</button>
<favorites_bar
follows="left|right|top"
font="SansSerifSmall"
height="20"
layout="topleft"
left="0"
left_pad="0"
top="4"
name="favorite"
image_drag_indication="Accordion_ArrowOpened_Off"
tool_tip="Drag Landmarks here for quick access to your favorite places in Second Life!"
width="320">
width="268">
<label
follows="left|top"
height="13"
@ -185,8 +199,8 @@
tool_tip="Drag Landmarks here for quick access to your favorite places in Second Life!"
top="13"
valign="bottom"
width="102">
Favorites Bar
width="205">
Your saved locations will appear here.
</label>
<!-- More button actually is a text box. -->
<more_button