diff options
author | Christian Kamm <mail@ckamm.de> | 2018-04-26 12:24:30 +0300 |
---|---|---|
committer | Camila (Rebase PR Action) <hello@camila.codes> | 2020-11-24 21:22:33 +0300 |
commit | a8ad94675875adea6faa6103df3544bed85d165d (patch) | |
tree | e7f7b4aa3b0c8e6a5197c8fd333e09967fc29999 /src/gui/updater | |
parent | 65035d1990704b2f1a1db33a0b7f8cd6b3ab73a9 (diff) |
Settings: Add update channel combobox #6259
Diffstat (limited to 'src/gui/updater')
-rw-r--r-- | src/gui/updater/ocupdater.cpp | 5 | ||||
-rw-r--r-- | src/gui/updater/ocupdater.h | 2 | ||||
-rw-r--r-- | src/gui/updater/updater.cpp | 55 | ||||
-rw-r--r-- | src/gui/updater/updater.h | 1 |
4 files changed, 39 insertions, 24 deletions
diff --git a/src/gui/updater/ocupdater.cpp b/src/gui/updater/ocupdater.cpp index 3f772ef01..4a84b3fa5 100644 --- a/src/gui/updater/ocupdater.cpp +++ b/src/gui/updater/ocupdater.cpp @@ -92,6 +92,11 @@ OCUpdater::OCUpdater(const QUrl &url) { } +void OCUpdater::setUpdateUrl(const QUrl &url) +{ + _updateUrl = url; +} + bool OCUpdater::performUpdate() { ConfigFile cfg; diff --git a/src/gui/updater/ocupdater.h b/src/gui/updater/ocupdater.h index f88875c50..34c940732 100644 --- a/src/gui/updater/ocupdater.h +++ b/src/gui/updater/ocupdater.h @@ -99,6 +99,8 @@ public: UpdateOnlyAvailableThroughSystem }; explicit OCUpdater(const QUrl &url); + void setUpdateUrl(const QUrl &url); + bool performUpdate(); void checkForUpdate() override; diff --git a/src/gui/updater/updater.cpp b/src/gui/updater/updater.cpp index 227d67afd..36fd3f06f 100644 --- a/src/gui/updater/updater.cpp +++ b/src/gui/updater/updater.cpp @@ -23,6 +23,7 @@ #include "theme.h" #include "common/utility.h" #include "version.h" +#include "configfile.h" #include "config.h" #include "configfile.h" @@ -41,6 +42,27 @@ Updater *Updater::instance() return _instance; } +QUrl Updater::updateUrl() +{ + QUrl updateBaseUrl(QString::fromLocal8Bit(qgetenv("OCC_UPDATE_URL"))); + if (updateBaseUrl.isEmpty()) { + updateBaseUrl = QUrl(QLatin1String(APPLICATION_UPDATE_URL)); + } + if (!updateBaseUrl.isValid() || updateBaseUrl.host() == ".") { + return QUrl(); + } + + auto urlQuery = getQueryParams(); + +#if defined(Q_OS_MAC) && defined(HAVE_SPARKLE) + urlQuery.addQueryItem(QLatin1String("sparkle"), QLatin1String("true")); +#endif + + updateBaseUrl.setQuery(urlQuery); + + return updateBaseUrl; +} + QUrlQuery Updater::getQueryParams() { QUrlQuery query; @@ -66,14 +88,10 @@ QUrlQuery Updater::getQueryParams() QString suffix = QString::fromLatin1(MIRALL_STRINGIFY(MIRALL_VERSION_SUFFIX)); query.addQueryItem(QLatin1String("versionsuffix"), suffix); - if (suffix.startsWith("daily") - || suffix.startsWith("nightly") - || suffix.startsWith("alpha") - || suffix.startsWith("rc") - || suffix.startsWith("beta")) { - query.addQueryItem(QLatin1String("channel"), "beta"); - // FIXME: Provide a checkbox in UI to enable regular versions to switch - // to beta channel + + auto channel = ConfigFile().updateChannel(); + if (channel != "stable") { + query.addQueryItem(QLatin1String("channel"), channel); } // updateSegment (see configfile.h) @@ -105,30 +123,19 @@ QString Updater::getSystemInfo() // To test, cmake with -DAPPLICATION_UPDATE_URL="http://127.0.0.1:8080/test.rss" Updater *Updater::create() { - QUrl updateBaseUrl(QString::fromLocal8Bit(qgetenv("OCC_UPDATE_URL"))); - if (updateBaseUrl.isEmpty()) { - updateBaseUrl = QUrl(QLatin1String(APPLICATION_UPDATE_URL)); - } - if (!updateBaseUrl.isValid() || updateBaseUrl.host() == ".") { + auto url = updateUrl(); + if (url.isEmpty()) { qCWarning(lcUpdater) << "Not a valid updater URL, will not do update check"; return nullptr; } - auto urlQuery = getQueryParams(); - -#if defined(Q_OS_MAC) && defined(HAVE_SPARKLE) - urlQuery.addQueryItem(QLatin1String("sparkle"), QLatin1String("true")); -#endif - - updateBaseUrl.setQuery(urlQuery); - #if defined(Q_OS_MAC) && defined(HAVE_SPARKLE) - return new SparkleUpdater(updateBaseUrl.toString()); + return new SparkleUpdater(url.toString()); #elif defined(Q_OS_WIN32) // the best we can do is notify about updates - return new NSISUpdater(updateBaseUrl); + return new NSISUpdater(url); #else - return new PassiveUpdateNotifier(QUrl(updateBaseUrl)); + return new PassiveUpdateNotifier(url); #endif } diff --git a/src/gui/updater/updater.h b/src/gui/updater/updater.h index d74434001..33ba22341 100644 --- a/src/gui/updater/updater.h +++ b/src/gui/updater/updater.h @@ -37,6 +37,7 @@ public: }; static Updater *instance(); + static QUrl updateUrl(); virtual void checkForUpdate() = 0; virtual void backgroundCheckForUpdate() = 0; |