summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/llavatarrendernotifier.cpp54
-rw-r--r--indra/newview/llavatarrendernotifier.h1
-rwxr-xr-xindra/newview/llfloaterpreference.cpp1
-rwxr-xr-xindra/newview/llvoavatar.cpp2
-rwxr-xr-xindra/newview/skins/default/xui/en/strings.xml1
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>