summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorAndrew A. de Laix <alain@lindenlab.com>2010-12-10 09:43:01 -0800
committerAndrew A. de Laix <alain@lindenlab.com>2010-12-10 09:43:01 -0800
commitb89b41991e49e24b826d1b44ebfe3587a8b248ab (patch)
tree37536640360038142ba0199ff8f7d2e80c26a7c2 /indra/newview
parent9a3f6c1e0cb690201f91f21e3be393bace827604 (diff)
ui improvements to more closely match UX design.
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/llappviewer.cpp52
-rw-r--r--indra/newview/lllogininstance.cpp8
-rw-r--r--indra/newview/skins/default/xui/en/notifications.xml38
-rw-r--r--indra/newview/tests/lllogininstance_test.cpp1
4 files changed, 85 insertions, 14 deletions
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 1306e92b35..41be4eb065 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -2408,6 +2408,49 @@ namespace {
LLUpdaterService().startChecking(install_if_ready);
}
}
+
+ void apply_update_ok_callback(LLSD const & notification, LLSD const & response)
+ {
+ llinfos << "LLUpdate restarting viewer" << llendl;
+ static const bool install_if_ready = true;
+ // *HACK - this lets us launch the installer immediately for now
+ LLUpdaterService().startChecking(install_if_ready);
+ }
+
+ void on_required_update_downloaded(LLSD const & data)
+ {
+ std::string notification_name;
+ if(LLStartUp::getStartupState() <= STATE_LOGIN_WAIT)
+ {
+ // The user never saw the progress bar.
+ notification_name = "RequiredUpdateDownloadedVerboseDialog";
+ }
+ else
+ {
+ notification_name = "RequiredUpdateDownloadedDialog";
+ }
+ LLSD substitutions;
+ substitutions["VERSION"] = data["version"];
+ LLNotificationsUtil::add(notification_name, substitutions, LLSD(), &apply_update_ok_callback);
+ }
+
+ void on_optional_update_downloaded(LLSD const & data)
+ {
+ std::string notification_name;
+ if(LLStartUp::getStartupState() < STATE_STARTED)
+ {
+ // CHOP-262 we need to use a different notification
+ // method prior to login.
+ notification_name = "DownloadBackgroundDialog";
+ }
+ else
+ {
+ notification_name = "DownloadBackgroundTip";
+ }
+ LLSD substitutions;
+ substitutions["VERSION"] = data["version"];
+ LLNotificationsUtil::add(notification_name, substitutions, LLSD(), apply_update_callback);
+ }
bool notify_update(LLSD const & evt)
{
@@ -2415,17 +2458,14 @@ namespace {
switch (evt["type"].asInteger())
{
case LLUpdaterService::DOWNLOAD_COMPLETE:
- if(LLStartUp::getStartupState() < STATE_STARTED)
+ if(evt["required"].asBoolean())
{
- // CHOP-262 we need to use a different notification
- // method prior to login.
- notification_name = "DownloadBackgroundDialog";
+ on_required_update_downloaded(evt);
}
else
{
- notification_name = "DownloadBackgroundTip";
+ on_optional_update_downloaded(evt);
}
- LLNotificationsUtil::add(notification_name, LLSD(), LLSD(), apply_update_callback);
break;
case LLUpdaterService::INSTALL_ERROR:
LLNotificationsUtil::add("FailedUpdateInstall");
diff --git a/indra/newview/lllogininstance.cpp b/indra/newview/lllogininstance.cpp
index 3ff1487286..1858cbdcd9 100644
--- a/indra/newview/lllogininstance.cpp
+++ b/indra/newview/lllogininstance.cpp
@@ -62,6 +62,7 @@
#include "llappviewer.h"
#include <boost/scoped_ptr.hpp>
+#include <sstream>
namespace {
class MandatoryUpdateMachine {
@@ -261,7 +262,7 @@ void MandatoryUpdateMachine::CheckingForUpdate::enter(void)
mProgressView = gViewerWindow->getProgressView();
mProgressView->setMessage("Looking for update...");
- mProgressView->setText("Update");
+ mProgressView->setText("There is a required update for your Second Life installation.");
mProgressView->setPercent(0);
mProgressView->setVisible(true);
mConnection = LLEventPumps::instance().obtain(LLUpdaterService::pumpName()).
@@ -411,7 +412,10 @@ void MandatoryUpdateMachine::WaitingForDownload::enter(void)
llinfos << "entering waiting for download" << llendl;
mProgressView = gViewerWindow->getProgressView();
mProgressView->setMessage("Downloading update...");
- mProgressView->setText("Update");
+ std::ostringstream stream;
+ stream << "There is a required update for your Second Life installation." << std::endl <<
+ "Version " << mMachine.mUpdaterService.updatedVersion();
+ mProgressView->setText(stream.str());
mProgressView->setPercent(0);
mProgressView->setVisible(true);
mConnection = LLEventPumps::instance().obtain(LLUpdaterService::pumpName()).
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
index 80a210f9bc..eecbeeb8dc 100644
--- a/indra/newview/skins/default/xui/en/notifications.xml
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -2893,6 +2893,9 @@ http://secondlife.com/download.
name="UpdaterServiceNotRunning"
type="alertmodal">
There is a required update for your Second Life Installation.
+
+You may download this update from http://www.secondlife.com/downloads
+or you can install it now.
<usetemplate
name="okcancelbuttons"
notext="Quit Second Life"
@@ -2903,8 +2906,8 @@ There is a required update for your Second Life Installation.
icon="notify.tga"
name="DownloadBackgroundTip"
type="notify">
-An updated version of [APP_NAME] has been downloaded.
-It will be applied the next time you restart [APP_NAME]
+We have downloaded and update to your [APP_NAME] installation.
+Version [VERSION]
<usetemplate
name="okcancelbuttons"
notext="Wait"
@@ -2915,12 +2918,35 @@ It will be applied the next time you restart [APP_NAME]
icon="alertmodal.tga"
name="DownloadBackgroundDialog"
type="alertmodal">
- An updated version of [APP_NAME] has been downloaded.
- It will be applied the next time you restart [APP_NAME]
+We have downloaded and update to your [APP_NAME] installation.
+Version [VERSION]
<usetemplate
name="okcancelbuttons"
- notext="Wait"
- yestext="Restart Now"/>
+ notext="Later..."
+ yestext="Install now and restart [APP_NAME]"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="RequiredUpdateDownloadedVerboseDialog"
+ type="alertmodal">
+We have downloaded a required software update.
+Version [VERSION]
+
+We must restart [APP_NAME] to install the update.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="RequiredUpdateDownloadedDialog"
+ type="alertmodal">
+We must restart [APP_NAME] to install the update.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
</notification>
<notification
diff --git a/indra/newview/tests/lllogininstance_test.cpp b/indra/newview/tests/lllogininstance_test.cpp
index 59a8e40607..9e321db889 100644
--- a/indra/newview/tests/lllogininstance_test.cpp
+++ b/indra/newview/tests/lllogininstance_test.cpp
@@ -219,6 +219,7 @@ void LLUpdaterService::startChecking(bool install_if_ready) {}
void LLUpdaterService::stopChecking() {}
bool LLUpdaterService::isChecking() { return false; }
LLUpdaterService::eUpdaterState LLUpdaterService::getState() { return INITIAL; }
+std::string LLUpdaterService::updatedVersion() { return ""; }
//-----------------------------------------------------------------------------
#include "llnotifications.h"