// reacts to user clicking a valid field in the local scroll list. void LLFloaterTexturePicker::onLocalScrollCommit() { LLUUID id(mLocalScrollCtrl->getSelectedItemLabel(LOCALLIST_COL_ID)); mOwner->setImageAssetID(id); if (childGetValue("apply_immediate_check").asBoolean()) mOwner->onFloaterCommit(LLTextureCtrl::TEXTURE_CHANGE, id); // calls an overridden function. }
void LLFloaterTexturePicker::commitIfImmediateSet() { bool apply_immediate = childGetValue("apply_immediate_check").asBoolean(); if (!mNoCopyTextureSelected && apply_immediate && mOwner) { mOwner->onFloaterCommit(LLTextureCtrl::TEXTURE_CHANGE); } }
// virtual void LLPanelDirPeople::performQuery() { if (childGetValue("name").asString().length() < mMinSearchChars) { return; } // filter short words out of the query string // and indidate if we did have to filter it // The shortest username is 2 characters long. // *fix This is no longer true, M Linden is a exception that demonstrates the invalidity of this assumption. std::string query_string = childGetValue("name").asString(); /*const S32 SHORTEST_WORD_LEN = 2; bool query_was_filtered = false; std::string query_string = LLPanelDirBrowser::filterShortWords( childGetValue("name").asString(), SHORTEST_WORD_LEN, query_was_filtered ); // possible we threw away all the short words in the query so check length if ( query_string.length() < mMinSearchChars ) { LLNotifications::instance().add("SeachFilteredOnShortWordsEmpty"); return; }; // if we filtered something out, display a popup if ( query_was_filtered ) { LLSD args; args["FINALQUERY"] = query_string; LLNotifications::instance().add("SeachFilteredOnShortWords", args); };*/ setupNewSearch(); U32 scope = DFQ_PEOPLE; // send the message sendDirFindQuery( gMessageSystem, mSearchID, query_string, scope, mSearchStart); }
void LLFloaterTexturePicker::setActive( BOOL active ) { if (!active && childGetValue("Pipette").asBoolean()) { stopUsingPipette(); } mActive = active; }
//----------------------------------------------------------------------------- // resetMotion() //----------------------------------------------------------------------------- void LLFloaterAnimPreview::resetMotion() { LLVOAvatar* avatarp; if (mInWorld) { avatarp = gAgent.getAvatarObject(); } else { avatarp = mAnimPreview->getDummyAvatar(); } if (!avatarp) { return; } BOOL paused = avatarp->areAnimationsPaused(); // *TODO: Fix awful casting hack LLKeyframeMotion* motionp = (LLKeyframeMotion*)avatarp->findMotion(mMotionID); // Set emotion std::string emote = childGetValue("emote_combo").asString(); motionp->setEmote(mIDList[emote]); LLUUID base_id = mIDList[childGetValue("preview_base_anim").asString()]; avatarp->deactivateAllMotions(); avatarp->startMotion(base_id, BASE_ANIM_TIME_OFFSET); avatarp->startMotion(mMotionID, 0.0f); childSetValue("playback_slider", 0.0f); // Set pose std::string handpose = childGetValue("hand_pose_combo").asString(); avatarp->startMotion( ANIM_AGENT_HAND_MOTION, 0.0f ); motionp->setHandPose(LLHandMotion::getHandPose(handpose)); if (paused) { mPauseRequest = avatarp->requestPause(); } else { mPauseRequest = NULL; } }
////////////////////////////////////////////////////////////////////////// // Private Section void LLFloaterGetBlockedObjectName::applyBlocking() { if (mGetObjectNameCallback) { const std::string& text = childGetValue("object_name").asString(); mGetObjectNameCallback(text); } closeFloater(); }
void HippoPanelGridsImpl::retrieveGridInfo() { std::string loginuri = childGetValue("loginuri"); if ((loginuri == "") || (loginuri == "<required>")) { LLNotificationsUtil::add("GridInfoNoLoginUri"); return; } HippoGridInfo *grid = 0; bool cleanupGrid = false; if (mState == NORMAL) { grid = gHippoGridManager->getGrid(mCurGrid); } else if ((mState == ADD_NEW) || (mState == ADD_COPY)) { grid = new HippoGridInfo(""); cleanupGrid = true; } else { llerrs << "Illegal state " << mState << '.' << llendl; return; } if (!grid) { llerrs << "Internal error retrieving grid info." << llendl; return; } grid->setLoginUri(loginuri); try { grid->getGridInfo(); if (grid->getPlatform() != HippoGridInfo::PLATFORM_OTHER) getChild<LLComboBox>("platform")->setCurrentByIndex(grid->getPlatform()); if (grid->getGridName() != "") childSetText("gridname", grid->getGridName()); if (grid->getLoginUri() != "") childSetText("loginuri", grid->getLoginUri()); if (grid->getLoginPage() != "") childSetText("loginpage", grid->getLoginPage()); if (grid->getHelperUri() != "") childSetText("helperuri", grid->getHelperUri()); if (grid->getWebSite() != "") childSetText("website", grid->getWebSite()); if (grid->getSupportUrl() != "") childSetText("support", grid->getSupportUrl()); if (grid->getRegisterUrl() != "") childSetText("register", grid->getRegisterUrl()); if (grid->getPasswordUrl() != "") childSetText("password", grid->getPasswordUrl()); if (grid->getSearchUrl() != "") childSetText("search", grid->getSearchUrl()); if (grid->getGridMessage() != "") childSetText("gridmessage", grid->getGridMessage()); } catch(AIAlert::ErrorCode const& error) { if (error.getCode() == HTTP_METHOD_NOT_ALLOWED || error.getCode() == HTTP_OK) { AIAlert::add("GridInfoError", error); } else { // Append GridInfoErrorInstruction to error message. AIAlert::add("GridInfoError", AIAlert::Error(AIAlert::Prefix(), AIAlert::not_modal, error, "GridInfoErrorInstruction")); } } if (cleanupGrid) delete grid; }
// virtual void LLPanelDirGroups::performQuery() { if (childGetValue("name").asString().length() < mMinSearchChars) { return; } BOOL inc_pg = childGetValue("incpg").asBoolean(); BOOL inc_mature = childGetValue("incmature").asBoolean(); BOOL inc_adult = childGetValue("incadult").asBoolean(); if (!(inc_pg || inc_mature || inc_adult)) { LLNotifyBox::showXml("NoContentToSearch"); return; } setupNewSearch(); // groups U32 scope = DFQ_GROUPS; if (inc_pg) { scope |= DFQ_INC_PG; } if (inc_mature) { scope |= DFQ_INC_MATURE; } if (inc_adult) { scope |= DFQ_INC_ADULT; } mCurrentSortColumn = "score"; mCurrentSortAscending = FALSE; // send the message sendDirFindQuery( gMessageSystem, mSearchID, childGetValue("name").asString(), scope, mSearchStart); }
void LLFloaterBuyLandUI::runWebSitePrep(const std::string& password) { if (!mCanBuy) { return; } BOOL remove_contribution = childGetValue("remove_contribution").asBoolean(); mParcelBuyInfo = LLViewerParcelMgr::getInstance()->setupParcelBuy(gAgent.getID(), gAgent.getSessionID(), gAgent.getGroupID(), mIsForGroup, mIsClaim, remove_contribution); if (mParcelBuyInfo && !mSiteMembershipUpgrade && !mSiteLandUseUpgrade && mCurrency.getAmount() == 0 && mSiteConfirm != "password") { sendBuyLand(); return; } std::string newLevel = "noChange"; if (mSiteMembershipUpgrade) { LLComboBox* levels = getChild<LLComboBox>( "account_level"); if (levels) { mUserPlanChoice = levels->getCurrentIndex(); newLevel = mSiteMembershipPlanIDs[mUserPlanChoice]; } } LLXMLRPCValue keywordArgs = LLXMLRPCValue::createStruct(); keywordArgs.appendString("agentId", gAgent.getID().asString()); keywordArgs.appendString( "secureSessionId", gAgent.getSecureSessionID().asString()); keywordArgs.appendString("levelId", newLevel); keywordArgs.appendInt("billableArea", mIsForGroup ? 0 : mParcelBillableArea); keywordArgs.appendInt("currencyBuy", mCurrency.getAmount()); keywordArgs.appendInt("estimatedCost", mCurrency.getUSDEstimate()); keywordArgs.appendString("estimatedLocalCost", mCurrency.getLocalEstimate()); keywordArgs.appendString("confirm", mSiteConfirm); if (!password.empty()) { keywordArgs.appendString("password", password); } LLXMLRPCValue params = LLXMLRPCValue::createArray(); params.append(keywordArgs); startTransaction(TransactionBuy, params); }
void LLPanelRequestTools::sendRequest(const LLHost& host) { // intercept viewer local actions here std::string req = childGetValue("request"); if (req == "terrain download") { gXferManager->requestFile("terrain.raw", "terrain.raw", LL_PATH_NONE, host, FALSE, terrain_download_done, NULL); } else { req = req.substr(0, req.find_first_of(" ")); sendRequest(req.c_str(), childGetValue("parameter").asString().c_str(), host); } }
void onSave() { mItemName = childGetValue("name ed").asString(); LLStringUtil::trim(mItemName); if( !mItemName.empty() ) { mSaveAsSignal(mItemName); closeFloater(); // destroys this object } }
void LLMakeOutfitDialog::onSave() { std::string folder_name = childGetValue("name ed").asString(); LLStringUtil::trim(folder_name); if (!folder_name.empty()) { makeOutfit(folder_name); close(); // destroys this object } }
void LLPanelDirFindAll::search(const std::string& search_text) { if (!search_text.empty()) { bool mature = childGetValue( "mature_check" ).asBoolean(); std::string selected_collection = childGetValue( "Category" ).asString(); std::string url = buildSearchURL(search_text, selected_collection, mature); if (mWebBrowser) { mWebBrowser->navigateTo(url); } } else { // empty search text navigateToDefaultPage(); } childSetText("search_editor", search_text); }
// called from setFocus() // called internally too void HippoPanelGridsImpl::refresh() { const std::string &defaultGrid = gHippoGridManager->getDefaultGridName(); LLComboBox *grids = getChild<LLComboBox>("grid_selector"); S32 selectIndex = -1, i = 0; grids->removeall(); if (defaultGrid != "") { grids->add(defaultGrid); selectIndex = i++; } HippoGridManager::GridIterator it, end = gHippoGridManager->endGrid(); for (it = gHippoGridManager->beginGrid(); it != end; ++it) { const std::string &grid = it->second->getGridName(); if (grid != defaultGrid) { grids->add(grid); if (grid == mCurGrid) selectIndex = i; i++; } } if ((mState == ADD_NEW) || (mState == ADD_COPY)) { grids->add("<new>"); selectIndex = i++; } if (selectIndex >= 0) { grids->setCurrentByIndex(selectIndex); } else { grids->setLabel(LLStringExplicit("")); // LLComboBox::removeall() does not clear the label } childSetTextArg("default_grid", "[DEFAULT]", (defaultGrid != "")? defaultGrid: " "); childSetEnabled("btn_delete", (selectIndex >= 0)); childSetEnabled("btn_copy", (mState == NORMAL) && (selectIndex >= 0)); childSetEnabled("btn_default", (mState == NORMAL) && (selectIndex > 0)); childSetEnabled("gridname", (mState == ADD_NEW) || (mState == ADD_COPY)); if (childGetValue("platform").asString() == "SecondLife") { // disable platform selector, if logged into the grid edited and it is SL // so object export restrictions cannot be circumvented by changing the platform bool enablePlatform = (LLStartUp::getStartupState() < STATE_LOGIN_CLEANUP) || (mCurGrid != gHippoGridManager->getConnectedGrid()->getGridName()); childSetEnabled("platform", enablePlatform); childSetEnabled("search", false); childSetText("search", LLStringExplicit("")); childSetEnabled("render_compat", false); childSetValue("render_compat", false); } else { childSetEnabled("platform", true); childSetEnabled("search", true); childSetText("search", gHippoGridManager->getConnectedGrid()->getSearchUrl()); childSetEnabled("render_compat", true); } }
void LLFloaterPostcard::sendPostcard() { mTransactionID.generate(); mAssetID = mTransactionID.makeAssetID(gAgent.getSecureSessionID()); LLVFile::writeFile(mJPEGImage->getData(), mJPEGImage->getDataSize(), gVFS, mAssetID, LLAssetType::AT_IMAGE_JPEG); // upload the image std::string url = gAgent.getRegion()->getCapability("SendPostcard"); if(!url.empty()) { llinfos << "Send Postcard via capability" << llendl; LLSD body = LLSD::emptyMap(); // the capability already encodes: agent ID, region ID body["pos-global"] = mPosTakenGlobal.getValue(); body["to"] = childGetValue("to_form").asString(); body["from"] = childGetValue("from_form").asString(); body["name"] = childGetValue("name_form").asString(); body["subject"] = childGetValue("subject_form").asString(); body["msg"] = childGetValue("msg_form").asString(); LLHTTPClient::post(url, body, new LLSendPostcardResponder(body, mAssetID, LLAssetType::AT_IMAGE_JPEG)); } else { gAssetStorage->storeAssetData(mTransactionID, LLAssetType::AT_IMAGE_JPEG, &uploadCallback, (void *)this, FALSE); } // give user feedback of the event gViewerWindow->playSnapshotAnimAndSound(); LLUploadDialog::modalUploadDialog(getString("upload_message")); // don't destroy the window until the upload is done // this way we keep the information in the form setVisible(FALSE); // also remove any dependency on another floater // so that we can be sure to outlive it while we // need to. LLFloater* dependee = getDependee(); if (dependee) dependee->removeDependentFloater(this); }
void LLPanelDirBrowser::getSelectedInfo(LLUUID* id, S32 *type) { LLScrollListCtrl* list = findChild<LLScrollListCtrl>("results"); if (!list) return; LLSD id_sd = childGetValue("results"); *id = id_sd.asUUID(); std::string id_str = id_sd.asString(); *type = mResultsContents[id_str]["type"]; }
void LLPanelRegionTools::onChangePrelude() { // checking prelude auto-checks fixed sun if (childGetValue("check prelude").asBoolean()) { childSetValue("check fixed sun", TRUE); childSetValue("check reset home", TRUE); onChangeAnything(); } // pass on to default onChange handler }
void LLFloaterWorldMap::updateSearchEnabled() { if (childHasKeyboardFocus("location") && childGetValue("location").asString().length() > 0) { setDefaultBtn("DoSearch"); } else { setDefaultBtn(NULL); } }
void FloaterGridManager::retrieveGridInfo() { std::string loginuri = childGetValue("loginuri"); if ((loginuri == "") || (loginuri == "<required>")) { LLNotifications::instance().add("GridInfoNoLoginUri"); return; } HippoGridInfo* grid = 0; bool cleanupGrid = false; if (mState == NORMAL) { grid = gHippoGridManager->getGrid(mCurGrid); } else if ((mState == ADD_NEW) || (mState == ADD_COPY)) { grid = new HippoGridInfo(""); cleanupGrid = true; } else { llerrs << "Illegal state " << mState << '.' << llendl; return; } if (!grid) { llerrs << "Internal error retrieving grid info." << llendl; return; } grid->setLoginUri(loginuri); if (grid->retrieveGridInfo()) { if (grid->getGridNick() != "") childSetText("gridnick", grid->getGridNick()); if (grid->getGridName() != "") childSetText("gridname", grid->getGridName()); if (grid->getLoginUri() != "") childSetText("loginuri", grid->getLoginUri()); if (grid->getLoginPage() != "") childSetText("loginpage", grid->getLoginPage()); if (grid->getHelperUri() != "") childSetText("helperuri", grid->getHelperUri()); if (grid->getWebSite() != "") childSetText("website", grid->getWebSite()); if (grid->getSupportUrl() != "") childSetText("support", grid->getSupportUrl()); if (grid->getRegisterUrl() != "") childSetText("register", grid->getRegisterUrl()); if (grid->getPasswordUrl() != "") childSetText("password", grid->getPasswordUrl()); if (grid->getSearchUrl() != "") childSetText("search", grid->getSearchUrl()); } else { LLNotifications::instance().add("GridInfoError"); } if (cleanupGrid) delete grid; }
void LLPanelDirFindAll::search(const std::string& search_text) { BOOL inc_pg = childGetValue("incpg").asBoolean(); BOOL inc_mature = childGetValue("incmature").asBoolean(); BOOL inc_adult = childGetValue("incadult").asBoolean(); if (!(inc_pg || inc_mature || inc_adult)) { LLNotificationsUtil::add("NoContentToSearch"); return; } if (!search_text.empty()) { // Check whether or not we're on the old or web search All -- MC bool is_web = false; LLPanel* tabs_panel = mFloaterDirectory->getChild<LLTabContainer>("Directory Tabs")->getCurrentPanel(); if (tabs_panel) { is_web = tabs_panel->getName() == "find_all_panel"; } else { llwarns << "search panel not found! How can this be?!" << llendl; } std::string selected_collection = childGetValue( "Category" ).asString(); std::string url = buildSearchURL(search_text, selected_collection, inc_pg, inc_mature, inc_adult, is_web); if (mWebBrowser) { mWebBrowser->navigateTo(url); } } else { // empty search text navigateToDefaultPage(); } childSetText("search_editor", search_text); }
void LLPanelInput::apply() { // any cancel after this point will use these new values mPreAdjustFOV = childGetValue("camera_fov").asReal(); mPreAdjustCameraOffsetScale = childGetValue("camera_offset_scale").asReal(); gSavedSettings.setF32("MouseSensitivity", childGetValue("mouse_sensitivity").asReal()); gSavedSettings.setBOOL("AutomaticFly", childGetValue("automatic_fly")); gSavedSettings.setBOOL("InvertMouse", childGetValue("invert_mouse")); gSavedSettings.setBOOL("EditCameraMovement", childGetValue("edit_camera_movement")); gSavedSettings.setBOOL("AppearanceCameraMovement", childGetValue("appearance_camera_movement")); gSavedSettings.setF32("CameraAngle", mPreAdjustFOV); gSavedSettings.setBOOL("FirstPersonAvatarVisible", childGetValue("first_person_avatar_visible")); }
void LLPrefsVoice::apply() { gSavedSettings.setString("PushToTalkButton", childGetValue("modifier_combo")); gSavedSettings.setBOOL("VoiceCallsFriendsOnly", childGetValue("voice_call_friends_only_check")); gSavedSettings.setBOOL("AutoDisengageMic", childGetValue("auto_disengage_mic_check")); gSavedSettings.setBOOL("PushToTalkToggle", childGetValue("push_to_talk_toggle_check")); gSavedSettings.setS32("VoiceEarLocation", childGetValue("ear_location")); LLFloaterVoiceDeviceSettings* voice_device_settings = LLFloaterVoiceDeviceSettings::getInstance(); if(voice_device_settings) { voice_device_settings->apply(); } bool enable_voice = childGetValue("enable_voice_check"); if (enable_voice && !gSavedSettings.getBOOL("VivoxLicenseAccepted")) { // This window enables voice chat if license is accepted FloaterVoiceLicense::getInstance()->open(); FloaterVoiceLicense::getInstance()->center(); } else { gSavedSettings.setBOOL("EnableVoiceChat", enable_voice); } }
void LLPanelNetwork::refresh() { if (childGetValue("speed_rez_check").asBoolean()) { childEnable("speed_rez_interval_spinner"); childEnable("speed_rez_seconds_text"); } else { childDisable("speed_rez_interval_spinner"); childDisable("speed_rez_seconds_text"); } }
void LLPanelDirFind::navigateToDefaultPage() { std::string start_url = getString("default_search_page"); BOOL inc_pg = childGetValue("incpg").asBoolean(); BOOL inc_mature = childGetValue("incmature").asBoolean(); BOOL inc_adult = childGetValue("incadult").asBoolean(); if (!(inc_pg || inc_mature || inc_adult)) { // if nothing's checked, just go for pg; we don't notify in // this case because it's a default page. inc_pg = true; } start_url += getSearchURLSuffix(inc_pg, inc_mature, inc_adult); llinfos << "default url: " << start_url << llendl; if (mWebBrowser) { mWebBrowser->navigateTo( start_url ); } }
void LLPanelDirFind::navigateToDefaultPage() { std::string start_url = getString("default_search_page"); bool mature = childGetValue( "mature_check" ).asBoolean(); start_url += getSearchURLSuffix( mature ); llinfos << "default url: " << start_url << llendl; if (mWebBrowser) { mWebBrowser->navigateTo( start_url ); } }
void LLPanelVolume::sendIsLight() { LLViewerObject* objectp = mObject; if (!objectp || (objectp->getPCode() != LL_PCODE_VOLUME)) { return; } LLVOVolume *volobjp = (LLVOVolume *)objectp; BOOL value = childGetValue("Light Checkbox Ctrl"); volobjp->setIsLight(value); llinfos << "update light sent" << llendl; }
void LLPanelDirClassified::performQuery() { lldebugs << "LLPanelDirClassified::performQuery()" << llendl; BOOL inc_pg = childGetValue("incpg").asBoolean(); BOOL inc_mature = childGetValue("incmature").asBoolean(); BOOL inc_adult = childGetValue("incadult").asBoolean(); if (!(inc_pg || inc_mature || inc_adult)) { LLNotifications::instance().add("NoContentToSearch"); return; } // This sets mSearchID and clears the list of results setupNewSearch(); // send the message LLMessageSystem *msg = gMessageSystem; msg->newMessageFast(_PREHASH_DirClassifiedQuery); msg->nextBlockFast(_PREHASH_AgentData); msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID() ); msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); BOOL filter_auto_renew = FALSE; U32 query_flags = pack_classified_flags_request(filter_auto_renew, inc_pg, inc_mature, inc_adult); //if (gAgent.isTeen()) query_flags |= DFQ_PG_SIMS_ONLY; U32 category = childGetValue("Category").asInteger(); msg->nextBlockFast(_PREHASH_QueryData); msg->addUUIDFast(_PREHASH_QueryID, mSearchID ); msg->addStringFast(_PREHASH_QueryText, childGetValue("name").asString()); msg->addU32Fast(_PREHASH_QueryFlags, query_flags); msg->addU32Fast(_PREHASH_Category, category); msg->addS32Fast(_PREHASH_QueryStart,mSearchStart); gAgent.sendReliableMessage(); }
void LLPanelAvatarNotes::onCommitRights() { const LLRelationship* buddy_relationship = LLAvatarTracker::instance().getBuddyInfo(getAvatarId()); if (NULL == buddy_relationship) { // Lets have a warning log message instead of having a crash. EXT-4947. llwarns << "Trying to modify rights for non-friend avatar. Skipped." << llendl; return; } S32 rights = 0; if(childGetValue("status_check").asBoolean()) rights |= LLRelationship::GRANT_ONLINE_STATUS; if(childGetValue("map_check").asBoolean()) rights |= LLRelationship::GRANT_MAP_LOCATION; if(childGetValue("objects_check").asBoolean()) rights |= LLRelationship::GRANT_MODIFY_OBJECTS; bool allow_modify_objects = childGetValue("objects_check").asBoolean(); // if modify objects checkbox clicked if (buddy_relationship->isRightGrantedTo( LLRelationship::GRANT_MODIFY_OBJECTS) != allow_modify_objects) { confirmModifyRights(allow_modify_objects, rights); } // only one checkbox can trigger commit, so store the rest of rights else { LLAvatarPropertiesProcessor::getInstance()->sendFriendRights( getAvatarId(), rights); } }
void SLFloaterMediaFilter::onBlacklistRemove() { LLScrollListItem* selected = mBlacklistSLC->getFirstSelected(); if (selected) { std::string domain = mBlacklistSLC->getSelectedItemLabel(); size_t pos = domain.find(' '); if (pos != std::string::npos) { domain = domain.substr(0, pos); } LLViewerParcelMedia::sDeniedMedia.erase(domain); for (S32 i = 0; i < (S32)LLViewerParcelMedia::sMediaFilterList.size(); i++) { if (LLViewerParcelMedia::sMediaFilterList[i]["domain"].asString() == domain) { LLViewerParcelMedia::sMediaFilterList.erase(i); break; } } if (childGetValue("match_ip") && domain.find('/') == std::string::npos) { LLHost host; host.setHostByName(domain); std::string ip = host.getIPString(); if (ip != domain) { LLViewerParcelMedia::sDeniedMedia.erase(ip); for (S32 i = 0; i < (S32)LLViewerParcelMedia::sMediaFilterList.size(); i++) { if (LLViewerParcelMedia::sMediaFilterList[i]["domain"].asString() == ip) { LLViewerParcelMedia::sMediaFilterList.erase(i); break; } } } } LLViewerParcelMedia::saveDomainFilterList(); setDirty(); } }
void LLFloaterAvatarPicker::find() { //clear our stored LLAvatarNames sAvatarNameMap.clear(); const std::string& text = childGetValue("Edit").asString(); mQueryID.generate(); std::string url; url.reserve(128); // avoid a memory allocation or two LLViewerRegion* region = gAgent.getRegion(); url = region->getCapability("AvatarPickerSearch"); // Prefer use of capabilities to search on both SLID and display name // but allow display name search to be manually turned off for test if (!url.empty() && LLAvatarNameCache::useDisplayNames()) { // capability urls don't end in '/', but we need one to parse // query parameters correctly if (url.size() > 0 && url[url.size()-1] != '/') { url += "/"; } url += "?page_size=100&names="; url += LLURI::escape(text); llinfos << "avatar picker " << url << llendl; LLHTTPClient::get(url, new LLAvatarPickerResponder(mQueryID)); } else { LLMessageSystem* msg = gMessageSystem; msg->newMessage("AvatarPickerRequest"); msg->nextBlock("AgentData"); msg->addUUID("AgentID", gAgent.getID()); msg->addUUID("SessionID", gAgent.getSessionID()); msg->addUUID("QueryID", mQueryID); // not used right now msg->nextBlock("Data"); msg->addString("Name", text); gAgent.sendReliableMessage(); } getChild<LLScrollListCtrl>("SearchResults")->deleteAllItems(); getChild<LLScrollListCtrl>("SearchResults")->setCommentText(getString("searching")); childSetEnabled("Select", FALSE); mNumResultsReturned = 0; }