summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/newview/llviewercontrol.cpp14
-rw-r--r--indra/viewer_components/updater/llupdaterservice.cpp17
2 files changed, 25 insertions, 6 deletions
diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp
index f579c433e1..f65811598f 100644
--- a/indra/newview/llviewercontrol.cpp
+++ b/indra/newview/llviewercontrol.cpp
@@ -70,6 +70,7 @@
#include "llpaneloutfitsinventory.h"
#include "llpanellogin.h"
#include "llpaneltopinfobar.h"
+#include "llupdaterservice.h"
#ifdef TOGGLE_HACKED_GODLIKE_VIEWER
BOOL gHackGodmode = FALSE;
@@ -488,6 +489,18 @@ bool toggle_show_object_render_cost(const LLSD& newvalue)
return true;
}
+void toggle_updater_service_active(LLControlVariable* control, const LLSD& new_value)
+{
+ if(new_value.asBoolean())
+ {
+ LLUpdaterService().startChecking();
+ }
+ else
+ {
+ LLUpdaterService().stopChecking();
+ }
+}
+
////////////////////////////////////////////////////////////////////////////
void settings_setup_listeners()
@@ -635,6 +648,7 @@ void settings_setup_listeners()
gSavedSettings.getControl("ShowNavbarFavoritesPanel")->getSignal()->connect(boost::bind(&toggle_show_favorites_panel, _2));
gSavedSettings.getControl("ShowMiniLocationPanel")->getSignal()->connect(boost::bind(&toggle_show_mini_location_panel, _2));
gSavedSettings.getControl("ShowObjectRenderingCost")->getSignal()->connect(boost::bind(&toggle_show_object_render_cost, _2));
+ gSavedSettings.getControl("UpdaterServiceActive")->getSignal()->connect(&toggle_updater_service_active);
gSavedSettings.getControl("ForceShowGrid")->getSignal()->connect(boost::bind(&handleForceShowGrid, _2));
}
diff --git a/indra/viewer_components/updater/llupdaterservice.cpp b/indra/viewer_components/updater/llupdaterservice.cpp
index 6a40246497..58f2c7da76 100644
--- a/indra/viewer_components/updater/llupdaterservice.cpp
+++ b/indra/viewer_components/updater/llupdaterservice.cpp
@@ -175,12 +175,6 @@ void LLUpdaterServiceImpl::initialize(const std::string& protocol_version,
mPath = path;
mChannel = channel;
mVersion = version;
-
- // Check to see if an install is ready.
- if(!checkForInstall())
- {
- checkForResume();
- }
}
void LLUpdaterServiceImpl::setCheckPeriod(unsigned int seconds)
@@ -198,6 +192,12 @@ void LLUpdaterServiceImpl::startChecking()
mIsChecking = true;
+ // Check to see if an install is ready.
+ if(!checkForInstall())
+ {
+ checkForResume();
+ }
+
if(!mIsDownloading)
{
// Checking can only occur during the mainloop.
@@ -214,6 +214,11 @@ void LLUpdaterServiceImpl::stopChecking()
mIsChecking = false;
mTimer.stop();
}
+
+ if(mIsDownloading)
+ {
+ this->mUpdateDownloader.cancel();
+ }
}
bool LLUpdaterServiceImpl::isChecking()