Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/desktop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Kamm <mail@ckamm.de>2018-04-26 12:24:30 +0300
committerCamila (Rebase PR Action) <hello@camila.codes>2020-11-24 21:22:33 +0300
commita8ad94675875adea6faa6103df3544bed85d165d (patch)
treee7f7b4aa3b0c8e6a5197c8fd333e09967fc29999 /src/gui/updater
parent65035d1990704b2f1a1db33a0b7f8cd6b3ab73a9 (diff)
Settings: Add update channel combobox #6259
Diffstat (limited to 'src/gui/updater')
-rw-r--r--src/gui/updater/ocupdater.cpp5
-rw-r--r--src/gui/updater/ocupdater.h2
-rw-r--r--src/gui/updater/updater.cpp55
-rw-r--r--src/gui/updater/updater.h1
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;