[Pkg-owncloud-commits] [owncloud-client] 134/498: App: Do a regular check for updates, currently hardcoded every two hours.

Sandro Knauß hefee-guest at moszumanska.debian.org
Tue Aug 11 14:48:43 UTC 2015


This is an automated email from the git hooks/post-receive script.

hefee-guest pushed a commit to branch master
in repository owncloud-client.

commit 5b65bbf8e5da2eacf8508e54641b85db44fa9061
Author: Klaas Freitag <freitag at owncloud.com>
Date:   Wed Jun 3 09:04:12 2015 +0200

    App: Do a regular check for updates, currently hardcoded every two hours.
---
 src/gui/application.cpp       | 19 ++++++++++++-------
 src/gui/application.h         |  1 +
 src/gui/updater/ocupdater.cpp | 12 ++++++++++--
 src/gui/updater/updater.cpp   |  5 +++++
 src/gui/updater/updater.h     |  2 ++
 5 files changed, 30 insertions(+), 9 deletions(-)

diff --git a/src/gui/application.cpp b/src/gui/application.cpp
index 1295cee..5d60242 100644
--- a/src/gui/application.cpp
+++ b/src/gui/application.cpp
@@ -175,11 +175,10 @@ Application::Application(int &argc, char **argv) :
     // Also check immediatly
     QTimer::singleShot( 0, this, SLOT( slotCheckConnection() ));
 
-    if( cfg.skipUpdateCheck() ) {
-        qDebug() << Q_FUNC_INFO << "Skipping update check";
-    } else {
-        QTimer::singleShot( 3000, this, SLOT( slotStartUpdateDetector() ));
-    }
+    // Update checks
+    _updaterTimer.setInterval(1000*120*60); // check every two hours
+    connect(&_updaterTimer, SIGNAL(timeout()), this, SLOT(slotStartUpdateDetector()));
+    QTimer::singleShot( 3000, this, SLOT( slotStartUpdateDetector() ));
 
     connect (this, SIGNAL(aboutToQuit()), SLOT(slotCleanup()));
 
@@ -249,8 +248,14 @@ void Application::slotCleanup()
 
 void Application::slotStartUpdateDetector()
 {
-    Updater *updater = Updater::instance();
-    updater->backgroundCheckForUpdate();
+    ConfigFile cfg;
+
+    if( cfg.skipUpdateCheck() ) {
+        qDebug() << Q_FUNC_INFO << "Skipping update check because of config file";
+    } else {
+        Updater *updater = Updater::instance();
+        updater->backgroundCheckForUpdate();
+    }
 }
 
 void Application::slotCheckConnection()
diff --git a/src/gui/application.h b/src/gui/application.h
index 3657d79..d82343d 100644
--- a/src/gui/application.h
+++ b/src/gui/application.h
@@ -107,6 +107,7 @@ private:
     ClientProxy _proxy;
 
     QTimer _checkConnectionTimer;
+    QTimer _updaterTimer;
 
 #if defined(WITH_CRASHREPORTER)
     QScopedPointer<CrashReporter::Handler> _crashHandler;
diff --git a/src/gui/updater/ocupdater.cpp b/src/gui/updater/ocupdater.cpp
index 04c2ef5..c009fc7 100644
--- a/src/gui/updater/ocupdater.cpp
+++ b/src/gui/updater/ocupdater.cpp
@@ -65,8 +65,16 @@ bool OCUpdater::performUpdate()
 
 void OCUpdater::backgroundCheckForUpdate()
 {
-    // FIXME
-    checkForUpdate();
+    int dlState = downloadState();
+
+     if( dlState == Unknown ||
+             dlState == UpToDate         ||
+             dlState == DownloadComplete ||
+             dlState == DownloadFailed   ||
+             dlState == DownloadTimedOut ) {
+         // how about  UpdateOnlyAvailableThroughSystem?
+         checkForUpdate();
+     }
 }
 
 QString OCUpdater::statusString() const
diff --git a/src/gui/updater/updater.cpp b/src/gui/updater/updater.cpp
index 85db07b..f530191 100644
--- a/src/gui/updater/updater.cpp
+++ b/src/gui/updater/updater.cpp
@@ -125,4 +125,9 @@ QString Updater::clientVersion()
     return QString::fromLatin1(MIRALL_STRINGIFY(MIRALL_VERSION_FULL));
 }
 
+int Updater::downloadState() const
+{
+    return instance()->downloadState();
+}
+
 } // namespace OCC
diff --git a/src/gui/updater/updater.h b/src/gui/updater/updater.h
index 4dddeb3..746120a 100644
--- a/src/gui/updater/updater.h
+++ b/src/gui/updater/updater.h
@@ -33,6 +33,8 @@ public:
     virtual void checkForUpdate() = 0;
     virtual void backgroundCheckForUpdate() = 0;
 
+    int downloadState() const;
+
     virtual bool handleStartup() = 0;
 
 protected:

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud-client.git



More information about the Pkg-owncloud-commits mailing list