summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMnikolenko Productengine <mnikolenko@productengine.com>2021-02-25 16:55:11 +0200
committerMnikolenko Productengine <mnikolenko@productengine.com>2021-02-25 16:55:11 +0200
commit2d4a894b706d0dcbdc753318c2c400b0d3ee92b7 (patch)
tree39696fbdd1c3526eaef6109d548586c550ba4d96
parent8f717b988ad6a1bc7156d0779b5c7e424c6bf932 (diff)
SL-14901 Add a button on the Landmarks bar to open the Places floater
-rw-r--r--indra/newview/llfavoritesbar.cpp2
-rw-r--r--indra/newview/llnavigationbar.cpp10
-rwxr-xr-xindra/newview/llnavigationbar.h2
-rw-r--r--indra/newview/llpanellandmarks.cpp11
-rw-r--r--indra/newview/llpanellandmarks.h3
-rw-r--r--indra/newview/llpanelplaces.cpp4
-rw-r--r--indra/newview/skins/default/xui/en/panel_navigation_bar.xml26
7 files changed, 49 insertions, 9 deletions
diff --git a/indra/newview/llfavoritesbar.cpp b/indra/newview/llfavoritesbar.cpp
index c76920c9ce..6e01c82fe1 100644
--- a/indra/newview/llfavoritesbar.cpp
+++ b/indra/newview/llfavoritesbar.cpp
@@ -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;
diff --git a/indra/newview/llnavigationbar.cpp b/indra/newview/llnavigationbar.cpp
index 179c64b5c5..19dbbeb60e 100644
--- a/indra/newview/llnavigationbar.cpp
+++ b/indra/newview/llnavigationbar.cpp
@@ -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();
diff --git a/indra/newview/llnavigationbar.h b/indra/newview/llnavigationbar.h
index a44c6dd699..646911a62c 100755
--- a/indra/newview/llnavigationbar.h
+++ b/indra/newview/llnavigationbar.h
@@ -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;
diff --git a/indra/newview/llpanellandmarks.cpp b/indra/newview/llpanellandmarks.cpp
index ccd8497484..d763a6e1ec 100644
--- a/indra/newview/llpanellandmarks.cpp
+++ b/indra/newview/llpanellandmarks.cpp
@@ -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()
diff --git a/indra/newview/llpanellandmarks.h b/indra/newview/llpanellandmarks.h
index c11cbe05ae..2031501f5d 100644
--- a/indra/newview/llpanellandmarks.h
+++ b/indra/newview/llpanellandmarks.h
@@ -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);
diff --git a/indra/newview/llpanelplaces.cpp b/indra/newview/llpanelplaces.cpp
index 53870fb5c7..1f3f58ffa3 100644
--- a/indra/newview/llpanelplaces.cpp
+++ b/indra/newview/llpanelplaces.cpp
@@ -1056,6 +1056,10 @@ void LLPanelPlaces::togglePlaceInfoPanel(BOOL visible)
{
landmarks_panel->setItemSelected(mItem->getUUID(), TRUE);
}
+ else
+ {
+ landmarks_panel->resetSelection();
+ }
}
}
}
diff --git a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
index c7edba21f8..2d5f22d0d8 100644
--- a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
+++ b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
@@ -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