@@ -276,9 +276,11 @@ bool AccountManager::restoreFromLegacySettings()
276276 selectedAccountIds = childGroups;
277277 }
278278
279+ const auto legacyVersion = oCSettings->value (ConfigFile::clientVersionC, {}).toString ();
280+ ConfigFile ().setClientPreviousVersionString (legacyVersion);
281+ qCInfo (lcAccountManager) << " Migrating from" << legacyVersion;
279282 qCInfo (lcAccountManager) << " Copy settings" << oCSettings->allKeys ().join (" , " );
280283 settings = std::move (oCSettings);
281-
282284 ConfigFile::setDiscoveredLegacyConfigPath (configFileInfo.canonicalPath ());
283285 break ;
284286 } else {
@@ -288,21 +290,47 @@ bool AccountManager::restoreFromLegacySettings()
288290 }
289291
290292 ConfigFile configFile;
293+ // General settings
291294 configFile.setVfsEnabled (settings->value (ConfigFile::isVfsEnabledC, configFile.isVfsEnabled ()).toBool ());
292- configFile.setLaunchOnSystemStartup (settings->value (ConfigFile::launchOnSystemStartupC, configFile.launchOnSystemStartup ()).toBool ());
293- configFile.setOptionalServerNotifications (settings->value (ConfigFile::optionalServerNotificationsC, configFile.optionalServerNotifications ()).toBool ());
294- configFile.setPromptDeleteFiles (settings->value (ConfigFile::promptDeleteC, configFile.promptDeleteFiles ()).toBool ());
295- configFile.setShowCallNotifications (settings->value (ConfigFile::showCallNotificationsC, configFile.showCallNotifications ()).toBool ());
296- configFile.setShowChatNotifications (settings->value (ConfigFile::showChatNotificationsC, configFile.showChatNotifications ()).toBool ());
297- configFile.setShowQuotaWarningNotifications (settings->value (ConfigFile::showQuotaWarningNotificationsC, configFile.showQuotaWarningNotifications ()).toBool ());
298- configFile.setShowInExplorerNavigationPane (settings->value (ConfigFile::showInExplorerNavigationPaneC, configFile.showInExplorerNavigationPane ()).toBool ());
295+ configFile.setLaunchOnSystemStartup (settings->value (ConfigFile::launchOnSystemStartupC,
296+ configFile.launchOnSystemStartup ()).toBool ());
297+ configFile.setOptionalServerNotifications (settings->value (ConfigFile::optionalServerNotificationsC,
298+ configFile.optionalServerNotifications ()).toBool ());
299+ configFile.setPromptDeleteFiles (settings->value (ConfigFile::promptDeleteC,
300+ configFile.promptDeleteFiles ()).toBool ());
301+ configFile.setShowCallNotifications (settings->value (ConfigFile::showCallNotificationsC,
302+ configFile.showCallNotifications ()).toBool ());
303+ configFile.setShowChatNotifications (settings->value (ConfigFile::showChatNotificationsC,
304+ configFile.showChatNotifications ()).toBool ());
305+ configFile.setShowQuotaWarningNotifications (settings->value (ConfigFile::showQuotaWarningNotificationsC,
306+ configFile.showQuotaWarningNotifications ()).toBool ());
307+ configFile.setShowInExplorerNavigationPane (settings->value (ConfigFile::showInExplorerNavigationPaneC,
308+ configFile.showInExplorerNavigationPane ()).toBool ());
309+ // Advanced
310+ const auto newBigFolderSizeLimit = settings->value (ConfigFile::newBigFolderSizeLimitC, configFile.newBigFolderSizeLimit ().second ).toLongLong ();
311+ const auto useNewBigFolderSizeLimit = settings->value (ConfigFile::useNewBigFolderSizeLimitC, configFile.useNewBigFolderSizeLimit ()).toBool ();
312+ configFile.setNewBigFolderSizeLimit (useNewBigFolderSizeLimit, newBigFolderSizeLimit);
313+ configFile.setNotifyExistingFoldersOverLimit (settings->value (ConfigFile::notifyExistingFoldersOverLimitC,
314+ configFile.notifyExistingFoldersOverLimit ()).toBool ());
315+ configFile.setStopSyncingExistingFoldersOverLimit (settings->value (ConfigFile::stopSyncingExistingFoldersOverLimitC,
316+ configFile.stopSyncingExistingFoldersOverLimit ()).toBool ());
317+ configFile.setConfirmExternalStorage (settings->value (ConfigFile::confirmExternalStorageC, configFile.confirmExternalStorage ()).toBool ());
318+ configFile.setMoveToTrash (settings->value (ConfigFile::moveToTrashC, configFile.moveToTrash ()).toBool ());
319+ // Info
320+ configFile.setUpdateChannel (settings->value (ConfigFile::updateChannelC, configFile.currentUpdateChannel ()).toString ());
321+ auto previousAppName = settings->contains (ConfigFile::legacyAppName) ? ConfigFile::legacyAppName
322+ : ConfigFile::unbrandedAppName;
323+ const auto updaterGroupName = QString (" %1/%2" ).arg (previousAppName, ConfigFile::autoUpdateCheckC);
324+ configFile.setAutoUpdateCheck (settings->value (updaterGroupName, configFile.autoUpdateCheck ()).toBool (), {});
325+ // Network
299326 ClientProxy ().saveProxyConfigurationFromSettings (*settings);
300327 configFile.setUseUploadLimit (settings->value (ConfigFile::useUploadLimitC, configFile.useUploadLimit ()).toInt ());
301328 configFile.setUploadLimit (settings->value (ConfigFile::uploadLimitC, configFile.uploadLimit ()).toInt ());
302329 configFile.setUseDownloadLimit (settings->value (ConfigFile::useDownloadLimitC, configFile.useDownloadLimit ()).toInt ());
303330 configFile.setDownloadLimit (settings->value (ConfigFile::downloadLimitC, configFile.downloadLimit ()).toInt ());
304331
305332 // Try to load the single account.
333+ configFile.setMigrationPhase (ConfigFile::MigrationPhase::SetupUsers);
306334 if (!settings->childKeys ().isEmpty ()) {
307335 settings->beginGroup (accountsC);
308336 const auto childGroups = selectedAccountIds.isEmpty () ? settings->childGroups () : selectedAccountIds;
@@ -582,13 +610,33 @@ AccountPtr AccountManager::loadAccountHelper(QSettings &settings)
582610 }
583611 acc->_settingsMap .insert (key, settings.value (key));
584612 }
585-
586613 acc->setCredentials (CredentialsFactory::create (authType));
587- acc->setProxyType (settings.value (networkProxyTypeC).value <QNetworkProxy::ProxyType>());
588- acc->setProxyHostName (settings.value (networkProxyHostNameC).toString ());
589- acc->setProxyPort (settings.value (networkProxyPortC).toInt ());
590- acc->setProxyNeedsAuth (settings.value (networkProxyNeedsAuthC).toBool ());
591- acc->setProxyUser (settings.value (networkProxyUserC).toString ());
614+
615+ {
616+ auto accountProxyType = settings.value (networkProxyTypeC).value <QNetworkProxy::ProxyType>();
617+ auto accountProxyHost = settings.value (networkProxyHostNameC).toString ();
618+ auto accountProxyPort = settings.value (networkProxyPortC).toInt ();
619+ auto accountProxyNeedsAuth = settings.value (networkProxyNeedsAuthC).toBool ();
620+ auto accountProxyUser = settings.value (networkProxyUserC).toString ();
621+ const auto globalProxyType = settings.value (ClientProxy::proxyTypeC).value <QNetworkProxy::ProxyType>();
622+ qCDebug (lcAccountManager) << " Account proxy type:" << accountProxyType;
623+ qCDebug (lcAccountManager) << " Global proxy type:" << globalProxyType;
624+ if (accountProxyType == QNetworkProxy::NoProxy && globalProxyType != QNetworkProxy::NoProxy) {
625+ accountProxyType = globalProxyType;
626+ accountProxyHost = settings.value (ClientProxy::proxyHostC).toString ();
627+ accountProxyPort = settings.value (ClientProxy::proxyPortC).toInt ();
628+ accountProxyNeedsAuth = settings.value (ClientProxy::proxyNeedsAuthC).toBool ();
629+ accountProxyUser = settings.value (ClientProxy::proxyUserC).toString ();
630+ qCInfo (lcAccountManager) << " Account has no proxy set, using global proxy instead." ;
631+ }
632+
633+ acc->setProxyType (accountProxyType);
634+ acc->setProxyHostName (accountProxyHost);
635+ acc->setProxyPort (accountProxyPort);
636+ acc->setProxyNeedsAuth (accountProxyNeedsAuth);
637+ acc->setProxyUser (accountProxyUser);
638+ }
639+
592640 acc->setUploadLimitSetting (
593641 settings.value (
594642 networkUploadLimitSettingC,
@@ -599,7 +647,6 @@ AccountPtr AccountManager::loadAccountHelper(QSettings &settings)
599647 networkDownloadLimitSettingC,
600648 QVariant::fromValue (Account::AccountNetworkTransferLimitSetting::NoLimit)
601649 ).value <Account::AccountNetworkTransferLimitSetting>());
602-
603650 acc->setUploadLimit (settings.value (networkUploadLimitC).toInt ());
604651 acc->setDownloadLimit (settings.value (networkDownloadLimitC).toInt ());
605652
@@ -786,7 +833,7 @@ void AccountManager::addAccountState(AccountState *const accountState)
786833
787834bool AccountManager::forceLegacyImport () const
788835{
789- return _forceLegacyImport;
836+ return _forceLegacyImport;
790837}
791838
792839void AccountManager::setForceLegacyImport (const bool forceLegacyImport)
0 commit comments