diff options
Diffstat (limited to 'indra/newview/llpanellandmarkinfo.cpp')
-rw-r--r-- | indra/newview/llpanellandmarkinfo.cpp | 65 |
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) |