From 098fa21c4f812b94348c0631c29babff68968d3d Mon Sep 17 00:00:00 2001
From: brad kittenbrink <brad@lindenlab.com>
Date: Wed, 17 Nov 2010 17:06:21 -0800
Subject: [PATCH] Work on CHOP-135: Hooking up setting UpdaterServiceActive to
 functionality. Paired with Mani. Toggling the setting now calls
 LLUpdaterService::startChecking() and LLUpdaterService::stopChecking(), which
 enable and disable the service.

---
 indra/newview/llviewercontrol.cpp               | 14 ++++++++++++++
 .../updater/llupdaterservice.cpp                | 17 +++++++++++------
 2 files changed, 25 insertions(+), 6 deletions(-)

diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp
index f579c433e18..f65811598fa 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 6a402464970..58f2c7da769 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()
-- 
GitLab