MAINT-5297 FIXED Allow global toggle of 'View People Icons'
commit
4d23c98fab
|
|
@ -1697,6 +1697,17 @@
|
|||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>ChatShowIcons</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Show/hide people icons in chat</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>CheesyBeacon</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
|
|
@ -10996,6 +11007,17 @@
|
|||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>GlobalShowIconsOverride</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Show/hide people icons in any list. This option should be set back to 0 when icons are enabled locally for the lists</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>FriendsSortOrder</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
|
|
|
|||
|
|
@ -63,16 +63,18 @@ bool LLAvatarList::contains(const LLUUID& id)
|
|||
return std::find(ids.begin(), ids.end(), id) != ids.end();
|
||||
}
|
||||
|
||||
void LLAvatarList::toggleIcons()
|
||||
void LLAvatarList::setIconsVisible(bool visible)
|
||||
{
|
||||
if (visible == mShowIcons) // nothing to be done here.
|
||||
return;
|
||||
|
||||
// Save the new value for new items to use.
|
||||
mShowIcons = !mShowIcons;
|
||||
gSavedSettings.setBOOL(mIconParamName, mShowIcons);
|
||||
|
||||
mShowIcons = visible;
|
||||
|
||||
// Show/hide icons for all existing items.
|
||||
std::vector<LLPanel*> items;
|
||||
getItems(items);
|
||||
for( std::vector<LLPanel*>::const_iterator it = items.begin(); it != items.end(); it++)
|
||||
for (std::vector<LLPanel*>::const_iterator it = items.begin(); it != items.end(); it++)
|
||||
{
|
||||
static_cast<LLAvatarListItem*>(*it)->setAvatarIconVisible(mShowIcons);
|
||||
}
|
||||
|
|
@ -187,6 +189,8 @@ void LLAvatarList::draw()
|
|||
updateAvatarNames();
|
||||
}
|
||||
|
||||
setIconsVisible(gSavedSettings.getBOOL(mIconParamName) && !gSavedSettings.getBOOL("GlobalShowIconsOverride"));
|
||||
|
||||
if (mDirty)
|
||||
refresh();
|
||||
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ public:
|
|||
void setSessionID(const LLUUID& session_id) { mSessionID = session_id; }
|
||||
const LLUUID& getSessionID() { return mSessionID; }
|
||||
|
||||
void toggleIcons();
|
||||
void setIconsVisible(bool visible);
|
||||
void setSpeakingIndicatorsVisible(bool visible);
|
||||
void showPermissions(bool visible);
|
||||
void sortByName();
|
||||
|
|
|
|||
|
|
@ -85,7 +85,8 @@ LLConversationViewSession::LLConversationViewSession(const LLConversationViewSes
|
|||
mHasArrow(true),
|
||||
mIsInActiveVoiceChannel(false),
|
||||
mFlashStateOn(false),
|
||||
mFlashStarted(false)
|
||||
mFlashStarted(false),
|
||||
mShowIcons(true)
|
||||
{
|
||||
mFlashTimer = new LLFlashTimer();
|
||||
}
|
||||
|
|
@ -173,7 +174,7 @@ BOOL LLConversationViewSession::postBuild()
|
|||
if (session)
|
||||
{
|
||||
LLAvatarIconCtrl* icon = mItemPanel->getChild<LLAvatarIconCtrl>("avatar_icon");
|
||||
icon->setVisible(true);
|
||||
icon->setVisible(mShowIcons);
|
||||
icon->setValue(session->mOtherParticipantID);
|
||||
mSpeakingIndicator->setSpeakerId(gAgentID, session->mSessionID, true);
|
||||
mHasArrow = false;
|
||||
|
|
@ -426,6 +427,49 @@ void LLConversationViewSession::showVoiceIndicator(bool visible)
|
|||
requestArrange();
|
||||
}
|
||||
|
||||
void LLConversationViewSession::setIconsVisible(bool visible)
|
||||
{
|
||||
if (visible == mShowIcons) // nothing to be done here.
|
||||
return;
|
||||
|
||||
// Save the new value for new items to use.
|
||||
mShowIcons = visible;
|
||||
|
||||
// Show/hide icons for the 1-n-1 chat.
|
||||
LLConversationItem* vmi = dynamic_cast<LLConversationItem*>(getViewModelItem());
|
||||
if (vmi)
|
||||
{
|
||||
switch (vmi->getType())
|
||||
{
|
||||
case LLConversationItem::CONV_PARTICIPANT:
|
||||
case LLConversationItem::CONV_SESSION_1_ON_1:
|
||||
{
|
||||
LLIconCtrl* icon = mItemPanel->getChild<LLIconCtrl>("avatar_icon");
|
||||
icon->setVisible(mShowIcons);
|
||||
break;
|
||||
}
|
||||
/*
|
||||
case LLConversationItem::CONV_SESSION_AD_HOC:
|
||||
case LLConversationItem::CONV_SESSION_GROUP:
|
||||
{
|
||||
LLIconCtrl* icon = mItemPanel->getChild<LLIconCtrl>("group_icon");
|
||||
icon->setVisible(mShowIcons);
|
||||
break;
|
||||
}
|
||||
*/
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Show/hide icons for all existing items.
|
||||
items_t::const_iterator iter;
|
||||
for (iter = getItemsBegin(); iter != getItemsEnd(); iter++)
|
||||
{
|
||||
dynamic_cast<LLConversationViewParticipant*>(*iter)->setAvatarIconVisible(mShowIcons);
|
||||
}
|
||||
}
|
||||
|
||||
void LLConversationViewSession::refresh()
|
||||
{
|
||||
// Refresh the session view from its model data
|
||||
|
|
@ -458,6 +502,9 @@ void LLConversationViewSession::refresh()
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
setIconsVisible(gSavedSettings.getBOOL("ChatShowIcons") && !gSavedSettings.getBOOL("GlobalShowIconsOverride"));
|
||||
|
||||
requestArrange();
|
||||
// Do the regular upstream refresh
|
||||
LLFolderViewFolder::refresh();
|
||||
|
|
@ -509,7 +556,7 @@ void LLConversationViewParticipant::initFromParams(const LLConversationViewParti
|
|||
LLAvatarIconCtrl::Params avatar_icon_params(params.avatar_icon());
|
||||
applyXUILayout(avatar_icon_params, this);
|
||||
LLAvatarIconCtrl * avatarIcon = LLUICtrlFactory::create<LLAvatarIconCtrl>(avatar_icon_params);
|
||||
addChild(avatarIcon);
|
||||
addChild(avatarIcon);
|
||||
|
||||
LLButton::Params info_button_params(params.info_button());
|
||||
applyXUILayout(info_button_params, this);
|
||||
|
|
@ -525,6 +572,7 @@ void LLConversationViewParticipant::initFromParams(const LLConversationViewParti
|
|||
BOOL LLConversationViewParticipant::postBuild()
|
||||
{
|
||||
mAvatarIcon = getChild<LLAvatarIconCtrl>("avatar_icon");
|
||||
mAvatarIcon->setVisible(gSavedSettings.getBOOL("ChatShowIcons") && !gSavedSettings.getBOOL("GlobalShowIconsOverride"));
|
||||
|
||||
mInfoBtn = getChild<LLButton>("info_btn");
|
||||
mInfoBtn->setClickedCallback(boost::bind(&LLConversationViewParticipant::onInfoBtnClick, this));
|
||||
|
|
@ -588,12 +636,12 @@ S32 LLConversationViewParticipant::arrange(S32* width, S32* height)
|
|||
S32 arranged = LLFolderViewItem::arrange(width, height);
|
||||
|
||||
//Adjusts the avatar icon based upon the indentation
|
||||
LLRect avatarRect(getIndentation(),
|
||||
mAvatarIcon->getRect().mTop,
|
||||
getIndentation() + mAvatarIcon->getRect().getWidth(),
|
||||
mAvatarIcon->getRect().mBottom);
|
||||
mAvatarIcon->setShape(avatarRect);
|
||||
|
||||
LLRect avatarRect(getIndentation(),
|
||||
mAvatarIcon->getRect().mTop,
|
||||
getIndentation() + mAvatarIcon->getRect().getWidth(),
|
||||
mAvatarIcon->getRect().mBottom);
|
||||
mAvatarIcon->setShape(avatarRect);
|
||||
|
||||
//Since dimensions changed, adjust the children (info button, speaker indicator)
|
||||
updateChildren();
|
||||
|
||||
|
|
@ -665,7 +713,7 @@ void LLConversationViewParticipant::onMouseLeave(S32 x, S32 y, MASK mask)
|
|||
|
||||
S32 LLConversationViewParticipant::getLabelXPos()
|
||||
{
|
||||
return getIndentation() + mAvatarIcon->getRect().getWidth() + mIconPad;
|
||||
return getIndentation() + (mAvatarIcon->getVisible() ? mAvatarIcon->getRect().getWidth() : 0) + mIconPad;
|
||||
}
|
||||
|
||||
// static
|
||||
|
|
@ -744,5 +792,18 @@ void LLConversationViewParticipant::hideSpeakingIndicator()
|
|||
mSpeakingIndicator->setVisible(false);
|
||||
}
|
||||
|
||||
void LLConversationViewParticipant::setAvatarIconVisible(bool visible)
|
||||
{
|
||||
// Already done? Then do nothing.
|
||||
if (mAvatarIcon->getVisible() == (BOOL)visible)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Show/hide avatar icon.
|
||||
mAvatarIcon->setVisible(visible);
|
||||
updateChildren();
|
||||
}
|
||||
|
||||
// EOF
|
||||
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ public:
|
|||
LLConversationViewParticipant* findParticipant(const LLUUID& participant_id);
|
||||
|
||||
void showVoiceIndicator(bool visible);
|
||||
|
||||
void setIconsVisible(bool visible);
|
||||
virtual void refresh();
|
||||
|
||||
/*virtual*/ void setFlashState(bool flash_state);
|
||||
|
|
@ -110,6 +110,8 @@ private:
|
|||
|
||||
bool mIsInActiveVoiceChannel;
|
||||
|
||||
bool mShowIcons;
|
||||
|
||||
LLVoiceClientStatusObserver* mVoiceClientObserver;
|
||||
|
||||
boost::signals2::connection mActiveVoiceChannelConnection;
|
||||
|
|
@ -145,6 +147,7 @@ public:
|
|||
/*virtual*/ S32 getLabelXPos();
|
||||
/*virtual*/ BOOL handleMouseDown( S32 x, S32 y, MASK mask );
|
||||
void hideSpeakingIndicator();
|
||||
void setAvatarIconVisible(bool visible);
|
||||
|
||||
protected:
|
||||
friend class LLUICtrlFactory;
|
||||
|
|
|
|||
|
|
@ -924,6 +924,11 @@ void LLFloaterIMContainer::onCustomAction(const LLSD& userdata)
|
|||
{
|
||||
setSortOrderParticipants(LLConversationFilter::SO_DISTANCE);
|
||||
}
|
||||
if ("view_icons" == command)
|
||||
{
|
||||
gSavedSettings.setBOOL("ChatShowIcons", !(gSavedSettings.getBOOL("ChatShowIcons") && !gSavedSettings.getBOOL("GlobalShowIconsOverride")));
|
||||
gSavedSettings.setBOOL("GlobalShowIconsOverride", (!gSavedSettings.getBOOL("ChatShowIcons") && gSavedSettings.getBOOL("GlobalShowIconsOverride")));
|
||||
}
|
||||
if ("chat_preferences" == command)
|
||||
{
|
||||
LLFloaterPreference * floater_prefp = LLFloaterReg::showTypedInstance<LLFloaterPreference>("preferences");
|
||||
|
|
@ -974,6 +979,10 @@ BOOL LLFloaterIMContainer::isActionChecked(const LLSD& userdata)
|
|||
{
|
||||
return (order.getSortOrderParticipants() == LLConversationFilter::SO_DISTANCE);
|
||||
}
|
||||
if ("view_icons" == command)
|
||||
{
|
||||
return gSavedSettings.getBOOL("ChatShowIcons") && !gSavedSettings.getBOOL("GlobalShowIconsOverride");
|
||||
}
|
||||
if ("Translating.Enabled" == command)
|
||||
{
|
||||
return gSavedPerAccountSettings.getBOOL("TranslatingEnabled");
|
||||
|
|
|
|||
|
|
@ -1326,8 +1326,12 @@ void LLPanelPeople::onFriendsViewSortMenuItemClicked(const LLSD& userdata)
|
|||
}
|
||||
else if (chosen_item == "view_icons")
|
||||
{
|
||||
mAllFriendList->toggleIcons();
|
||||
mOnlineFriendList->toggleIcons();
|
||||
std::string param = mAllFriendList->getIconParamName();
|
||||
gSavedSettings.setBOOL(param, !(gSavedSettings.getBOOL(param) && !gSavedSettings.getBOOL("GlobalShowIconsOverride")));
|
||||
gSavedSettings.setBOOL("GlobalShowIconsOverride", (!gSavedSettings.getBOOL(param) && gSavedSettings.getBOOL("GlobalShowIconsOverride")));
|
||||
gSavedSettings.setBOOL(mOnlineFriendList->getIconParamName(), gSavedSettings.getBOOL(param));
|
||||
mAllFriendList->setIconsVisible(gSavedSettings.getBOOL(param));
|
||||
mOnlineFriendList->setIconsVisible(gSavedSettings.getBOOL(param));
|
||||
}
|
||||
else if (chosen_item == "view_permissions")
|
||||
{
|
||||
|
|
@ -1363,7 +1367,10 @@ void LLPanelPeople::onNearbyViewSortMenuItemClicked(const LLSD& userdata)
|
|||
}
|
||||
else if (chosen_item == "view_icons")
|
||||
{
|
||||
mNearbyList->toggleIcons();
|
||||
std::string param = mNearbyList->getIconParamName();
|
||||
gSavedSettings.setBOOL(param, !(gSavedSettings.getBOOL(param) && !gSavedSettings.getBOOL("GlobalShowIconsOverride")));
|
||||
gSavedSettings.setBOOL("GlobalShowIconsOverride", (!gSavedSettings.getBOOL(param) && gSavedSettings.getBOOL("GlobalShowIconsOverride")));
|
||||
mNearbyList->setIconsVisible(gSavedSettings.getBOOL(param));
|
||||
}
|
||||
else if (chosen_item == "sort_distance")
|
||||
{
|
||||
|
|
@ -1382,6 +1389,8 @@ bool LLPanelPeople::onNearbyViewSortMenuItemCheck(const LLSD& userdata)
|
|||
return sort_order == E_SORT_BY_NAME;
|
||||
if (item == "sort_distance")
|
||||
return sort_order == E_SORT_BY_DISTANCE;
|
||||
if (item == "view_icons")
|
||||
return gSavedSettings.getBOOL(mNearbyList->getIconParamName()) && !gSavedSettings.getBOOL("GlobalShowIconsOverride");
|
||||
|
||||
return false;
|
||||
}
|
||||
|
|
@ -1400,7 +1409,10 @@ void LLPanelPeople::onRecentViewSortMenuItemClicked(const LLSD& userdata)
|
|||
}
|
||||
else if (chosen_item == "view_icons")
|
||||
{
|
||||
mRecentList->toggleIcons();
|
||||
std::string param = mRecentList->getIconParamName();
|
||||
gSavedSettings.setBOOL(param, !(gSavedSettings.getBOOL(param) && !gSavedSettings.getBOOL("GlobalShowIconsOverride")));
|
||||
gSavedSettings.setBOOL("GlobalShowIconsOverride", (!gSavedSettings.getBOOL(param) && gSavedSettings.getBOOL("GlobalShowIconsOverride")));
|
||||
mRecentList->setIconsVisible(gSavedSettings.getBOOL(param));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1413,6 +1425,8 @@ bool LLPanelPeople::onFriendsViewSortMenuItemCheck(const LLSD& userdata)
|
|||
return sort_order == E_SORT_BY_NAME;
|
||||
if (item == "sort_status")
|
||||
return sort_order == E_SORT_BY_STATUS;
|
||||
if (item == "view_icons")
|
||||
return gSavedSettings.getBOOL(mAllFriendList->getIconParamName()) && !gSavedSettings.getBOOL("GlobalShowIconsOverride");
|
||||
|
||||
return false;
|
||||
}
|
||||
|
|
@ -1426,6 +1440,8 @@ bool LLPanelPeople::onRecentViewSortMenuItemCheck(const LLSD& userdata)
|
|||
return sort_order == E_SORT_BY_MOST_RECENT;
|
||||
if (item == "sort_name")
|
||||
return sort_order == E_SORT_BY_NAME;
|
||||
if (item == "view_icons")
|
||||
return gSavedSettings.getBOOL(mRecentList->getIconParamName()) && !gSavedSettings.getBOOL("GlobalShowIconsOverride");
|
||||
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -59,6 +59,19 @@
|
|||
function="IMFloaterContainer.Check"
|
||||
parameter="sort_participants_by_recent" />
|
||||
</menu_item_check>
|
||||
<menu_item_separator
|
||||
layout="topleft" />
|
||||
<menu_item_check
|
||||
label="View people icons"
|
||||
layout="topleft"
|
||||
name="view_icons">
|
||||
<on_click
|
||||
function="IMFloaterContainer.Action"
|
||||
parameter="view_icons" />
|
||||
<on_check
|
||||
function="IMFloaterContainer.Check"
|
||||
parameter="view_icons" />
|
||||
</menu_item_check>
|
||||
<menu_item_separator
|
||||
layout="topleft" />
|
||||
<menu_item_call
|
||||
|
|
|
|||
|
|
@ -29,8 +29,8 @@
|
|||
function="People.Friends.ViewSort.Action"
|
||||
parameter="view_icons" />
|
||||
<menu_item_check.on_check
|
||||
function="CheckControl"
|
||||
parameter="FriendsListShowIcons" />
|
||||
function="People.Friends.ViewSort.CheckItem"
|
||||
parameter="view_icons" />
|
||||
</menu_item_check>
|
||||
<menu_item_check name="view_permissions" label="View Permissions Granted">
|
||||
<menu_item_check.on_click
|
||||
|
|
|
|||
|
|
@ -39,8 +39,8 @@
|
|||
function="People.Nearby.ViewSort.Action"
|
||||
parameter="view_icons" />
|
||||
<menu_item_check.on_check
|
||||
function="CheckControl"
|
||||
parameter="NearbyListShowIcons" />
|
||||
function="People.Nearby.ViewSort.CheckItem"
|
||||
parameter="view_icons"/>
|
||||
</menu_item_check>
|
||||
<menu_item_check name ="view_map" label="View Map">
|
||||
<menu_item_check.on_check
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@
|
|||
function="People.Recent.ViewSort.Action"
|
||||
parameter="view_icons" />
|
||||
<menu_item_check.on_check
|
||||
function="CheckControl"
|
||||
parameter="RecentListShowIcons" />
|
||||
function="People.Recent.ViewSort.CheckItem"
|
||||
parameter="view_icons" />
|
||||
</menu_item_check>
|
||||
</toggleable_menu>
|
||||
|
|
|
|||
|
|
@ -313,4 +313,30 @@
|
|||
<button.commit_callback
|
||||
function="Pref.Proxy" />
|
||||
</button>
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
follows="left|top"
|
||||
height="10"
|
||||
layout="topleft"
|
||||
left="30"
|
||||
name="People Icons:"
|
||||
mouse_opaque="false"
|
||||
top_pad="5"
|
||||
width="300">
|
||||
People Icons:
|
||||
</text>
|
||||
<check_box
|
||||
top_delta="4"
|
||||
enabled="true"
|
||||
follows="left|top"
|
||||
height="14"
|
||||
initial_value="false"
|
||||
control_name="GlobalShowIconsOverride"
|
||||
label="Hide people icons (global override)"
|
||||
left_delta="50"
|
||||
mouse_opaque="true"
|
||||
name="global_show_icons_override"
|
||||
width="400"
|
||||
top_pad="10"/>
|
||||
</panel>
|
||||
|
|
|
|||
Loading…
Reference in New Issue