diff options
Diffstat (limited to 'indra')
-rw-r--r-- | indra/newview/llavatarrendernotifier.cpp | 54 | ||||
-rw-r--r-- | indra/newview/llavatarrendernotifier.h | 1 | ||||
-rwxr-xr-x | indra/newview/llfloaterpreference.cpp | 1 | ||||
-rwxr-xr-x | indra/newview/llvoavatar.cpp | 2 | ||||
-rwxr-xr-x | indra/newview/skins/default/xui/en/strings.xml | 1 |
5 files changed, 46 insertions, 13 deletions
diff --git a/indra/newview/llavatarrendernotifier.cpp b/indra/newview/llavatarrendernotifier.cpp index f39e84786b..da8bfae1a9 100644 --- a/indra/newview/llavatarrendernotifier.cpp +++ b/indra/newview/llavatarrendernotifier.cpp @@ -32,11 +32,13 @@ // std headers // external library headers // other Linden headers +#include "llagent.h" #include "llagentwearables.h" #include "llnotifications.h" #include "llnotificationsutil.h" #include "llnotificationtemplate.h" #include "lltimer.h" +#include "llvoavatarself.h" #include "llviewercontrol.h" #include "lltrans.h" // associated header @@ -57,13 +59,14 @@ mLatestAgentsCount(0), mLatestOverLimitAgents(0), mLatestAgentComplexity(0), mLatestOverLimitPct(0.0f), -mShowOverLimitAgents(false) +mShowOverLimitAgents(false), +mNotifyOutfitLoading(false) { } std::string LLAvatarRenderNotifier::overLimitMessage() { - + static const char* everyone_now = "av_render_everyone_now"; static const char* not_everyone = "av_render_not_everyone"; static const char* over_half = "av_render_over_half"; static const char* most = "av_render_most_of"; @@ -80,7 +83,7 @@ std::string LLAvatarRenderNotifier::overLimitMessage() } else if ( mLatestOverLimitPct >= 50.0 ) { - message = over_half; + message = over_half; } else if ( mLatestOverLimitPct > 10.0 ) { @@ -88,7 +91,8 @@ std::string LLAvatarRenderNotifier::overLimitMessage() } else { - // message is left empty + // Will be shown only after overlimit was > 0 + message = everyone_now; } return LLTrans::getString(message); } @@ -101,11 +105,11 @@ void LLAvatarRenderNotifier::displayNotification() LLSD args; args["AGENT_COMPLEXITY"] = LLSD::Integer(mLatestAgentComplexity); std::string notification_name; - std::string notification_message = overLimitMessage(); - if (mShowOverLimitAgents && !notification_message.empty()) - { - notification_name = "RegionAndAgentComplexity"; - args["OVERLIMIT_MSG"] = notification_message; + if (mShowOverLimitAgents) + { + std::string notification_message = overLimitMessage(); + notification_name = "RegionAndAgentComplexity"; + args["OVERLIMIT_MSG"] = notification_message; } else { @@ -211,9 +215,35 @@ void LLAvatarRenderNotifier::updateNotificationRegion(U32 agentcount, U32 overLi void LLAvatarRenderNotifier::updateNotificationAgent(U32 agentComplexity) { - // save the value for use in following messages - mLatestAgentComplexity = agentComplexity; + // save the value for use in following messages + mLatestAgentComplexity = agentComplexity; - updateNotification(); + if (!mNotifyOutfitLoading) + { + // We should not notify about initial outfit and it's load process without reason + if (isAgentAvatarValid() + && gAgent.isInitialized() + && gAgent.isOutfitChosen() + && gAgentWearables.areWearablesLoaded() + && gAgentAvatarp->isFullyLoaded()) + { + // Initial outfit was fully loaded + mNotifyOutfitLoading = true; + } + else if (mLatestOverLimitAgents > 0 + || mAgentComplexity > mLatestAgentComplexity) + { + // Some users can't see agent already or user switched outfits, + // this is a reason to show load process + mNotifyOutfitLoading = true; + } + else + { + mAgentComplexity = mLatestAgentComplexity; + return; + } + } + + updateNotification(); } diff --git a/indra/newview/llavatarrendernotifier.h b/indra/newview/llavatarrendernotifier.h index d4de5ca87f..20fcc5d277 100644 --- a/indra/newview/llavatarrendernotifier.h +++ b/indra/newview/llavatarrendernotifier.h @@ -68,6 +68,7 @@ private: F32 mLatestOverLimitPct; bool mShowOverLimitAgents; + bool mNotifyOutfitLoading; std::string overLimitMessage(); }; diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index 7083c1ddf5..38c9ba2850 100755 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -1819,6 +1819,7 @@ void LLFloaterPreference::setPersonalInfo(const std::string& visibility, bool im getChildView("favorites_on_login_check")->setEnabled(TRUE); getChildView("log_path_button")->setEnabled(TRUE); getChildView("chat_font_size")->setEnabled(TRUE); + getChildView("conversation_log_combo")->setEnabled(TRUE); } diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index cbfcad76f3..c5a6868502 100755 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -8437,7 +8437,7 @@ void LLVOAvatar::calculateUpdateRenderComplexity() mVisualComplexity = cost; mVisualComplexityStale = false; - LLCachedControl<U32> show_my_complexity_changes(gSavedSettings, "ShowMyComplexityChanges", 20); + static LLCachedControl<U32> show_my_complexity_changes(gSavedSettings, "ShowMyComplexityChanges", 20); if (isSelf() && show_my_complexity_changes) { diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index d61511f60f..2950edce9d 100755 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -2490,6 +2490,7 @@ This feature is currently in Beta. Please add your name to this [http://goo.gl/f <!-- Avatar complexity rendering messages, see llavatarrendernotifier --> + <string name="av_render_everyone_now">Everyone can see you now.</string> <string name="av_render_not_everyone">You may not be rendered by everyone around you.</string> <string name="av_render_over_half">You may not be rendered by over half of those around you.</string> <string name="av_render_most_of">You may not be rendered by most of those around you.</string> |