3939#include " common/vfs.h"
4040
4141#include " config.h"
42+ #include " settings/migration.h"
4243
4344#if defined(Q_OS_WIN)
4445#include < windows.h>
@@ -121,21 +122,22 @@ namespace {
121122bool Application::configVersionMigration ()
122123{
123124 ConfigFile configFile;
124- const auto shouldTryToMigrate = configFile.shouldTryToMigrate ();
125+ Migration migration;
126+ const auto shouldTryToMigrate = migration.shouldTryToMigrate ();
125127 if (!shouldTryToMigrate) {
126128 qCInfo (lcApplication) << " This is not an upgrade/downgrade/migration. Proceed to read current application config file." ;
127- configFile .setMigrationPhase (ConfigFile ::MigrationPhase::Done);
129+ migration .setMigrationPhase (Migration ::MigrationPhase::Done);
128130 return false ;
129131 }
130132
131- configFile .setMigrationPhase (ConfigFile ::MigrationPhase::SetupConfigFile);
133+ migration .setMigrationPhase (Migration ::MigrationPhase::SetupConfigFile);
132134 QStringList deleteKeys, ignoreKeys;
133135 AccountManager::backwardMigrationSettingsKeys (&deleteKeys, &ignoreKeys);
134136 FolderMan::backwardMigrationSettingsKeys (&deleteKeys, &ignoreKeys);
135137 configFile.setClientPreviousVersionString (configFile.clientVersionString ());
136138
137- qCDebug (lcApplication) << " Migration is in progress:" << configFile. isMigrationInProgress ();
138- const auto versionChanged = configFile. isUpgrade () || configFile. isDowngrade ();
139+ qCDebug (lcApplication) << " Migration is in progress:" << migration. isInProgress ();
140+ const auto versionChanged = migration. versionChanged ();
139141 if (versionChanged) {
140142 qCInfo (lcApplication) << " Version changed. Removing updater settings from config." ;
141143 configFile.cleanUpdaterConfiguration ();
@@ -181,7 +183,7 @@ bool Application::configVersionMigration()
181183 " Continuing will mean <b>%2 these settings</b>.<br>"
182184 " <br>"
183185 " The current configuration file was already backed up to <i>%3</i>." )
184- .arg ((configFile .isDowngrade () ? tr (" newer" , " newer software version" ) : tr (" older" , " older software version" )),
186+ .arg ((Migration () .isDowngrade () ? tr (" newer" , " newer software version" ) : tr (" older" , " older software version" )),
185187 deleteKeys.isEmpty ()? tr (" ignoring" ) : tr (" deleting" ),
186188 backupFilesList.join (" <br>" )));
187189 box.addButton (tr (" Quit" ), QMessageBox::AcceptRole);
@@ -493,19 +495,20 @@ void Application::setupAccountsAndFolders()
493495{
494496 _folderManager.reset (new FolderMan);
495497 ConfigFile configFile;
496- configFile.setMigrationPhase (ConfigFile::MigrationPhase::SetupUsers);
498+ auto migration = configFile.migration ();
499+ migration.setMigrationPhase (Migration::MigrationPhase::SetupUsers);
497500 const auto accountsRestoreResult = restoreLegacyAccount ();
498501 const auto accounts = AccountManager::instance ()->accounts ();
499502 if (accountsRestoreResult != AccountManager::AccountsRestoreSuccessFromLegacyVersion
500- && accounts.empty ()) {
503+ || accounts.empty ()) {
501504 qCWarning (lcApplication) << " Migration result: " << accountsRestoreResult;
502505 qCDebug (lcApplication) << " is migration disabled?" << DISABLE_ACCOUNT_MIGRATION;
503506 qCWarning (lcApplication) << " No accounts were migrated, prompting user to set up accounts and folders from scratch." ;
504-
507+ migration. setMigrationPhase (Migration::MigrationPhase::Done);
505508 return ;
506509 }
507510
508- configFile .setMigrationPhase (ConfigFile ::MigrationPhase::SetupFolders);
511+ migration .setMigrationPhase (Migration ::MigrationPhase::SetupFolders);
509512 const auto foldersListSize = FolderMan::instance ()->setupFolders ();
510513 FolderMan::instance ()->setSyncEnabled (true );
511514
@@ -519,6 +522,7 @@ void Application::setupAccountsAndFolders()
519522
520523 const auto accountsListSize = accounts.size ();
521524 if (accountsRestoreResult == AccountManager::AccountsRestoreSuccessFromLegacyVersion
525+ && accountsListSize > 0
522526 && Theme::instance ()->displayLegacyImportDialog ()
523527 && !AccountManager::instance ()->forceLegacyImport ()) {
524528 const auto accountsRestoreMessage = accountsListSize > 1
0 commit comments