summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreyL ProductEngine <andreylproductengine@lindenlab.com>2015-09-02 01:16:18 +0300
committerAndreyL ProductEngine <andreylproductengine@lindenlab.com>2015-09-02 01:16:18 +0300
commit70136a7e3d1ce1600ecc1b607923b6dd408b8d0e (patch)
tree244fb95b9bc72a0164b3bad4ed3c4161a7374882
parent540493b315d8b8380b4c0bc63e7021ad499a62f8 (diff)
MAINT-5297 Allow global toggle of 'View People Icons' - Global switch part
--HG-- branch : develop
-rwxr-xr-xindra/newview/app_settings/settings.xml11
-rwxr-xr-xindra/newview/llavatarlist.cpp14
-rwxr-xr-xindra/newview/llavatarlist.h2
-rw-r--r--indra/newview/llconversationview.cpp4
-rwxr-xr-xindra/newview/llfloaterimcontainer.cpp5
-rwxr-xr-xindra/newview/llpanelpeople.cpp24
-rwxr-xr-xindra/newview/skins/default/xui/en/menu_people_friends_view.xml4
-rwxr-xr-xindra/newview/skins/default/xui/en/menu_people_nearby_view.xml4
-rwxr-xr-xindra/newview/skins/default/xui/en/menu_people_recent_view.xml4
-rwxr-xr-xindra/newview/skins/default/xui/en/panel_preferences_setup.xml26
10 files changed, 78 insertions, 20 deletions
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 1ed4528cb1..96fbc8323b 100755
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -11007,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>
diff --git a/indra/newview/llavatarlist.cpp b/indra/newview/llavatarlist.cpp
index 8846d1317d..c7fa375ada 100755
--- a/indra/newview/llavatarlist.cpp
+++ b/indra/newview/llavatarlist.cpp
@@ -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();
diff --git a/indra/newview/llavatarlist.h b/indra/newview/llavatarlist.h
index 3542577ae3..159ff991e6 100755
--- a/indra/newview/llavatarlist.h
+++ b/indra/newview/llavatarlist.h
@@ -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();
diff --git a/indra/newview/llconversationview.cpp b/indra/newview/llconversationview.cpp
index 924a8d7206..3a6e4c4dfe 100644
--- a/indra/newview/llconversationview.cpp
+++ b/indra/newview/llconversationview.cpp
@@ -503,7 +503,7 @@ void LLConversationViewSession::refresh()
}
}
- setIconsVisible(gSavedSettings.getBOOL("ChatShowIcons"));
+ setIconsVisible(gSavedSettings.getBOOL("ChatShowIcons") && !gSavedSettings.getBOOL("GlobalShowIconsOverride"));
requestArrange();
// Do the regular upstream refresh
@@ -572,7 +572,7 @@ void LLConversationViewParticipant::initFromParams(const LLConversationViewParti
BOOL LLConversationViewParticipant::postBuild()
{
mAvatarIcon = getChild<LLAvatarIconCtrl>("avatar_icon");
- mAvatarIcon->setVisible(gSavedSettings.getBOOL("ChatShowIcons"));
+ mAvatarIcon->setVisible(gSavedSettings.getBOOL("ChatShowIcons") && !gSavedSettings.getBOOL("GlobalShowIconsOverride"));
mInfoBtn = getChild<LLButton>("info_btn");
mInfoBtn->setClickedCallback(boost::bind(&LLConversationViewParticipant::onInfoBtnClick, this));
diff --git a/indra/newview/llfloaterimcontainer.cpp b/indra/newview/llfloaterimcontainer.cpp
index 1c9b2e6acb..0a5a6e8e13 100755
--- a/indra/newview/llfloaterimcontainer.cpp
+++ b/indra/newview/llfloaterimcontainer.cpp
@@ -926,7 +926,8 @@ void LLFloaterIMContainer::onCustomAction(const LLSD& userdata)
}
if ("view_icons" == command)
{
- gSavedSettings.setBOOL("ChatShowIcons", !gSavedSettings.getBOOL("ChatShowIcons"));
+ gSavedSettings.setBOOL("ChatShowIcons", !(gSavedSettings.getBOOL("ChatShowIcons") && !gSavedSettings.getBOOL("GlobalShowIconsOverride")));
+ gSavedSettings.setBOOL("GlobalShowIconsOverride", (!gSavedSettings.getBOOL("ChatShowIcons") && gSavedSettings.getBOOL("GlobalShowIconsOverride")));
}
if ("chat_preferences" == command)
{
@@ -980,7 +981,7 @@ BOOL LLFloaterIMContainer::isActionChecked(const LLSD& userdata)
}
if ("view_icons" == command)
{
- return gSavedSettings.getBOOL("ChatShowIcons");
+ return gSavedSettings.getBOOL("ChatShowIcons") && !gSavedSettings.getBOOL("GlobalShowIconsOverride");
}
if ("Translating.Enabled" == command)
{
diff --git a/indra/newview/llpanelpeople.cpp b/indra/newview/llpanelpeople.cpp
index de4efc8612..6b86459d8f 100755
--- a/indra/newview/llpanelpeople.cpp
+++ b/indra/newview/llpanelpeople.cpp
@@ -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;
}
diff --git a/indra/newview/skins/default/xui/en/menu_people_friends_view.xml b/indra/newview/skins/default/xui/en/menu_people_friends_view.xml
index 8790fde7c5..02c6cfc006 100755
--- a/indra/newview/skins/default/xui/en/menu_people_friends_view.xml
+++ b/indra/newview/skins/default/xui/en/menu_people_friends_view.xml
@@ -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
diff --git a/indra/newview/skins/default/xui/en/menu_people_nearby_view.xml b/indra/newview/skins/default/xui/en/menu_people_nearby_view.xml
index da88ca9f4d..44b3d14e10 100755
--- a/indra/newview/skins/default/xui/en/menu_people_nearby_view.xml
+++ b/indra/newview/skins/default/xui/en/menu_people_nearby_view.xml
@@ -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
diff --git a/indra/newview/skins/default/xui/en/menu_people_recent_view.xml b/indra/newview/skins/default/xui/en/menu_people_recent_view.xml
index 1dbc90dd2b..cd2260d0c4 100755
--- a/indra/newview/skins/default/xui/en/menu_people_recent_view.xml
+++ b/indra/newview/skins/default/xui/en/menu_people_recent_view.xml
@@ -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>
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_setup.xml b/indra/newview/skins/default/xui/en/panel_preferences_setup.xml
index b201e071ef..a8be517f3c 100755
--- a/indra/newview/skins/default/xui/en/panel_preferences_setup.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_setup.xml
@@ -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>