Skip to content

Commit

Permalink
Merge pull request #7623 from nextcloud/feature/disable-import-dialog
Browse files Browse the repository at this point in the history
Disable legacy import dialog
  • Loading branch information
mgallien authored Dec 9, 2024
2 parents 65c1407 + 5456ed1 commit f538cad
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 5 deletions.
2 changes: 2 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@ else()
set(APPLICATION_REV_DOMAIN_INSTALLER ${APPLICATION_REV_DOMAIN})
endif()

option( APPLICATION_DISPLAY_LEGACY_IMPORT_DIALOG "Display legacy import dialog" ON )

# For usage in XML files we preprocess
string(REPLACE "&" "&" APPLICATION_NAME_XML_ESCAPED "${APPLICATION_NAME}")
string(REPLACE "<" "&lt;" APPLICATION_NAME_XML_ESCAPED "${APPLICATION_NAME_XML_ESCAPED}")
Expand Down
1 change: 1 addition & 0 deletions config.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
#cmakedefine01 ENFORCE_VIRTUAL_FILES_SYNC_FOLDER
#cmakedefine DO_NOT_USE_PROXY "@DO_NOT_USE_PROXY@"
#cmakedefine ENFORCE_SINGLE_ACCOUNT "@ENFORCE_SINGLE_ACCOUNT@"
#cmakedefine01 APPLICATION_DISPLAY_LEGACY_IMPORT_DIALOG

#cmakedefine ZLIB_FOUND @ZLIB_FOUND@

Expand Down
12 changes: 7 additions & 5 deletions src/gui/accountmanager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,8 @@ bool AccountManager::restoreFromLegacySettings()
// try to open the correctly themed settings
auto settings = ConfigFile::settingsWithGroup(Theme::instance()->appName());

auto displayMessageBoxWarning = false;
auto wasLegacyImportDialogDisplayed = false;
const auto displayLegacyImportDialog = Theme::instance()->displayLegacyImportDialog();

// if the settings file could not be opened, the childKeys list is empty
// then try to load settings from a very old place
Expand Down Expand Up @@ -206,10 +207,11 @@ bool AccountManager::restoreFromLegacySettings()
oCSettings->beginGroup(QLatin1String(accountsC));
const auto accountsListSize = oCSettings->childGroups().size();
oCSettings->endGroup();
if (const QFileInfo configFileInfo(configFile); configFileInfo.exists() && configFileInfo.isReadable()) {
displayMessageBoxWarning = true;
if (const QFileInfo configFileInfo(configFile);
configFileInfo.exists() && configFileInfo.isReadable()) {
qCInfo(lcAccountManager) << "Migrate: checking old config " << configFile;
if (!forceLegacyImport() && accountsListSize > 0) {
if (!forceLegacyImport() && accountsListSize > 0 && displayLegacyImportDialog) {
wasLegacyImportDialogDisplayed = true;
const auto importQuestion = accountsListSize > 1
? tr("%1 accounts were detected from a legacy desktop client.\n"
"Should the accounts be imported?").arg(QString::number(accountsListSize))
Expand Down Expand Up @@ -282,7 +284,7 @@ bool AccountManager::restoreFromLegacySettings()
return true;
}

if (displayMessageBoxWarning) {
if (wasLegacyImportDialogDisplayed) {
QMessageBox::information(nullptr,
tr("Legacy import"),
tr("Could not import accounts from legacy client configuration."));
Expand Down
9 changes: 9 additions & 0 deletions src/libsync/theme.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1036,6 +1036,15 @@ bool Theme::darkMode() const
return isDarkFromStyle();
}

bool Theme::displayLegacyImportDialog() const
{
#if defined APPLICATION_DISPLAY_LEGACY_IMPORT_DIALOG && APPLICATION_DISPLAY_LEGACY_IMPORT_DIALOG
return true;
#else
return false;
#endif
}

void Theme::setOverrideServerUrl(const QString &overrideServerUrl)
{
auto validOverrideServerUrl = overrideServerUrl;
Expand Down
7 changes: 7 additions & 0 deletions src/libsync/theme.h
Original file line number Diff line number Diff line change
Expand Up @@ -604,6 +604,13 @@ class OWNCLOUDSYNC_EXPORT Theme : public QObject
[[nodiscard]] QVariantMap systemPalette() const;
[[nodiscard]] bool darkMode() const;

/**
* Display legacy import dialog
*
* The user will interact with the dialog to import legacy account when set to true
*/
[[nodiscard]] bool displayLegacyImportDialog() const;

public slots:
void setOverrideServerUrl(const QString &overrideServerUrl);
void setForceOverrideServerUrl(bool forceOverride);
Expand Down

0 comments on commit f538cad

Please sign in to comment.