void LLLocationInputCtrl::rebuildLocationHistory(const std::string& filter) { LLLocationHistory::location_list_t filtered_items; const LLLocationHistory::location_list_t* itemsp = NULL; LLLocationHistory* lh = LLLocationHistory::getInstance(); if (filter.empty()) { itemsp = &lh->getItems(); } else { lh->getMatchingItems(filter, filtered_items); itemsp = &filtered_items; } removeall(); for (LLLocationHistory::location_list_t::const_reverse_iterator it = itemsp->rbegin(); it != itemsp->rend(); it++) { LLSD value; value["tooltip"] = it->getToolTip(); //location history can contain only typed locations value["item_type"] = TYPED_REGION_SLURL; value["global_pos"] = it->mGlobalPos.getValue(); add(it->getLocation(), value); } }
void LLNavigationBar::onTeleportFinished(const LLVector3d& global_agent_pos) { if (!mSaveToLocationHistory) return; LLLocationHistory* lh = LLLocationHistory::getInstance(); //TODO*: do we need convert slurl into readable format? std::string location; /*NOTE: * We can't use gAgent.getPositionAgent() in case of local teleport to build location. * At this moment gAgent.getPositionAgent() contains previous coordinates. * according to EXT-65 agent position is being reseted on each frame. */ LLAgentUI::buildLocationString(location, LLAgentUI::LOCATION_FORMAT_NO_MATURITY, gAgent.getPosAgentFromGlobal(global_agent_pos)); std::string tooltip (LLSLURL::buildSLURLfromPosGlobal(gAgent.getRegion()->getName(), global_agent_pos, false)); LLLocationHistoryItem item (location, global_agent_pos, tooltip,TYPED_REGION_SLURL);// we can add into history only TYPED location //Touch it, if it is at list already, add new location otherwise if ( !lh->touchItem(item) ) { lh->addItem(item); } lh->save(); mSaveToLocationHistory = false; }
void LLNavigationBar::clearHistoryCache() { mCmbLocation->removeall(); LLLocationHistory* lh = LLLocationHistory::getInstance(); lh->removeItems(); lh->save(); mPurgeTPHistoryItems= true; }
void LLNavigationBar::clearHistoryCache() { mCmbLocation->removeall(); LLLocationHistory* lh = LLLocationHistory::getInstance(); lh->removeItems(); lh->save(); LLTeleportHistory::getInstance()->purgeItems(); }