summaryrefslogtreecommitdiff
path: root/indra/newview/llpanellandmarkinfo.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llpanellandmarkinfo.cpp')
-rw-r--r--indra/newview/llpanellandmarkinfo.cpp65
1 files changed, 22 insertions, 43 deletions
diff --git a/indra/newview/llpanellandmarkinfo.cpp b/indra/newview/llpanellandmarkinfo.cpp
index c05cffc59e..4ffd43cb0f 100644
--- a/indra/newview/llpanellandmarkinfo.cpp
+++ b/indra/newview/llpanellandmarkinfo.cpp
@@ -123,54 +123,11 @@ void LLPanelLandmarkInfo::setInfoType(EInfoType type)
switch(type)
{
case CREATE_LANDMARK:
- {
mCurrentTitle = getString("title_create_landmark");
mLandmarkTitle->setVisible(FALSE);
mLandmarkTitleEditor->setVisible(TRUE);
mNotesEditor->setEnabled(TRUE);
-
- LLViewerParcelMgr* parcel_mgr = LLViewerParcelMgr::getInstance();
- std::string name = parcel_mgr->getAgentParcelName();
- LLVector3 agent_pos = gAgent.getPositionAgent();
-
- if (name.empty())
- {
- S32 region_x = llround(agent_pos.mV[VX]);
- S32 region_y = llround(agent_pos.mV[VY]);
- S32 region_z = llround(agent_pos.mV[VZ]);
-
- std::string region_name;
- LLViewerRegion* region = parcel_mgr->getSelectionRegion();
- if (region)
- {
- region_name = region->getName();
- }
- else
- {
- region_name = getString("unknown");
- }
-
- mLandmarkTitleEditor->setText(llformat("%s (%d, %d, %d)",
- region_name.c_str(), region_x, region_y, region_z));
- }
- else
- {
- mLandmarkTitleEditor->setText(name);
- }
-
- std::string desc;
- LLAgentUI::buildLocationString(desc, LLAgentUI::LOCATION_FORMAT_FULL, agent_pos);
- mNotesEditor->setText(desc);
-
- // Moved landmark creation here from LLPanelLandmarkInfo::processParcelInfo()
- // because we use only agent's current coordinates instead of waiting for
- // remote parcel request to complete.
- if (!LLLandmarkActions::landmarkAlreadyExists())
- {
- createLandmark(LLUUID());
- }
- }
break;
case LANDMARK:
@@ -235,6 +192,28 @@ void LLPanelLandmarkInfo::processParcelInfo(const LLParcelData& parcel_data)
info["global_y"] = parcel_data.global_y;
info["global_z"] = parcel_data.global_z;
notifyParent(info);
+
+ if (mInfoType == CREATE_LANDMARK)
+ {
+ if (parcel_data.name.empty())
+ {
+ mLandmarkTitleEditor->setText(llformat("%s (%d, %d, %d)",
+ parcel_data.sim_name.c_str(), region_x, region_y, region_z));
+ }
+ else
+ {
+ mLandmarkTitleEditor->setText(parcel_data.name);
+ }
+
+ std::string desc;
+ LLAgentUI::buildLocationString(desc, LLAgentUI::LOCATION_FORMAT_FULL, gAgent.getPositionAgent());
+ mNotesEditor->setText(desc);
+
+ if (!LLLandmarkActions::landmarkAlreadyExists())
+ {
+ createLandmark(mFolderCombo->getValue().asUUID());
+ }
+ }
}
void LLPanelLandmarkInfo::displayItemInfo(const LLInventoryItem* pItem)