summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorMaxim Nikolenko <maximnproductengine@lindenlab.com>2026-05-15 19:27:23 +0300
committerGitHub <noreply@github.com>2026-05-15 19:27:23 +0300
commit9e7d3b1654798ab85c8a118dca04999addef854e (patch)
treeefd75bd5aa9fbc8000d33286ccb174ba632857e3 /indra
parent35b7766beed50d87fab486a3064218e434ef36fb (diff)
#5802 Open teleport history with a keystroke
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/llpanelplaces.cpp22
-rw-r--r--indra/newview/llviewermenu.cpp23
-rw-r--r--indra/newview/skins/default/xui/en/menu_viewer.xml7
3 files changed, 51 insertions, 1 deletions
diff --git a/indra/newview/llpanelplaces.cpp b/indra/newview/llpanelplaces.cpp
index 5c866905d6..5dd4960542 100644
--- a/indra/newview/llpanelplaces.cpp
+++ b/indra/newview/llpanelplaces.cpp
@@ -84,6 +84,7 @@ static const std::string LANDMARK_INFO_TYPE = "landmark";
static const std::string REMOTE_PLACE_INFO_TYPE = "remote_place";
static const std::string TELEPORT_HISTORY_INFO_TYPE = "teleport_history";
static const std::string LANDMARK_TAB_INFO_TYPE = "open_landmark_tab";
+static const std::string TELEPORT_HISTORY_TAB_INFO_TYPE = "open_teleport_history_tab";
// Support for secondlife:///app/parcel/{UUID}/about SLapps
class LLParcelHandler : public LLCommandHandler
@@ -411,6 +412,15 @@ void LLPanelPlaces::onOpen(const LLSD& key)
// Update the buttons at the bottom of the panel
updateVerbs();
}
+ else if (key_type == TELEPORT_HISTORY_TAB_INFO_TYPE)
+ {
+ // toggle twice, similar to LANDMARK_TAB_INFO_TYPE
+ togglePlaceInfoPanel(false);
+ mPlaceInfoType = key_type;
+ togglePlaceInfoPanel(false);
+ onTabSelected();
+ updateVerbs();
+ }
else if (key_type == CREATE_PICK_TYPE)
{
LLUUID item_id = key["item_id"];
@@ -1104,6 +1114,18 @@ void LLPanelPlaces::togglePlaceInfoPanel(bool visible)
}
}
}
+ else if (mPlaceInfoType == TELEPORT_HISTORY_TAB_INFO_TYPE)
+ {
+ mLandmarkInfo->setVisible(false);
+ mPlaceProfile->setVisible(false);
+ if (!visible)
+ {
+ if (LLPanel* teleport_history_panel = mTabContainer->getPanelByName("Teleport History"))
+ {
+ mTabContainer->selectTabPanel(teleport_history_panel);
+ }
+ }
+ }
}
// virtual
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index 46dfa61870..129d5477f1 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -5183,6 +5183,27 @@ void handle_link_objects()
}
}
+void handle_unlink_objects()
+{
+ if (LLSelectMgr::getInstance()->getSelection()->isEmpty())
+ {
+ LLPanel* visited_panel = LLFloaterSidePanelContainer::getPanel("places", "Teleport History");
+ if (visited_panel && visited_panel->isInVisibleChain())
+ {
+ LLFloaterReg::hideInstance("places");
+ }
+ else
+ {
+ LLFloaterReg::toggleInstanceOrBringToFront("places");
+ LLFloaterSidePanelContainer::showPanel("places", LLSD().with("type", "open_teleport_history_tab"));
+ }
+ }
+ else
+ {
+ LLSelectMgr::getInstance()->unlinkObjects();
+ }
+}
+
// You can return an object to its owner if it is on your land.
class LLObjectReturn : public view_listener_t
{
@@ -9940,7 +9961,7 @@ void initialize_menus()
view_listener_t::addMenu(new LLToolsUseSelectionForGrid(), "Tools.UseSelectionForGrid");
view_listener_t::addMenu(new LLToolsSelectNextPartFace(), "Tools.SelectNextPart");
commit.add("Tools.Link", boost::bind(&handle_link_objects));
- commit.add("Tools.Unlink", boost::bind(&LLSelectMgr::unlinkObjects, LLSelectMgr::getInstance()));
+ commit.add("Tools.Unlink", boost::bind(&handle_unlink_objects));
view_listener_t::addMenu(new LLToolsStopAllAnimations(), "Tools.StopAllAnimations");
view_listener_t::addMenu(new LLToolsReleaseKeys(), "Tools.ReleaseKeys");
view_listener_t::addMenu(new LLToolsEnableReleaseKeys(), "Tools.EnableReleaseKeys");
diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml
index 953398c7bd..3364b831b2 100644
--- a/indra/newview/skins/default/xui/en/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/en/menu_viewer.xml
@@ -44,6 +44,13 @@
function="Tools.Link"/>
</menu_item_call>
<menu_item_call
+ label="Visited places..."
+ name="Visited Places"
+ shortcut="control|shift|L">
+ <menu_item_call.on_click
+ function="Tools.Unlink"/>
+ </menu_item_call>
+ <menu_item_call
label="Picks..."
name="Picks">
<menu_item_call.on_click