summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/newview/llappviewer.cpp12
-rw-r--r--indra/newview/llpanelavatar.cpp16
-rw-r--r--indra/newview/llpanelavatar.h1
-rw-r--r--indra/newview/skins/default/xui/en/panel_profile.xml8
-rw-r--r--indra/viewer_components/updater/llupdaterservice.cpp6
5 files changed, 31 insertions, 12 deletions
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 69333ff4a3..a23f809b71 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -2473,16 +2473,24 @@ namespace {
if(data["required"].asBoolean())
{
- apply_callback = &apply_update_ok_callback;
if(LLStartUp::getStartupState() <= STATE_LOGIN_WAIT)
{
// The user never saw the progress bar.
+ apply_callback = &apply_update_ok_callback;
notification_name = "RequiredUpdateDownloadedVerboseDialog";
}
- else
+ else if(LLStartUp::getStartupState() < STATE_WORLD_INIT)
{
+ // The user is logging in but blocked.
+ apply_callback = &apply_update_ok_callback;
notification_name = "RequiredUpdateDownloadedDialog";
}
+ else
+ {
+ // The user is already logged in; treat like an optional update.
+ apply_callback = &apply_update_callback;
+ notification_name = "DownloadBackgroundTip";
+ }
}
else
{
diff --git a/indra/newview/llpanelavatar.cpp b/indra/newview/llpanelavatar.cpp
index 53529b9f8b..73c4722b82 100644
--- a/indra/newview/llpanelavatar.cpp
+++ b/indra/newview/llpanelavatar.cpp
@@ -625,8 +625,13 @@ void LLPanelAvatarProfile::processGroupProperties(const LLAvatarGroups* avatar_g
getChild<LLUICtrl>("sl_groups")->setValue(groups);
}
-void LLPanelAvatarProfile::got_full_name_callback( const LLUUID& id, const std::string& full_name, bool is_group )
+static void got_full_name_callback( LLHandle<LLPanel> profile_panel_handle, const std::string& full_name )
{
+ if (profile_panel_handle.isDead() ) return;
+
+ LLPanelAvatarProfile* profile_panel = dynamic_cast<LLPanelAvatarProfile*>(profile_panel_handle.get());
+ if ( ! profile_panel ) return;
+
LLStringUtil::format_map_t args;
std::string name;
@@ -641,8 +646,8 @@ void LLPanelAvatarProfile::got_full_name_callback( const LLUUID& id, const std::
args["[NAME]"] = name;
- std::string linden_name = getString("name_text_args", args);
- getChild<LLUICtrl>("name_descr_text")->setValue(linden_name);
+ std::string linden_name = profile_panel->getString("name_text_args", args);
+ profile_panel->getChild<LLUICtrl>("name_descr_text")->setValue(linden_name);
}
void LLPanelAvatarProfile::onNameCache(const LLUUID& agent_id, const LLAvatarName& av_name)
@@ -667,16 +672,17 @@ void LLPanelAvatarProfile::fillCommonData(const LLAvatarData* avatar_data)
}
// ask (asynchronously) for the avatar name
+ LLHandle<LLPanel> profile_panel_handle = getHandle();
std::string full_name;
if (gCacheName->getFullName(avatar_data->agent_id, full_name))
{
// name in cache, call callback directly
- got_full_name_callback( avatar_data->agent_id, full_name, false );
+ got_full_name_callback( profile_panel_handle, full_name );
}
else
{
// not in cache, lookup name
- gCacheName->get(avatar_data->agent_id, false, boost::bind( &LLPanelAvatarProfile::got_full_name_callback, this, _1, _2, _3 ));
+ gCacheName->get(avatar_data->agent_id, false, boost::bind( got_full_name_callback, profile_panel_handle, _2 ));
}
// get display name
diff --git a/indra/newview/llpanelavatar.h b/indra/newview/llpanelavatar.h
index 5f36d1026f..e95441cd58 100644
--- a/indra/newview/llpanelavatar.h
+++ b/indra/newview/llpanelavatar.h
@@ -209,7 +209,6 @@ protected:
void onShareButtonClick();
private:
- void got_full_name_callback( const LLUUID& id, const std::string& full_name, bool is_group );
void onNameCache(const LLUUID& agent_id, const LLAvatarName& av_name);
typedef std::map< std::string,LLUUID> group_map_t;
diff --git a/indra/newview/skins/default/xui/en/panel_profile.xml b/indra/newview/skins/default/xui/en/panel_profile.xml
index 61e3bb354f..d36220385d 100644
--- a/indra/newview/skins/default/xui/en/panel_profile.xml
+++ b/indra/newview/skins/default/xui/en/panel_profile.xml
@@ -34,6 +34,14 @@
name="RegisterDateFormat">
[REG_DATE] ([AGE])
</string>
+ <string
+ name="name_text_args">
+ [NAME]
+ </string>
+ <string
+ name="display_name_text_args">
+ [DISPLAY_NAME]
+ </string>
<layout_stack
name="layout"
orientation="vertical"
diff --git a/indra/viewer_components/updater/llupdaterservice.cpp b/indra/viewer_components/updater/llupdaterservice.cpp
index ea242f45cd..1888f191e2 100644
--- a/indra/viewer_components/updater/llupdaterservice.cpp
+++ b/indra/viewer_components/updater/llupdaterservice.cpp
@@ -373,9 +373,8 @@ void LLUpdaterServiceImpl::optionalUpdate(std::string const & newVersion,
stopTimer();
mNewVersion = newVersion;
mIsDownloading = true;
- mUpdateDownloader.download(uri, hash, newVersion, false);
-
setState(LLUpdaterService::DOWNLOADING);
+ mUpdateDownloader.download(uri, hash, newVersion, false);
}
void LLUpdaterServiceImpl::requiredUpdate(std::string const & newVersion,
@@ -385,9 +384,8 @@ void LLUpdaterServiceImpl::requiredUpdate(std::string const & newVersion,
stopTimer();
mNewVersion = newVersion;
mIsDownloading = true;
- mUpdateDownloader.download(uri, hash, newVersion, true);
-
setState(LLUpdaterService::DOWNLOADING);
+ mUpdateDownloader.download(uri, hash, newVersion, true);
}
void LLUpdaterServiceImpl::upToDate(void)