summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/newview/llappviewer.cpp16
-rw-r--r--indra/newview/skins/default/xui/en/notifications.xml10
-rw-r--r--indra/viewer_components/updater/llupdaterservice.cpp4
-rw-r--r--indra/viewer_components/updater/llupdaterservice.h5
4 files changed, 31 insertions, 4 deletions
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 548bebcfa9..b5238e6d2c 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -2390,8 +2390,20 @@ namespace {
// do we need a file llupdaterui.cpp or something? -brad
bool notify_update(LLSD const & evt)
{
- LLNotificationsUtil::add("DownloadBackground");
- // let others also handle this event by default
+ switch (evt["type"].asInteger())
+ {
+ case LLUpdaterService::DOWNLOAD_COMPLETE:
+ LLNotificationsUtil::add("DownloadBackground");
+ break;
+ case LLUpdaterService::INSTALL_ERROR:
+ LLNotificationsUtil::add("FailedUpdateInstall");
+ break;
+ default:
+ llinfos << "unhandled update event " << evt << llendl;
+ break;
+ }
+
+ // let others also handle this event by default
return false;
}
};
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
index 40d5f75de2..a342db8442 100644
--- a/indra/newview/skins/default/xui/en/notifications.xml
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -2870,6 +2870,16 @@ Download to your Applications folder?
</notification>
<notification
+ icon="alertmodal.tga"
+ name="FailedUpdateInstall"
+ type="alertmodal">
+Gadzooks, I failed to install the latest update.
+Get thee to the interwebs and install it thyself.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+ <notification
icon="notifytip.tga"
name="DownloadBackground"
type="notifytip">
diff --git a/indra/viewer_components/updater/llupdaterservice.cpp b/indra/viewer_components/updater/llupdaterservice.cpp
index 58f2c7da76..b49f6d04b0 100644
--- a/indra/viewer_components/updater/llupdaterservice.cpp
+++ b/indra/viewer_components/updater/llupdaterservice.cpp
@@ -408,6 +408,10 @@ bool LLUpdaterServiceImpl::onMainLoop(LLSD const & event)
llinfos << "found marker " << ll_install_failed_marker_path() << llendl;
llinfos << "last install attempt failed" << llendl;
LLFile::remove(ll_install_failed_marker_path());
+
+ LLSD event;
+ event["type"] = LLSD(LLUpdaterService::INSTALL_ERROR);
+ LLEventPumps::instance().obtain(LLUpdaterService::pumpName()).post(event);
}
else
{
diff --git a/indra/viewer_components/updater/llupdaterservice.h b/indra/viewer_components/updater/llupdaterservice.h
index 8d0b95be86..55824af188 100644
--- a/indra/viewer_components/updater/llupdaterservice.h
+++ b/indra/viewer_components/updater/llupdaterservice.h
@@ -44,10 +44,11 @@ public:
static std::string const & pumpName(void);
// Type codes for events posted by this service. Stored the event's 'type' element.
- enum UpdateEvent {
+ enum eUpdateEvent {
INVALID,
DOWNLOAD_COMPLETE,
- DOWNLOAD_ERROR
+ DOWNLOAD_ERROR,
+ INSTALL_ERROR
};
LLUpdaterService();