aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs
diff options
context:
space:
mode:
authorHenning Gruendl <henning.gruendl@qt.io>2020-03-09 15:05:13 +0100
committerThomas Hartmann <thomas.hartmann@qt.io>2020-03-09 14:28:21 +0000
commit9d4a6092d2632ac672c36f717afaea06c259d4df (patch)
tree6392c7fda24206c28c827370bdcb15bd2a7c941d /src/libs
parent74eaa8f8832692cbd80e60754ecd85436e957cdd (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.cpp13
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;
}
}