Merge branch 'DRTVWR-518-ui' of https://bitbucket.org/lindenlab/viewer
commit
768a31906a
|
|
@ -295,7 +295,6 @@ public:
|
|||
void setAllowTerraform(BOOL b){setParcelFlag(PF_ALLOW_TERRAFORM, b); }
|
||||
void setAllowDamage(BOOL b) { setParcelFlag(PF_ALLOW_DAMAGE, b); }
|
||||
void setAllowFly(BOOL b) { setParcelFlag(PF_ALLOW_FLY, b); }
|
||||
void setAllowLandmark(BOOL b){ setParcelFlag(PF_ALLOW_LANDMARK, b); }
|
||||
void setAllowGroupScripts(BOOL b) { setParcelFlag(PF_ALLOW_GROUP_SCRIPTS, b); }
|
||||
void setAllowOtherScripts(BOOL b) { setParcelFlag(PF_ALLOW_OTHER_SCRIPTS, b); }
|
||||
void setAllowDeedToGroup(BOOL b) { setParcelFlag(PF_ALLOW_DEED_TO_GROUP, b); }
|
||||
|
|
@ -476,11 +475,6 @@ public:
|
|||
BOOL getAllowFly() const
|
||||
{ return (mParcelFlags & PF_ALLOW_FLY) ? TRUE : FALSE; }
|
||||
|
||||
// Remove permission restrictions for creating landmarks.
|
||||
// We should eventually remove this flag completely.
|
||||
BOOL getAllowLandmark() const
|
||||
{ return TRUE; }
|
||||
|
||||
BOOL getAllowGroupScripts() const
|
||||
{ return (mParcelFlags & PF_ALLOW_GROUP_SCRIPTS) ? TRUE : FALSE; }
|
||||
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ const U32 PF_ALLOW_FLY = 1 << 0;// Can start flying
|
|||
const U32 PF_ALLOW_OTHER_SCRIPTS= 1 << 1;// Scripts by others can run.
|
||||
const U32 PF_FOR_SALE = 1 << 2;// Can buy this land
|
||||
const U32 PF_FOR_SALE_OBJECTS = 1 << 7;// Can buy all objects on this land
|
||||
const U32 PF_ALLOW_LANDMARK = 1 << 3;
|
||||
const U32 PF_ALLOW_LANDMARK = 1 << 3;// Always true/deprecated
|
||||
const U32 PF_ALLOW_TERRAFORM = 1 << 4;
|
||||
const U32 PF_ALLOW_DAMAGE = 1 << 5;
|
||||
const U32 PF_CREATE_OBJECTS = 1 << 6;
|
||||
|
|
|
|||
|
|
@ -317,8 +317,9 @@ void FSFloaterPlaceDetails::onOpen(const LLSD& key)
|
|||
mGlobalPos = gAgent.getPositionGlobal();
|
||||
}
|
||||
|
||||
LLUUID dest_folder = key["dest_folder"];
|
||||
mPanelLandmarkInfo->resetLocation();
|
||||
mPanelLandmarkInfo->setInfoType(LLPanelPlaceInfo::CREATE_LANDMARK);
|
||||
mPanelLandmarkInfo->setInfoAndCreateLandmark(dest_folder);
|
||||
mPanelLandmarkInfo->setHeaderVisible(FALSE);
|
||||
mPanelLandmarkInfo->displayParcelInfo(LLUUID(), mGlobalPos);
|
||||
|
||||
|
|
|
|||
|
|
@ -417,6 +417,7 @@ LLAgent::LLAgent() :
|
|||
mTeleportFinishedSlot(),
|
||||
mTeleportFailedSlot(),
|
||||
mIsMaturityRatingChangingDuringTeleport(false),
|
||||
mTPNeedsNeabyChatSeparator(false),
|
||||
mMaturityRatingChange(0U),
|
||||
mIsDoSendMaturityPreferenceToServer(false),
|
||||
mMaturityPreferenceRequestId(0U),
|
||||
|
|
@ -596,10 +597,6 @@ void LLAgent::cleanup()
|
|||
{
|
||||
mTeleportFailedSlot.disconnect();
|
||||
}
|
||||
if (mParcelMgrConnection.connected())
|
||||
{
|
||||
mParcelMgrConnection.disconnect();
|
||||
}
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
@ -4695,10 +4692,7 @@ void LLAgent::clearTeleportRequest()
|
|||
LLVoiceClient::getInstance()->setHidden(FALSE);
|
||||
}
|
||||
mTeleportRequest.reset();
|
||||
if (mParcelMgrConnection.connected())
|
||||
{
|
||||
mParcelMgrConnection.disconnect();
|
||||
}
|
||||
mTPNeedsNeabyChatSeparator = false;
|
||||
}
|
||||
|
||||
void LLAgent::setMaturityRatingChangeDuringTeleport(U8 pMaturityRatingChange)
|
||||
|
|
@ -4710,7 +4704,7 @@ void LLAgent::setMaturityRatingChangeDuringTeleport(U8 pMaturityRatingChange)
|
|||
void LLAgent::sheduleTeleportIM()
|
||||
{
|
||||
// is supposed to be called during teleport so we are still waiting for parcel
|
||||
mParcelMgrConnection = addParcelChangedCallback(onParcelReadyAfterTeleport);
|
||||
mTPNeedsNeabyChatSeparator = true;
|
||||
}
|
||||
|
||||
bool LLAgent::hasPendingTeleportRequest()
|
||||
|
|
@ -4760,6 +4754,12 @@ void LLAgent::startTeleportRequest()
|
|||
void LLAgent::handleTeleportFinished()
|
||||
{
|
||||
LL_INFOS("Teleport") << "Agent handling teleport finished." << LL_ENDL;
|
||||
if (mTPNeedsNeabyChatSeparator)
|
||||
{
|
||||
// parcel is ready at this point
|
||||
addTPNearbyChatSeparator();
|
||||
mTPNeedsNeabyChatSeparator = false;
|
||||
}
|
||||
clearTeleportRequest();
|
||||
mTeleportCanceled.reset();
|
||||
if (mIsMaturityRatingChangingDuringTeleport)
|
||||
|
|
@ -4823,14 +4823,11 @@ void LLAgent::handleTeleportFailed()
|
|||
mIsMaturityRatingChangingDuringTeleport = false;
|
||||
}
|
||||
|
||||
if (mParcelMgrConnection.connected())
|
||||
{
|
||||
mParcelMgrConnection.disconnect();
|
||||
}
|
||||
mTPNeedsNeabyChatSeparator = false;
|
||||
}
|
||||
|
||||
/*static*/
|
||||
void LLAgent::onParcelReadyAfterTeleport()
|
||||
void LLAgent::addTPNearbyChatSeparator()
|
||||
{
|
||||
LLViewerRegion* agent_region = gAgent.getRegion();
|
||||
LLParcel* agent_parcel = LLViewerParcelMgr::getInstance()->getAgentParcel();
|
||||
|
|
@ -4866,11 +4863,6 @@ void LLAgent::onParcelReadyAfterTeleport()
|
|||
args["do_not_log"] = TRUE;
|
||||
nearby_chat->addMessage(chat, true, args);
|
||||
}
|
||||
|
||||
if (gAgent.mParcelMgrConnection.connected())
|
||||
{
|
||||
gAgent.mParcelMgrConnection.disconnect();
|
||||
}
|
||||
}
|
||||
|
||||
/*static*/
|
||||
|
|
|
|||
|
|
@ -768,9 +768,9 @@ private:
|
|||
LLTeleportRequestPtr mTeleportCanceled;
|
||||
boost::signals2::connection mTeleportFinishedSlot;
|
||||
boost::signals2::connection mTeleportFailedSlot;
|
||||
boost::signals2::connection mParcelMgrConnection;
|
||||
|
||||
bool mIsMaturityRatingChangingDuringTeleport;
|
||||
bool mTPNeedsNeabyChatSeparator;
|
||||
U8 mMaturityRatingChange;
|
||||
|
||||
bool hasPendingTeleportRequest();
|
||||
|
|
@ -793,7 +793,7 @@ private:
|
|||
void handleTeleportFinished();
|
||||
void handleTeleportFailed();
|
||||
|
||||
static void onParcelReadyAfterTeleport();
|
||||
static void addTPNearbyChatSeparator();
|
||||
static void onCapabilitiesReceivedAfterTeleport();
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -788,6 +788,7 @@ public:
|
|||
break;
|
||||
case CHAT_SOURCE_SYSTEM:
|
||||
icon->setValue(LLSD("SL_Logo"));
|
||||
break;
|
||||
case CHAT_SOURCE_TELEPORT:
|
||||
icon->setValue(LLSD("Command_Destinations_Icon"));
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -228,23 +228,6 @@ LLViewerInventoryItem* LLLandmarkActions::findLandmarkForAgentPos()
|
|||
return findLandmarkForGlobalPos(gAgent.getPositionGlobal());
|
||||
}
|
||||
|
||||
bool LLLandmarkActions::canCreateLandmarkHere()
|
||||
{
|
||||
LLParcel* agent_parcel = LLViewerParcelMgr::getInstance()->getAgentParcel();
|
||||
if(!agent_parcel)
|
||||
{
|
||||
LL_WARNS() << "No agent region" << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
if (agent_parcel->getAllowLandmark()
|
||||
|| LLViewerParcelMgr::isParcelOwnedByAgent(agent_parcel, GP_LAND_ALLOW_LANDMARK))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
void LLLandmarkActions::createLandmarkHere(
|
||||
const std::string& name,
|
||||
const std::string& desc,
|
||||
|
|
@ -261,11 +244,6 @@ void LLLandmarkActions::createLandmarkHere(
|
|||
LL_WARNS() << "No agent parcel" << LL_ENDL;
|
||||
return;
|
||||
}
|
||||
if (!canCreateLandmarkHere())
|
||||
{
|
||||
LLNotificationsUtil::add("CannotCreateLandmarkNotOwner");
|
||||
return;
|
||||
}
|
||||
|
||||
create_inventory_item(gAgent.getID(), gAgent.getSessionID(),
|
||||
folder_id, LLTransactionID::tnull,
|
||||
|
|
|
|||
|
|
@ -72,12 +72,6 @@ public:
|
|||
*/
|
||||
static LLViewerInventoryItem* findLandmarkForAgentPos();
|
||||
|
||||
|
||||
/**
|
||||
* @brief Checks whether agent has rights to create landmark for current parcel.
|
||||
*/
|
||||
static bool canCreateLandmarkHere();
|
||||
|
||||
/**
|
||||
* @brief Creates landmark for current parcel.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -106,6 +106,18 @@ void LLPanelLandmarkInfo::resetLocation()
|
|||
|
||||
// virtual
|
||||
void LLPanelLandmarkInfo::setInfoType(EInfoType type)
|
||||
{
|
||||
LLUUID dest_folder;
|
||||
setInfoType(type, dest_folder);
|
||||
}
|
||||
|
||||
// Sets CREATE_LANDMARK infotype and creates landmark at desired folder
|
||||
void LLPanelLandmarkInfo::setInfoAndCreateLandmark(const LLUUID& fodler_id)
|
||||
{
|
||||
setInfoType(CREATE_LANDMARK, fodler_id);
|
||||
}
|
||||
|
||||
void LLPanelLandmarkInfo::setInfoType(EInfoType type, const LLUUID &folder_id)
|
||||
{
|
||||
LLPanel* landmark_info_panel = getChild<LLPanel>("landmark_info_panel");
|
||||
|
||||
|
|
@ -183,7 +195,7 @@ void LLPanelLandmarkInfo::setInfoType(EInfoType type)
|
|||
// remote parcel request to complete.
|
||||
if (!LLLandmarkActions::landmarkAlreadyExists())
|
||||
{
|
||||
createLandmark(LLUUID());
|
||||
createLandmark(folder_id);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -43,8 +43,12 @@ public:
|
|||
|
||||
/*virtual*/ void resetLocation();
|
||||
|
||||
// If landmark doesn't exists, will create it at default folder
|
||||
/*virtual*/ void setInfoType(EInfoType type);
|
||||
|
||||
// Sets CREATE_LANDMARK infotype and creates landmark at desired folder
|
||||
void setInfoAndCreateLandmark(const LLUUID& fodler_id);
|
||||
|
||||
/*virtual*/ void processParcelInfo(const LLParcelData& parcel_data);
|
||||
|
||||
// Displays landmark owner, creator and creation date info.
|
||||
|
|
@ -59,13 +63,17 @@ public:
|
|||
// Select current landmark folder in combobox.
|
||||
BOOL setLandmarkFolder(const LLUUID& id);
|
||||
|
||||
// Create a landmark for the current location
|
||||
// in a folder specified by folder_id.
|
||||
void createLandmark(const LLUUID& folder_id);
|
||||
|
||||
static std::string getFullFolderName(const LLViewerInventoryCategory* cat);
|
||||
|
||||
private:
|
||||
// Create a landmark for the current location
|
||||
// in a folder specified by folder_id.
|
||||
// Expects title and description to be initialized
|
||||
void createLandmark(const LLUUID& folder_id);
|
||||
|
||||
// If landmark doesn't exists, will create it at specified folder
|
||||
void setInfoType(EInfoType type, const LLUUID &folder_id);
|
||||
|
||||
void populateFoldersList();
|
||||
|
||||
LLTextBox* mOwner;
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@
|
|||
#include "llagent.h"
|
||||
#include "llagentpicksinfo.h"
|
||||
#include "llagentui.h"
|
||||
#include "llavataractions.h"
|
||||
#include "llcallbacklist.h"
|
||||
#include "lldndbutton.h"
|
||||
#include "llfloatersidepanelcontainer.h"
|
||||
|
|
@ -846,9 +847,16 @@ void LLLandmarksPanel::onAddAction(const LLSD& userdata) const
|
|||
}
|
||||
else
|
||||
{
|
||||
LLSD args;
|
||||
args["type"] = "create_landmark";
|
||||
if (view_model->getInventoryType()
|
||||
== LLInventoryType::IT_CATEGORY)
|
||||
{
|
||||
args["dest_folder"] = view_model->getUUID();
|
||||
}
|
||||
// <FS:Ansariel> FIRE-817: Separate place details floater
|
||||
//LLFloaterSidePanelContainer::showPanel("places", LLSD().with("type", "create_landmark"));
|
||||
FSFloaterPlaceDetails::showPlaceDetails(LLSD().with("type", "create_landmark"));
|
||||
//LLFloaterSidePanelContainer::showPanel("places", args);
|
||||
FSFloaterPlaceDetails::showPlaceDetails(args);
|
||||
// </FS:Ansariel>
|
||||
}
|
||||
// [RLVa:KB] - Checked: 2012-02-08 (RLVa-1.4.5) | Added: RLVa-1.4.5
|
||||
|
|
@ -1138,28 +1146,56 @@ bool LLLandmarksPanel::isActionEnabled(const LLSD& userdata) const
|
|||
}
|
||||
return false;
|
||||
}
|
||||
// [RLVa:KB] - Checked: 2012-02-08 (RLVa-1.4.5) | Added: RLVa-1.4.5
|
||||
else if("add_landmark" == command_name)
|
||||
{
|
||||
std::string current_tabname;
|
||||
LLView* accordion_view = findChildView("landmarks_accordion");
|
||||
LLAccordionCtrl* accordion = dynamic_cast<LLAccordionCtrl*>(accordion_view);
|
||||
if (accordion)
|
||||
{
|
||||
current_tabname = accordion->getSelectedTab()->getName();
|
||||
}
|
||||
else
|
||||
{
|
||||
LLTabContainer* tabcontainer = dynamic_cast<LLTabContainer*>(accordion_view);
|
||||
if (tabcontainer)
|
||||
{
|
||||
current_tabname = tabcontainer->getCurrentPanel()->getName();
|
||||
}
|
||||
}
|
||||
else if ("add_landmark" == command_name)
|
||||
{
|
||||
bool is_single_selection = root_folder_view && root_folder_view->getSelectedCount() == 1;
|
||||
if (!is_single_selection)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
LLFolderViewModelItemInventory* view_model = getCurSelectedViewModelItem();
|
||||
if (!view_model || view_model->getInventoryType() != LLInventoryType::IT_CATEGORY)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
LLViewerInventoryItem* landmark = LLLandmarkActions::findLandmarkForAgentPos();
|
||||
if (landmark)
|
||||
{
|
||||
//already exists
|
||||
return false;
|
||||
}
|
||||
// <FS:Ansariel> RLVa and library check
|
||||
//return true;
|
||||
std::string current_tabname;
|
||||
LLView* accordion_view = findChildView("landmarks_accordion");
|
||||
LLAccordionCtrl* accordion = dynamic_cast<LLAccordionCtrl*>(accordion_view);
|
||||
if (accordion)
|
||||
{
|
||||
current_tabname = accordion->getSelectedTab()->getName();
|
||||
}
|
||||
else
|
||||
{
|
||||
LLTabContainer* tabcontainer = dynamic_cast<LLTabContainer*>(accordion_view);
|
||||
if (tabcontainer)
|
||||
{
|
||||
current_tabname = tabcontainer->getCurrentPanel()->getName();
|
||||
}
|
||||
}
|
||||
|
||||
return !gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC) && current_tabname != "tab_library";
|
||||
}
|
||||
// [/RLVa:KB]
|
||||
return !gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC) && current_tabname != "tab_library";
|
||||
}
|
||||
else if ("share" == command_name)
|
||||
{
|
||||
if (!mCurrentSelectedList)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (!LLAvatarActions::canShareSelectedItems(mCurrentSelectedList))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_WARNS() << "Unprocessed command has come: " << command_name << LL_ENDL;
|
||||
|
|
@ -1187,6 +1223,10 @@ void LLLandmarksPanel::onCustomAction(const LLSD& userdata)
|
|||
{
|
||||
doActionOnCurSelectedLandmark(boost::bind(&LLLandmarksPanel::doCreatePick, this, _1));
|
||||
}
|
||||
else if ("share" == command_name && mCurrentSelectedList)
|
||||
{
|
||||
LLAvatarActions::shareWithAvatars(mCurrentSelectedList);
|
||||
}
|
||||
else if ("restore" == command_name && mCurrentSelectedList)
|
||||
{
|
||||
mCurrentSelectedList->doToSelected(userdata);
|
||||
|
|
|
|||
|
|
@ -422,7 +422,7 @@ void LLPanelPlaces::onOpen(const LLSD& key)
|
|||
updateVerbs();
|
||||
}
|
||||
// </FS:Ansariel> Toggle teleport history panel directly
|
||||
else
|
||||
else // "create_landmark"
|
||||
{
|
||||
mFilterEditor->clear();
|
||||
onFilterEdit("", false);
|
||||
|
|
@ -443,7 +443,8 @@ void LLPanelPlaces::onOpen(const LLSD& key)
|
|||
}
|
||||
else if (mPlaceInfoType == CREATE_LANDMARK_INFO_TYPE)
|
||||
{
|
||||
mLandmarkInfo->setInfoType(LLPanelPlaceInfo::CREATE_LANDMARK);
|
||||
LLUUID dest_folder = key["dest_folder"];
|
||||
mLandmarkInfo->setInfoAndCreateLandmark(dest_folder);
|
||||
|
||||
if (key.has("x") && key.has("y") && key.has("z"))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -466,9 +466,7 @@ LLContextMenu* LLTeleportHistoryPanel::ContextMenu::createMenu()
|
|||
// (N.B. callbacks don't take const refs as mID is local scope)
|
||||
LLUICtrl::CommitCallbackRegistry::ScopedRegistrar registrar;
|
||||
|
||||
registrar.add("TeleportHistory.Teleport", boost::bind(&LLTeleportHistoryPanel::ContextMenu::onTeleport, this));
|
||||
registrar.add("TeleportHistory.MoreInformation",boost::bind(&LLTeleportHistoryPanel::ContextMenu::onInfo, this));
|
||||
registrar.add("TeleportHistory.CopyToClipboard",boost::bind(&LLTeleportHistoryPanel::ContextMenu::onCopyToClipboard, this));
|
||||
registrar.add("TeleportHistory.Action", boost::bind(&LLTeleportHistoryPanel::ContextMenu::onUserAction, this, _2));
|
||||
|
||||
// create the context menu from the XUI
|
||||
llassert(LLMenuGL::sMenuContainer != NULL);
|
||||
|
|
@ -476,14 +474,27 @@ LLContextMenu* LLTeleportHistoryPanel::ContextMenu::createMenu()
|
|||
"menu_teleport_history_item.xml", LLMenuGL::sMenuContainer, LLViewerMenuHolderGL::child_registry_t::instance());
|
||||
}
|
||||
|
||||
void LLTeleportHistoryPanel::ContextMenu::onTeleport()
|
||||
void LLTeleportHistoryPanel::ContextMenu::onUserAction(const LLSD& userdata)
|
||||
{
|
||||
confirmTeleport(mIndex);
|
||||
}
|
||||
|
||||
void LLTeleportHistoryPanel::ContextMenu::onInfo()
|
||||
{
|
||||
LLTeleportHistoryFlatItem::showPlaceInfoPanel(mIndex);
|
||||
std::string command_name = userdata.asString();
|
||||
if ("teleport" == command_name)
|
||||
{
|
||||
confirmTeleport(mIndex);
|
||||
}
|
||||
else if ("view" == command_name)
|
||||
{
|
||||
LLTeleportHistoryFlatItem::showPlaceInfoPanel(mIndex);
|
||||
}
|
||||
else if ("show_on_map" == command_name)
|
||||
{
|
||||
LLTeleportHistoryStorage::getInstance()->showItemOnMap(mIndex);
|
||||
}
|
||||
else if ("copy_slurl" == command_name)
|
||||
{
|
||||
LLVector3d globalPos = LLTeleportHistoryStorage::getInstance()->getItems()[mIndex].mGlobalPos;
|
||||
LLLandmarkActions::getSLURLfromPosGlobal(globalPos,
|
||||
boost::bind(&LLTeleportHistoryPanel::ContextMenu::gotSLURLCallback, _1));
|
||||
}
|
||||
}
|
||||
|
||||
//static
|
||||
|
|
@ -497,13 +508,6 @@ void LLTeleportHistoryPanel::ContextMenu::gotSLURLCallback(const std::string& sl
|
|||
LLNotificationsUtil::add("CopySLURL", args);
|
||||
}
|
||||
|
||||
void LLTeleportHistoryPanel::ContextMenu::onCopyToClipboard()
|
||||
{
|
||||
LLVector3d globalPos = LLTeleportHistoryStorage::getInstance()->getItems()[mIndex].mGlobalPos;
|
||||
LLLandmarkActions::getSLURLfromPosGlobal(globalPos,
|
||||
boost::bind(&LLTeleportHistoryPanel::ContextMenu::gotSLURLCallback, _1));
|
||||
}
|
||||
|
||||
// Not yet implemented; need to remove buildPanel() from constructor when we switch
|
||||
//static LLPanelInjector<LLTeleportHistoryPanel> t_teleport_history("panel_teleport_history");
|
||||
|
||||
|
|
|
|||
|
|
@ -54,9 +54,7 @@ public:
|
|||
|
||||
private:
|
||||
LLContextMenu* createMenu();
|
||||
void onTeleport();
|
||||
void onInfo();
|
||||
void onCopyToClipboard();
|
||||
void onUserAction(const LLSD& userdata);
|
||||
|
||||
static void gotSLURLCallback(const std::string& slurl);
|
||||
|
||||
|
|
|
|||
|
|
@ -33,6 +33,8 @@
|
|||
#include "lldir.h"
|
||||
#include "llteleporthistory.h"
|
||||
#include "llagent.h"
|
||||
#include "llfloaterreg.h"
|
||||
#include "llfloaterworldmap.h"
|
||||
// [RLVa:KB] - Checked: 2010-09-03 (RLVa-1.2.1b)
|
||||
#include "rlvactions.h"
|
||||
// [/RLVa:KB]
|
||||
|
|
@ -270,3 +272,23 @@ void LLTeleportHistoryStorage::goToItem(S32 idx)
|
|||
gAgent.teleportViaLocation(mItems[idx].mGlobalPos);
|
||||
}
|
||||
|
||||
void LLTeleportHistoryStorage::showItemOnMap(S32 idx)
|
||||
{
|
||||
// Validate specified index.
|
||||
if (idx < 0 || idx >= (S32)mItems.size())
|
||||
{
|
||||
LL_WARNS() << "Invalid teleport history index (" << idx << ") specified" << LL_ENDL;
|
||||
dump();
|
||||
return;
|
||||
}
|
||||
|
||||
LLVector3d landmark_global_pos = mItems[idx].mGlobalPos;
|
||||
|
||||
LLFloaterWorldMap* worldmap_instance = LLFloaterWorldMap::getInstance();
|
||||
if (!landmark_global_pos.isExactlyZero() && worldmap_instance)
|
||||
{
|
||||
worldmap_instance->trackLocation(landmark_global_pos);
|
||||
LLFloaterReg::showInstance("world_map", "center");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -107,6 +107,13 @@ public:
|
|||
*/
|
||||
void goToItem(S32 idx);
|
||||
|
||||
/**
|
||||
* Show specific item on map.
|
||||
*
|
||||
* The item is specified by its index (starting from 0).
|
||||
*/
|
||||
void showItemOnMap(S32 idx);
|
||||
|
||||
//private:
|
||||
// [RLVa:KB] - Checked: 2010-09-03 (RLVa-1.2.1b) | Added: RLVa-1.2.1b
|
||||
protected:
|
||||
|
|
|
|||
|
|
@ -1802,6 +1802,7 @@ void LLViewerParcelMgr::processParcelProperties(LLMessageSystem *msg, void **use
|
|||
}
|
||||
parcel->setParcelEnvironmentVersion(parcel_environment_version);
|
||||
LL_DEBUGS("ENVIRONMENT") << "Parcel environment version is " << parcel->getParcelEnvironmentVersion() << LL_ENDL;
|
||||
|
||||
// Notify anything that wants to know when the agent changes parcels
|
||||
gAgent.changeParcels();
|
||||
instance->mTeleportInProgress = FALSE;
|
||||
|
|
|
|||
|
|
@ -2,27 +2,6 @@
|
|||
<context_menu
|
||||
layout="topleft"
|
||||
name="Picks">
|
||||
<menu_item_call
|
||||
label="Info"
|
||||
layout="topleft"
|
||||
name="pick_info">
|
||||
<menu_item_call.on_click
|
||||
function="Pick.Info" />
|
||||
<menu_item_call.on_enable
|
||||
function="Pick.Enable"
|
||||
parameter="info" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Edit"
|
||||
layout="topleft"
|
||||
name="pick_edit"
|
||||
visible="false">
|
||||
<menu_item_call.on_click
|
||||
function="Pick.Edit" />
|
||||
<menu_item_call.on_enable
|
||||
function="Pick.Enable"
|
||||
parameter="edit" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Teleport"
|
||||
layout="topleft"
|
||||
|
|
@ -34,7 +13,28 @@
|
|||
parameter="teleport" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Map"
|
||||
label="View Pick"
|
||||
layout="topleft"
|
||||
name="pick_info">
|
||||
<menu_item_call.on_click
|
||||
function="Pick.Info" />
|
||||
<menu_item_call.on_enable
|
||||
function="Pick.Enable"
|
||||
parameter="info" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Edit Pick"
|
||||
layout="topleft"
|
||||
name="pick_edit"
|
||||
visible="false">
|
||||
<menu_item_call.on_click
|
||||
function="Pick.Edit" />
|
||||
<menu_item_call.on_enable
|
||||
function="Pick.Enable"
|
||||
parameter="edit" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Show on map"
|
||||
layout="topleft"
|
||||
name="pick_map">
|
||||
<menu_item_call.on_click
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
name="menu_folder_gear"
|
||||
visible="false">
|
||||
<menu_item_call
|
||||
label="Add Landmark"
|
||||
label="Landmark current location"
|
||||
layout="topleft"
|
||||
name="add_landmark">
|
||||
<on_click
|
||||
|
|
@ -18,7 +18,7 @@
|
|||
parameter="add_landmark" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Add Folder"
|
||||
label="Create subfolder"
|
||||
layout="topleft"
|
||||
name="add_folder">
|
||||
<on_click
|
||||
|
|
|
|||
|
|
@ -18,7 +18,18 @@
|
|||
parameter="teleport" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="More Information"
|
||||
label="Share"
|
||||
layout="topleft"
|
||||
name="share">
|
||||
<on_click
|
||||
function="Places.LandmarksGear.Custom.Action"
|
||||
parameter="share" />
|
||||
<on_enable
|
||||
function="Places.LandmarksGear.Enable"
|
||||
parameter="share" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="View/Edit Landmark"
|
||||
layout="topleft"
|
||||
name="more_info">
|
||||
<on_click
|
||||
|
|
@ -39,29 +50,27 @@
|
|||
function="Places.LandmarksGear.Enable"
|
||||
parameter="show_on_map" />
|
||||
</menu_item_call>
|
||||
<menu_item_separator
|
||||
layout="topleft" />
|
||||
<menu_item_call
|
||||
label="Add Landmark"
|
||||
label="Copy SLurl"
|
||||
layout="topleft"
|
||||
name="add_landmark">
|
||||
name="copy_slurl">
|
||||
<on_click
|
||||
function="Places.LandmarksGear.Add.Action"
|
||||
parameter="add_landmark" />
|
||||
function="Places.LandmarksGear.CopyPaste.Action"
|
||||
parameter="copy_slurl" />
|
||||
<on_enable
|
||||
function="Places.LandmarksGear.Enable"
|
||||
parameter="add_landmark" />
|
||||
</menu_item_call>
|
||||
parameter="copy_slurl" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Add Folder"
|
||||
label="Create Pick"
|
||||
layout="topleft"
|
||||
name="add_folder">
|
||||
name="create_pick">
|
||||
<on_click
|
||||
function="Places.LandmarksGear.Add.Action"
|
||||
parameter="category" />
|
||||
function="Places.LandmarksGear.Custom.Action"
|
||||
parameter="create_pick" />
|
||||
<on_enable
|
||||
function="Places.LandmarksGear.Enable"
|
||||
parameter="category" />
|
||||
parameter="create_pick" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Restore Item"
|
||||
|
|
@ -85,24 +94,13 @@
|
|||
parameter="cut" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Copy Landmark"
|
||||
label="Copy"
|
||||
layout="topleft"
|
||||
name="copy_landmark">
|
||||
<on_click
|
||||
function="Places.LandmarksGear.CopyPaste.Action"
|
||||
parameter="copy" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Copy SLurl"
|
||||
layout="topleft"
|
||||
name="copy_slurl">
|
||||
<on_click
|
||||
function="Places.LandmarksGear.CopyPaste.Action"
|
||||
parameter="copy_slurl" />
|
||||
<on_enable
|
||||
function="Places.LandmarksGear.Enable"
|
||||
parameter="copy_slurl" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Paste"
|
||||
layout="topleft"
|
||||
|
|
@ -174,15 +172,4 @@
|
|||
function="Places.LandmarksGear.Enable"
|
||||
parameter="sort_by_date" />
|
||||
</menu_item_check>
|
||||
<menu_item_call
|
||||
label="Create Pick"
|
||||
layout="topleft"
|
||||
name="create_pick">
|
||||
<on_click
|
||||
function="Places.LandmarksGear.Custom.Action"
|
||||
parameter="create_pick" />
|
||||
<on_enable
|
||||
function="Places.LandmarksGear.Enable"
|
||||
parameter="create_pick" />
|
||||
</menu_item_call>
|
||||
</toggleable_menu>
|
||||
|
|
|
|||
|
|
@ -7,20 +7,31 @@
|
|||
layout="topleft"
|
||||
name="Teleport">
|
||||
<menu_item_call.on_click
|
||||
function="TeleportHistory.Teleport" />
|
||||
function="TeleportHistory.Action"
|
||||
parameter="teleport" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="More Information"
|
||||
label="View"
|
||||
layout="topleft"
|
||||
name="More Information">
|
||||
<menu_item_call.on_click
|
||||
function="TeleportHistory.MoreInformation" />
|
||||
function="TeleportHistory.Action"
|
||||
parameter="view" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Show on map"
|
||||
layout="topleft"
|
||||
name="show_on_map">
|
||||
<menu_item_call.on_click
|
||||
function="TeleportHistory.Action"
|
||||
parameter="show_on_map" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Copy SLurl"
|
||||
layout="topleft"
|
||||
name="CopyToClipboard">
|
||||
<menu_item_call.on_click
|
||||
function="TeleportHistory.CopyToClipboard" />
|
||||
function="TeleportHistory.Action"
|
||||
parameter="copy_slurl" />
|
||||
</menu_item_call>
|
||||
</context_menu>
|
||||
|
|
|
|||
Loading…
Reference in New Issue