STORM-1213 : pull from viewer-experience-merge

meow-7.2.2
Merov Linden 2011-04-29 18:04:23 -07:00
commit 37084d7edb
8 changed files with 80 additions and 33 deletions

View File

@ -554,7 +554,7 @@ void LLAvatarNameCache::eraseUnrefreshed()
{
sLastExpireCheck = now;
for (cache_t::iterator it = sCache.begin(); it != sCache.end(); ++it)
for (cache_t::iterator it = sCache.begin(); it != sCache.end();)
{
const LLAvatarName& av_name = it->second;
if (av_name.mExpires < max_unrefreshed)
@ -564,8 +564,12 @@ void LLAvatarNameCache::eraseUnrefreshed()
<< " user '" << av_name.mUsername << "' "
<< "expired " << now - av_name.mExpires << " secs ago"
<< LL_ENDL;
sCache.erase(it);
sCache.erase(it++);
}
else
{
++it;
}
}
LL_INFOS("AvNameCache") << sCache.size() << " cached avatar names" << LL_ENDL;
}

View File

@ -127,7 +127,7 @@ namespace LLInitParam
bool BaseBlock::deserializeBlock(Parser& p, Parser::name_stack_range_t name_stack, S32 generation){ return true; }
void BaseBlock::serializeBlock(Parser& parser, Parser::name_stack_t name_stack, const LLInitParam::BaseBlock* diff_block) const {}
bool BaseBlock::inspectBlock(Parser& parser, Parser::name_stack_t name_stack, S32 min_value, S32 max_value) const { return true; }
bool BaseBlock::merge(BlockDescriptor& block_data, const BaseBlock& other, bool overwrite) { return true; }
bool BaseBlock::mergeBlock(BlockDescriptor& block_data, const BaseBlock& other, bool overwrite) { return true; }
bool BaseBlock::validateBlock(bool emit_errors) const { return true; }
ParamValue<LLUIColor, TypeValues<LLUIColor> >::ParamValue(const LLUIColor& color)

View File

@ -101,7 +101,7 @@ namespace LLInitParam
bool BaseBlock::deserializeBlock(Parser& p, Parser::name_stack_range_t name_stack, S32 generation){ return true; }
void BaseBlock::serializeBlock(Parser& parser, Parser::name_stack_t name_stack, const LLInitParam::BaseBlock* diff_block) const {}
bool BaseBlock::inspectBlock(Parser& parser, Parser::name_stack_t name_stack, S32 min_count, S32 max_count) const { return true; }
bool BaseBlock::merge(BlockDescriptor& block_data, const BaseBlock& other, bool overwrite) { return true; }
bool BaseBlock::mergeBlock(BlockDescriptor& block_data, const BaseBlock& other, bool overwrite) { return true; }
bool BaseBlock::validateBlock(bool emit_errors) const { return true; }
ParamValue<LLUIColor, TypeValues<LLUIColor> >::ParamValue(const LLUIColor& color)

View File

@ -375,7 +375,7 @@ namespace LLInitParam
//static
void BaseBlock::addParam(BlockDescriptor& block_data, const ParamDescriptorPtr in_param, const char* char_name)
{
// create a copy of the paramdescriptor in allparams
// create a copy of the param descriptor in mAllParams
// so other data structures can store a pointer to it
block_data.mAllParams.push_back(in_param);
ParamDescriptorPtr param(block_data.mAllParams.back());
@ -469,7 +469,7 @@ namespace LLInitParam
// take all provided params from other and apply to self
// NOTE: this requires that "other" is of the same derived type as this
bool BaseBlock::merge(BlockDescriptor& block_data, const BaseBlock& other, bool overwrite)
bool BaseBlock::mergeBlock(BlockDescriptor& block_data, const BaseBlock& other, bool overwrite)
{
bool some_param_changed = false;
BlockDescriptor::all_params_list_t::const_iterator end_it = block_data.mAllParams.end();

View File

@ -476,8 +476,12 @@ namespace LLInitParam
void init(BlockDescriptor& descriptor, BlockDescriptor& base_descriptor, size_t block_size);
bool mergeBlockParam(bool param_provided, BlockDescriptor& block_data, const BaseBlock& other, bool overwrite)
{
return mergeBlock(block_data, other, overwrite);
}
// take all provided params from other and apply to self
bool merge(BlockDescriptor& block_data, const BaseBlock& other, bool overwrite);
bool mergeBlock(BlockDescriptor& block_data, const BaseBlock& other, bool overwrite);
// can be updated in getters
mutable S32 mChangeVersion;
@ -896,12 +900,14 @@ namespace LLInitParam
const self_t& src_typed_param = static_cast<const self_t&>(src);
self_t& dst_typed_param = static_cast<self_t&>(dst);
if (src_typed_param.isProvided()
&& (overwrite || !dst_typed_param.isProvided()))
if (src_typed_param.anyProvided())
{
if (dst_typed_param.merge(param_value_t::selfBlockDescriptor(), src_typed_param, overwrite))
bool param_provided = src_typed_param.isProvided() && (overwrite || !dst_typed_param.isProvided());
if (dst_typed_param.mergeBlockParam(param_provided, param_value_t::selfBlockDescriptor(), src_typed_param, overwrite))
{
dst_typed_param.clearValueName();
dst_typed_param.setProvided(true);
dst_typed_param.enclosingBlock().paramChanged(dst_typed_param, true);
return true;
}
}
@ -1082,6 +1088,12 @@ namespace LLInitParam
std::copy(dst_typed_param.begin(), dst_typed_param.end(), std::back_inserter(new_values));
std::swap(dst_typed_param.mValues, new_values);
}
if (src_typed_param.begin() != src_typed_param.end())
{
dst_typed_param.setProvided(true);
dst_typed_param.enclosingBlock().paramChanged(dst_typed_param, true);
}
return true;
}
@ -1282,6 +1294,13 @@ namespace LLInitParam
std::copy(dst_typed_param.begin(), dst_typed_param.end(), std::back_inserter(new_values));
std::swap(dst_typed_param.mValues, new_values);
}
if (src_typed_param.begin() != src_typed_param.end())
{
dst_typed_param.setProvided(true);
dst_typed_param.enclosingBlock().paramChanged(dst_typed_param, true);
}
return true;
}
@ -1301,25 +1320,29 @@ namespace LLInitParam
// take all provided params from other and apply to self
bool overwriteFrom(const self_t& other)
{
return merge(selfBlockDescriptor(), other, true);
return mergeBlock(selfBlockDescriptor(), other, true);
}
// take all provided params that are not already provided, and apply to self
bool fillFrom(const self_t& other)
{
return merge(selfBlockDescriptor(), other, false);
return mergeBlock(selfBlockDescriptor(), other, false);
}
bool mergeBlockParam(bool param_provided, BlockDescriptor& block_data, const self_t& other, bool overwrite)
{
if (param_provided)
{
return mergeBlock(block_data, other, overwrite);
}
return false;
}
// merge with other block
bool merge(BlockDescriptor& block_data, const self_t& other, bool overwrite)
bool mergeBlock(BlockDescriptor& block_data, const self_t& other, bool overwrite)
{
// only merge a choice if we are overwriting with other's contents
if (overwrite)
{
mCurChoice = other.mCurChoice;
return BaseBlock::merge(selfBlockDescriptor(), other, overwrite);
}
return false;
mCurChoice = other.mCurChoice;
return BaseBlock::mergeBlock(selfBlockDescriptor(), other, overwrite);
}
// clear out old choice when param has changed
@ -1445,13 +1468,13 @@ namespace LLInitParam
// take all provided params from other and apply to self
bool overwriteFrom(const self_t& other)
{
return static_cast<DERIVED_BLOCK*>(this)->merge(selfBlockDescriptor(), other, true);
return static_cast<DERIVED_BLOCK*>(this)->mergeBlock(selfBlockDescriptor(), other, true);
}
// take all provided params that are not already provided, and apply to self
bool fillFrom(const self_t& other)
{
return static_cast<DERIVED_BLOCK*>(this)->merge(selfBlockDescriptor(), other, false);
return static_cast<DERIVED_BLOCK*>(this)->mergeBlock(selfBlockDescriptor(), other, false);
}
virtual const BlockDescriptor& mostDerivedBlockDescriptor() const { return selfBlockDescriptor(); }
@ -1862,7 +1885,16 @@ namespace LLInitParam
mValue = value;
}
bool merge(BlockDescriptor& block_data, const BaseBlock& other, bool overwrite)
bool mergeBlockParam(bool param_provided, BlockDescriptor& block_data, const BaseBlock& other, bool overwrite)
{
if (param_provided)
{
return mergeBlock(block_data, other, overwrite);
}
return false;
}
bool mergeBlock(BlockDescriptor& block_data, const BaseBlock& other, bool overwrite)
{
const derived_t& src_typed_param = static_cast<const derived_t&>(other);
@ -1875,7 +1907,7 @@ namespace LLInitParam
else
{
// merge individual parameters into destination
return block_t::merge(block_t::selfBlockDescriptor(), src_typed_param, overwrite);
return block_t::mergeBlock(block_t::selfBlockDescriptor(), src_typed_param, overwrite);
}
}

View File

@ -302,8 +302,14 @@ void LLAvatarActions::startConference(const uuid_vec_t& ids)
static void on_avatar_name_show_profile(const LLUUID& agent_id, const LLAvatarName& av_name)
{
llinfos << "opening web profile for " << av_name.mUsername << llendl;
std::string url = getProfileURL(av_name.mUsername);
std::string username = av_name.mUsername;
if (username.empty())
{
username = LLCacheName::buildUsername(av_name.mDisplayName);
}
llinfos << "opening web profile for " << username << llendl;
std::string url = getProfileURL(username);
// PROFILES: open in webkit window
LLWeb::loadWebURLInternal(url, "", agent_id.asString());

View File

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<avatar_icon
name="avatar_icon"
default_icon_name="Generic_Person_Large"
use_draw_context_alpha="false">
</avatar_icon>

View File

@ -6,20 +6,24 @@
track_color="ScrollbarTrackColor"
thumb_color="ScrollbarThumbColor"
thickness="15">
<up_button image_unselected="ScrollArrow_Up"
<up_button name="up_button"
image_unselected="ScrollArrow_Up"
image_selected="ScrollArrow_Up"
scale_image="true"
hover_glow_amount="0.35"/>
<down_button image_unselected="ScrollArrow_Down"
<down_button name="down_button"
image_unselected="ScrollArrow_Down"
image_selected="ScrollArrow_Down"
scale_image="true"
hover_glow_amount="0.35"/>
<left_button image_unselected="ScrollArrow_Left"
<left_button name="left_button"
image_unselected="ScrollArrow_Left"
image_selected="ScrollArrow_Left"
scale_image="true"
hover_glow_amount="0.35"/>
<right_button image_unselected="ScrollArrow_Right"
image_selected="ScrollArrow_Right"
scale_image="true"
hover_glow_amount="0.35"/>
<right_button name="right_button"
image_unselected="ScrollArrow_Right"
image_selected="ScrollArrow_Right"
scale_image="true"
hover_glow_amount="0.35"/>
</scroll_bar>