diff options
author | AndreyL ProductEngine <andreylproductengine@lindenlab.com> | 2015-09-02 01:16:18 +0300 |
---|---|---|
committer | AndreyL ProductEngine <andreylproductengine@lindenlab.com> | 2015-09-02 01:16:18 +0300 |
commit | 70136a7e3d1ce1600ecc1b607923b6dd408b8d0e (patch) | |
tree | 244fb95b9bc72a0164b3bad4ed3c4161a7374882 | |
parent | 540493b315d8b8380b4c0bc63e7021ad499a62f8 (diff) |
MAINT-5297 Allow global toggle of 'View People Icons' - Global switch part
--HG--
branch : develop
-rwxr-xr-x | indra/newview/app_settings/settings.xml | 11 | ||||
-rwxr-xr-x | indra/newview/llavatarlist.cpp | 14 | ||||
-rwxr-xr-x | indra/newview/llavatarlist.h | 2 | ||||
-rw-r--r-- | indra/newview/llconversationview.cpp | 4 | ||||
-rwxr-xr-x | indra/newview/llfloaterimcontainer.cpp | 5 | ||||
-rwxr-xr-x | indra/newview/llpanelpeople.cpp | 24 | ||||
-rwxr-xr-x | indra/newview/skins/default/xui/en/menu_people_friends_view.xml | 4 | ||||
-rwxr-xr-x | indra/newview/skins/default/xui/en/menu_people_nearby_view.xml | 4 | ||||
-rwxr-xr-x | indra/newview/skins/default/xui/en/menu_people_recent_view.xml | 4 | ||||
-rwxr-xr-x | indra/newview/skins/default/xui/en/panel_preferences_setup.xml | 26 |
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> |