Add MAINT-7215 to our avatar rendering settings floater early - yes, we even can multiselect
parent
88bf3fd84a
commit
497ca78802
|
|
@ -31,6 +31,7 @@
|
|||
|
||||
#include "fscommon.h"
|
||||
#include "llfiltereditor.h"
|
||||
#include "llfloateravatarpicker.h"
|
||||
#include "llnamelistctrl.h"
|
||||
#include "lltrans.h"
|
||||
#include "llviewercontrol.h"
|
||||
|
|
@ -45,6 +46,7 @@ FSFloaterAvatarRenderSettings::FSFloaterAvatarRenderSettings(const LLSD& key)
|
|||
mFilterSubString(LLStringUtil::null),
|
||||
mFilterSubStringOrig(LLStringUtil::null)
|
||||
{
|
||||
mCommitCallbackRegistrar.add("Settings.AddNewEntry", boost::bind(&FSFloaterAvatarRenderSettings::onClickAdd, this, _2));
|
||||
}
|
||||
|
||||
FSFloaterAvatarRenderSettings::~FSFloaterAvatarRenderSettings()
|
||||
|
|
@ -87,11 +89,21 @@ BOOL FSFloaterAvatarRenderSettings::postBuild()
|
|||
|
||||
mRenderSettingChangedCallbackConnection = FSAvatarRenderPersistence::instance().setAvatarRenderSettingChangedCallback(boost::bind(&FSFloaterAvatarRenderSettings::onAvatarRenderSettingChanged, this, _1, _2));
|
||||
|
||||
this->setVisibleCallback(boost::bind(&FSFloaterAvatarRenderSettings::removePicker, this));
|
||||
|
||||
loadInitialList();
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void FSFloaterAvatarRenderSettings::removePicker()
|
||||
{
|
||||
if (mPicker.get())
|
||||
{
|
||||
mPicker.get()->closeFloater();
|
||||
}
|
||||
}
|
||||
|
||||
void FSFloaterAvatarRenderSettings::onCloseBtn()
|
||||
{
|
||||
closeFloater();
|
||||
|
|
@ -145,6 +157,50 @@ BOOL FSFloaterAvatarRenderSettings::handleKeyHere(KEY key, MASK mask)
|
|||
return LLFloater::handleKeyHere(key, mask);
|
||||
}
|
||||
|
||||
void FSFloaterAvatarRenderSettings::onClickAdd(const LLSD& userdata)
|
||||
{
|
||||
const std::string command_name = userdata.asString();
|
||||
LLVOAvatar::VisualMuteSettings render_setting = LLVOAvatar::AV_RENDER_NORMALLY;
|
||||
if ("never" == command_name)
|
||||
{
|
||||
render_setting = LLVOAvatar::AV_DO_NOT_RENDER;
|
||||
}
|
||||
else if ("always" == command_name)
|
||||
{
|
||||
render_setting = LLVOAvatar::AV_ALWAYS_RENDER;
|
||||
}
|
||||
|
||||
LLView* button = findChild<LLButton>("plus_btn", TRUE);
|
||||
LLFloater* root_floater = gFloaterView->getParentFloater(this);
|
||||
LLFloaterAvatarPicker* picker = LLFloaterAvatarPicker::show(boost::bind(&FSFloaterAvatarRenderSettings::callbackAvatarPicked, this, _1, render_setting),
|
||||
TRUE, TRUE, TRUE, root_floater->getName(), button);
|
||||
|
||||
if (root_floater)
|
||||
{
|
||||
root_floater->addDependentFloater(picker);
|
||||
}
|
||||
|
||||
mPicker = picker->getHandle();
|
||||
}
|
||||
|
||||
void FSFloaterAvatarRenderSettings::callbackAvatarPicked(const uuid_vec_t& ids, LLVOAvatar::VisualMuteSettings render_setting)
|
||||
{
|
||||
for (uuid_vec_t::const_iterator it = ids.begin(); it != ids.end(); ++it)
|
||||
{
|
||||
LLUUID avatar_id = *it;
|
||||
|
||||
LLVOAvatar *avatarp = dynamic_cast<LLVOAvatar*>(gObjectList.findObject(avatar_id));
|
||||
if (avatarp)
|
||||
{
|
||||
avatarp->setVisualMuteSettings(render_setting);
|
||||
}
|
||||
else
|
||||
{
|
||||
FSAvatarRenderPersistence::instance().setAvatarRenderSettings(avatar_id, render_setting);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Context menu
|
||||
|
|
|
|||
|
|
@ -50,11 +50,16 @@ private:
|
|||
void onCloseBtn();
|
||||
void onFilterEdit(const std::string& search_string);
|
||||
void onAvatarRenderSettingChanged(const LLUUID& avatar_id, LLVOAvatar::VisualMuteSettings render_setting);
|
||||
void onClickAdd(const LLSD& userdata);
|
||||
|
||||
void loadInitialList();
|
||||
void addElementToList(const LLUUID& avatar_id, LLVOAvatar::VisualMuteSettings render_setting);
|
||||
|
||||
void callbackAvatarPicked(const uuid_vec_t& ids, LLVOAvatar::VisualMuteSettings render_setting);
|
||||
void removePicker();
|
||||
|
||||
LLNameListCtrl* mAvatarList;
|
||||
LLHandle<LLFloater> mPicker;
|
||||
|
||||
boost::signals2::connection mRenderSettingChangedCallbackConnection;
|
||||
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@
|
|||
Komplett
|
||||
</floater.string>
|
||||
<filter_editor label="Avatare filtern" name="filter_input"/>
|
||||
<menu_button name="plus_btn" tool_tip="Person zur Liste hinzufügen"/>
|
||||
<name_list name="avatar_list">
|
||||
<name_list.columns label="Name" name="name"/>
|
||||
<name_list.columns label="Anzeigeeinstellung" name="render_setting" width="125"/>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<toggleable_menu>
|
||||
<menu_item_call label="Einwohner komplett anzeigen..." name="add_avatar_always_render"/>
|
||||
<menu_item_call label="Einwohner niemals anzeigen..." name="add_avatar_never_render"/>
|
||||
</toggleable_menu>
|
||||
|
|
@ -29,6 +29,21 @@
|
|||
max_length_chars="300"
|
||||
name="filter_input"
|
||||
top="4"
|
||||
right="-35" />
|
||||
<menu_button
|
||||
follows="top|right"
|
||||
height="23"
|
||||
image_hover_unselected="Toolbar_Middle_Over"
|
||||
image_overlay="AddItem_Off"
|
||||
image_selected="Toolbar_Middle_Selected"
|
||||
image_unselected="Toolbar_Middle_Off"
|
||||
layout="topleft"
|
||||
left_pad="2"
|
||||
menu_filename="menu_avatar_rendering_settings_add.xml"
|
||||
menu_position="bottomleft"
|
||||
name="plus_btn"
|
||||
tool_tip="Add new person to the list"
|
||||
top="4"
|
||||
right="-4" />
|
||||
<name_list
|
||||
column_padding="0"
|
||||
|
|
|
|||
|
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<toggleable_menu
|
||||
name="menu_settings_add.xml"
|
||||
left="0" bottom="0" visible="false"
|
||||
mouse_opaque="false">
|
||||
<menu_item_call
|
||||
label="Always Render a Resident..."
|
||||
name="add_avatar_always_render">
|
||||
<on_click
|
||||
function="Settings.AddNewEntry" parameter="always"/>
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Never Render a Resident..."
|
||||
name="add_avatar_never_render">
|
||||
<on_click
|
||||
function="Settings.AddNewEntry" parameter="never"/>
|
||||
</menu_item_call>
|
||||
</toggleable_menu>
|
||||
Loading…
Reference in New Issue