Ask before attempting to import legacy accounts
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Fri, 5 May 2023 02:17:45 +0000 (10:17 +0800)
committerClaudio Cambra <claudio.cambra@nextcloud.com>
Tue, 16 May 2023 13:23:43 +0000 (21:23 +0800)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
src/gui/accountmanager.cpp

index 1ecb1485a4c86c4f46f91164ba06badcf55cedf8..1c923295e816d87895d85697bfaf20f465ec7f44 100644 (file)
@@ -175,11 +175,18 @@ bool AccountManager::restoreFromLegacySettings()
                                                       legacyCfgFileGrandParentFolder + legacyCfgFileRelativePath};
 
         for (const auto &configFile : legacyLocations) {
-            if (const QFileInfo configFileInfo(configFile);
-                    configFileInfo.exists() && configFileInfo.isReadable()) {
-
+            if (const QFileInfo configFileInfo(configFile); configFileInfo.exists() && configFileInfo.isReadable()) {
                 qCInfo(lcAccountManager) << "Migrate: checking old config " << configFile;
 
+                const auto importQuestion = tr("An existing configuration from a legacy desktop client was detected.\n"
+                                               "Should an account import be attempted?");
+                const auto messageBoxSelection = QMessageBox::question(nullptr, tr("Legacy import"), importQuestion);
+
+                if (messageBoxSelection == QMessageBox::No) {
+                    // User said don't import, return immediately
+                    return false;
+                }
+
                 auto oCSettings = std::make_unique<QSettings>(configFile, QSettings::IniFormat);
                 if (oCSettings->status() != QSettings::Status::NoError) {
                     qCInfo(lcAccountManager) << "Error reading legacy configuration file" << oCSettings->status();