diff --git a/indra/newview/fsareasearch.cpp b/indra/newview/fsareasearch.cpp index 3f2a41db23..1bfa55e752 100644 --- a/indra/newview/fsareasearch.cpp +++ b/indra/newview/fsareasearch.cpp @@ -1323,6 +1323,11 @@ void FSAreaSearch::onCommitCheckboxRegex() } } +void FSAreaSearch::setFindOwnerText(std::string value) +{ + mPanelFind->mOwnerLineEditor->setText(value); +} + //--------------------------------------------------------------------------- // List panel @@ -1632,6 +1637,43 @@ bool FSPanelAreaSearchList::onContextMenuItemClick(const LLSD& userdata) std::string action = userdata.asString(); LL_DEBUGS("FSAreaSearch") << "Right click menu " << action << " was selected." << LL_ENDL; + if (action == "select_all") + { + std::vector result_items = mResultList->getAllData(); + std::vector::iterator iter = result_items.begin(); + std::vector::iterator end = result_items.end(); + for (; iter != end; ++iter) + { + (*iter)->setSelected(TRUE); + } + return true; + } + if (action == "clear_selection") + { + std::vector selected_items = mResultList->getAllSelected(); + std::vector::iterator iter = selected_items.begin(); + std::vector::iterator end = selected_items.end(); + for (; iter != end; ++iter) + { + (*iter)->setSelected(FALSE); + } + return true; + } + if (action == "filter_my_objects") + { + LLAvatarName avatar_name; + if (LLAvatarNameCache::get(gAgent.getID(), &avatar_name)) + { + mFSAreaSearch->setFindOwnerText(avatar_name.getLegacyName()); + mFSAreaSearch->onButtonClickedSearch(); + } + else + { + LL_DEBUGS() << "Avatar name could not be retrieved from cache." << LL_ENDL; + } + return true; + } + // NOTE that each action command MUST begin with a different letter. char c = action.at(0); switch(c) diff --git a/indra/newview/fsareasearch.h b/indra/newview/fsareasearch.h index 5b8f3a8d74..9ad465aac4 100644 --- a/indra/newview/fsareasearch.h +++ b/indra/newview/fsareasearch.h @@ -126,6 +126,7 @@ public: void onButtonClickedSearch(); void onCommitCheckboxRegex(); bool isSearchableObject (LLViewerObject* objectp, LLViewerRegion* our_region); + void setFindOwnerText(std::string value); std::map mObjectDetails; diff --git a/indra/newview/skins/default/xui/en/menu_fs_area_search.xml b/indra/newview/skins/default/xui/en/menu_fs_area_search.xml index 8b8da3106f..2215bfece5 100644 --- a/indra/newview/skins/default/xui/en/menu_fs_area_search.xml +++ b/indra/newview/skins/default/xui/en/menu_fs_area_search.xml @@ -107,4 +107,32 @@ function="AreaSearch.Enable" parameter="one"/> + + + + + + + + + + +