Add filter editor for the avatar render settings floater
parent
0d99a8530a
commit
ecbfe28829
|
|
@ -29,6 +29,7 @@
|
|||
|
||||
#include "fsfloateravatarrendersettings.h"
|
||||
|
||||
#include "llfiltereditor.h"
|
||||
#include "llnamelistctrl.h"
|
||||
#include "lltrans.h"
|
||||
#include "llviewercontrol.h"
|
||||
|
|
@ -39,7 +40,9 @@
|
|||
FSFloaterAvatarRenderSettings::FSFloaterAvatarRenderSettings(const LLSD& key)
|
||||
: LLFloater(key),
|
||||
mAvatarList(NULL),
|
||||
mRenderSettingChangedCallbackConnection()
|
||||
mRenderSettingChangedCallbackConnection(),
|
||||
mFilterSubString(LLStringUtil::null),
|
||||
mFilterSubStringOrig(LLStringUtil::null)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
@ -75,9 +78,12 @@ BOOL FSFloaterAvatarRenderSettings::postBuild()
|
|||
{
|
||||
mAvatarList = getChild<LLNameListCtrl>("avatar_list");
|
||||
mAvatarList->setContextMenu(&FSFloaterAvatarRenderPersistenceMenu::gFSAvatarRenderPersistenceMenu);
|
||||
mAvatarList->setFilterColumn(0);
|
||||
|
||||
childSetAction("close_btn", boost::bind(&FSFloaterAvatarRenderSettings::onCloseBtn, this));
|
||||
|
||||
getChild<LLFilterEditor>("filter_input")->setCommitCallback(boost::bind(&FSFloaterAvatarRenderSettings::onFilterEdit, this, _2));
|
||||
|
||||
mRenderSettingChangedCallbackConnection = FSAvatarRenderPersistence::instance().setAvatarRenderSettingChangedCallback(boost::bind(&FSFloaterAvatarRenderSettings::onAvatarRenderSettingChanged, this, _1, _2));
|
||||
|
||||
loadInitialList();
|
||||
|
|
@ -108,7 +114,28 @@ void FSFloaterAvatarRenderSettings::onAvatarRenderSettingChanged(const LLUUID& a
|
|||
}
|
||||
}
|
||||
|
||||
void FSFloaterAvatarRenderSettings::onFilterEdit(const std::string& search_string)
|
||||
{
|
||||
mFilterSubStringOrig = search_string;
|
||||
LLStringUtil::trimHead(mFilterSubStringOrig);
|
||||
// Searches are case-insensitive
|
||||
std::string search_upper = mFilterSubStringOrig;
|
||||
LLStringUtil::toUpper(search_upper);
|
||||
|
||||
if (mFilterSubString == search_upper)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
mFilterSubString = search_upper;
|
||||
|
||||
// Apply new filter.
|
||||
mAvatarList->setFilterString(mFilterSubStringOrig);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Context menu
|
||||
//---------------------------------------------------------------------------
|
||||
namespace FSFloaterAvatarRenderPersistenceMenu
|
||||
{
|
||||
|
||||
|
|
|
|||
|
|
@ -46,6 +46,7 @@ public:
|
|||
|
||||
private:
|
||||
void onCloseBtn();
|
||||
void onFilterEdit(const std::string& search_string);
|
||||
void onAvatarRenderSettingChanged(const LLUUID& avatar_id, LLVOAvatar::VisualMuteSettings render_setting);
|
||||
|
||||
void loadInitialList();
|
||||
|
|
@ -54,6 +55,9 @@ private:
|
|||
LLNameListCtrl* mAvatarList;
|
||||
|
||||
boost::signals2::connection mRenderSettingChangedCallbackConnection;
|
||||
|
||||
std::string mFilterSubString;
|
||||
std::string mFilterSubStringOrig;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
<floater.string name="av_render_always">
|
||||
Komplett
|
||||
</floater.string>
|
||||
<filter_editor label="Avatare filtern" name="filter_input"/>
|
||||
<name_list name="avatar_list">
|
||||
<name_list.columns label="Name" name="name"/>
|
||||
<name_list.columns label="Anzeigeeinstellung" name="render_setting" width="125"/>
|
||||
|
|
|
|||
|
|
@ -20,14 +20,24 @@
|
|||
<floater.string name="av_render_always">
|
||||
Fully
|
||||
</floater.string>
|
||||
<filter_editor
|
||||
follows="left|top|right"
|
||||
height="23"
|
||||
layout="topleft"
|
||||
left="4"
|
||||
label="Filter Avatars"
|
||||
max_length_chars="300"
|
||||
name="filter_input"
|
||||
top="4"
|
||||
right="-4" />
|
||||
<name_list
|
||||
column_padding="0"
|
||||
draw_heading="true"
|
||||
follows="all"
|
||||
layout="topleft"
|
||||
left="10"
|
||||
right="-10"
|
||||
top="10"
|
||||
left="4"
|
||||
right="-4"
|
||||
top="30"
|
||||
bottom="-32"
|
||||
name="avatar_list"
|
||||
name_column="name"
|
||||
|
|
|
|||
Loading…
Reference in New Issue