diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp index dbba0186d69..5718b6d1a35 100644 --- a/src/plugins/coreplugin/editormanager/editormanager.cpp +++ b/src/plugins/coreplugin/editormanager/editormanager.cpp @@ -2382,9 +2382,8 @@ void EditorManagerPrivate::autoSave() if (document->filePath().isEmpty() || !savePath.isWritableDir()) // FIXME: save them to a dedicated directory continue; - QString errorString; - if (!document->autoSave(&errorString, saveName)) - errors << errorString; + if (expected_str res = document->autoSave(saveName); !res) + errors << res.error(); } if (!errors.isEmpty()) QMessageBox::critical(ICore::dialogParent(), diff --git a/src/plugins/coreplugin/idocument.cpp b/src/plugins/coreplugin/idocument.cpp index 3587ae69ba7..d2373a54210 100644 --- a/src/plugins/coreplugin/idocument.cpp +++ b/src/plugins/coreplugin/idocument.cpp @@ -647,15 +647,13 @@ void IDocument::setMimeType(const QString &mimeType) /*! \internal */ -bool IDocument::autoSave(QString *errorString, const FilePath &filePath) +expected_str IDocument::autoSave(const FilePath &filePath) { - const expected_str res = save(filePath, true); - if (!res) { - *errorString = res.error(); - return false; - } + if (const expected_str res = save(filePath, true); !res) + return res; + d->autoSavePath = filePath; - return true; + return {}; } static const char kRestoredAutoSave[] = "RestoredAutoSave"; diff --git a/src/plugins/coreplugin/idocument.h b/src/plugins/coreplugin/idocument.h index 28bcd58afcc..c695d394f76 100644 --- a/src/plugins/coreplugin/idocument.h +++ b/src/plugins/coreplugin/idocument.h @@ -104,7 +104,7 @@ public: void checkPermissions(); - bool autoSave(QString *errorString, const Utils::FilePath &filePath); + Utils::expected_str autoSave(const Utils::FilePath &filePath); void setRestoredFrom(const Utils::FilePath &path); void removeAutoSaveFile();