44 * SPDX-License-Identifier: GPL-2.0-or-later
55 */
66
7- #include " config.h"
8-
97#include " configfile.h"
10- #include " theme.h"
11- #include " version.h"
12- #include " common/utility.h"
13- #include " common/asserts.h"
14- #include " version.h"
158
16- #include " creds/abstractcredentials.h"
9+ #include " common/asserts.h"
10+ #include " common/utility.h"
11+ #include " config.h"
1712#include " creds/keychainchunk.h"
18-
1913#include " csync_exclude.h"
14+ #include " theme.h"
15+ #include " updatechannel.h"
16+ #include " version.h"
2017
2118#ifndef TOKEN_AUTH_ONLY
2219#include < QWidget>
@@ -77,11 +74,6 @@ static constexpr char certPasswd[] = "http_certificatePasswd";
7774static constexpr char serverHasValidSubscriptionC[] = " serverHasValidSubscription" ;
7875static constexpr char desktopEnterpriseChannelName[] = " desktopEnterpriseChannel" ;
7976
80- static const QStringList defaultUpdateChannelsList { QStringLiteral (" stable" ), QStringLiteral (" beta" ), QStringLiteral (" daily" ) };
81- static const QString defaultUpdateChannelName = " stable" ;
82- static const QStringList enterpriseUpdateChannelsList { QStringLiteral (" stable" ), QStringLiteral (" enterprise" ) };
83- static const QString defaultEnterpriseChannel = " enterprise" ;
84-
8577static constexpr char languageC[] = " language" ;
8678
8779static constexpr char lastSelectedAccountC[] = " lastSelectedAccount" ;
@@ -686,14 +678,20 @@ QStringList ConfigFile::validUpdateChannels() const
686678 const auto isBranded = Theme::instance ()->isBranded ();
687679
688680 if (isBranded) {
689- return { defaultUpdateChannelName };
681+ return {UpdateChannel::defaultUpdateChannel (). toString () };
690682 }
691683
684+ const QList<UpdateChannel> *channel_list = &UpdateChannel::defaultUpdateChannelList ();
692685 if (serverHasValidSubscription ()) {
693- return enterpriseUpdateChannelsList;
686+ channel_list = &UpdateChannel::enterpriseUpdateChannelsList ();
687+ }
688+
689+ QStringList list;
690+ for (const auto &channel : *channel_list) {
691+ list.append (channel.toString ());
694692 }
695693
696- return defaultUpdateChannelsList ;
694+ return list ;
697695}
698696
699697QString ConfigFile::defaultUpdateChannel () const
@@ -713,14 +711,24 @@ QString ConfigFile::defaultUpdateChannel() const
713711 return currentVersionSuffix;
714712 }
715713
716- qCWarning (lcConfigFile ()) << " Default update channel is" << defaultUpdateChannelName ;
717- return defaultUpdateChannelName ;
714+ qCWarning (lcConfigFile ()) << " Default update channel is" << UpdateChannel::defaultUpdateChannel (). toString () ;
715+ return UpdateChannel::defaultUpdateChannel (). toString () ;
718716}
719717
720718QString ConfigFile::currentUpdateChannel () const
721719{
720+ if (const auto isBranded = Theme::instance ()->isBranded (); isBranded) {
721+ return UpdateChannel::defaultUpdateChannel ().toString ();
722+ }
723+
722724 QSettings settings (configFile (), QSettings::IniFormat);
723- return settings.value (QLatin1String (updateChannelC), defaultUpdateChannel ()).toString ();
725+ const auto currentChannel = UpdateChannel::fromString (settings.value (QLatin1String (updateChannelC), defaultUpdateChannel ()).toString ());
726+ if (serverHasValidSubscription ()) {
727+ const auto enterpriseChannel = UpdateChannel::fromString (desktopEnterpriseChannel ());
728+ return UpdateChannel::mostStable (currentChannel, enterpriseChannel).toString ();
729+ }
730+
731+ return currentChannel.toString ();
724732}
725733
726734void ConfigFile::setUpdateChannel (const QString &channel)
@@ -1209,13 +1217,13 @@ void ConfigFile::setServerHasValidSubscription(const bool valid)
12091217QString ConfigFile::desktopEnterpriseChannel () const
12101218{
12111219 QSettings settings (configFile (), QSettings::IniFormat);
1212- return settings.value (QLatin1String (desktopEnterpriseChannelName), defaultUpdateChannelName ).toString ();
1220+ return settings.value (QLatin1String (desktopEnterpriseChannelName), UpdateChannel::defaultUpdateChannel (). toString () ).toString ();
12131221}
12141222
12151223void ConfigFile::setDesktopEnterpriseChannel (const QString &channel)
12161224{
12171225 QSettings settings (configFile (), QSettings::IniFormat);
1218- settings.setValue (QLatin1String (desktopEnterpriseChannelName), channel);
1226+ settings.setValue (QLatin1String (desktopEnterpriseChannelName), UpdateChannel::fromString ( channel). toString () );
12191227}
12201228
12211229QString ConfigFile::language () const
0 commit comments