diff options
author | Henning Gruendl <henning.gruendl@qt.io> | 2020-03-09 15:05:13 +0100 |
---|---|---|
committer | Thomas Hartmann <thomas.hartmann@qt.io> | 2020-03-09 14:28:21 +0000 |
commit | 9d4a6092d2632ac672c36f717afaea06c259d4df (patch) | |
tree | 6392c7fda24206c28c827370bdcb15bd2a7c941d /src/libs | |
parent | 74eaa8f8832692cbd80e60754ecd85436e957cdd (diff) |
ADS: Fix Preset sync failure if directory missing
Change-Id: I23ed2a12753058b36a708c9aff64291782b73809
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Diffstat (limited to 'src/libs')
-rw-r--r-- | src/libs/advanceddockingsystem/dockmanager.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/libs/advanceddockingsystem/dockmanager.cpp b/src/libs/advanceddockingsystem/dockmanager.cpp index 39b7062c09..6adce0111a 100644 --- a/src/libs/advanceddockingsystem/dockmanager.cpp +++ b/src/libs/advanceddockingsystem/dockmanager.cpp @@ -909,7 +909,13 @@ namespace ADS // Copy all missing workspace presets over to the local workspace folder QDir presetsDir(d->m_workspacePresetsPath); - QDir workspaceDir(QFileInfo(d->m_settings->fileName()).path() + QLatin1String("/workspaces")); + QDir workspaceDir(QFileInfo(d->m_settings->fileName()).path() + QLatin1Char('/') + m_dirName); + // Try do create the 'workspaces' directory if it doesn't exist already + workspaceDir.mkpath(workspaceDir.absolutePath()); + if (!workspaceDir.exists()) { + qCInfo(adsLog) << QString("Could not make directory '%1')").arg(workspaceDir.absolutePath()); + return; + } for (const auto &preset : presets) { QString filename = preset; @@ -920,7 +926,10 @@ namespace ADS QFile file(filePath); if (file.exists()) { - file.copy(workspaceDir.filePath(filename)); + if (!file.copy(workspaceDir.filePath(filename))) { + qCInfo(adsLog) << QString("Could not copy '%1' to '%2' error: %3").arg( + filePath, workspaceDir.filePath(filename), file.errorString()); + } d->m_workspaceListDirty = true; } } |