diff --git a/src/plugins/coreplugin/filemanager.cpp b/src/plugins/coreplugin/filemanager.cpp index 1aef4afdfeff1d2d165ca2de6ba9c0318be3b6c2..22c0a79a8f39cef6eceaa06b150c3652824093ec 100644 --- a/src/plugins/coreplugin/filemanager.cpp +++ b/src/plugins/coreplugin/filemanager.cpp @@ -527,11 +527,12 @@ void FileManager::updateExpectedState(const QString &fileName) /*! \fn QList<IFile*> FileManager::saveModifiedFilesSilently(const QList<IFile*> &files) - Tries to save the files listed in \a files . Returns the files that could not be saved. + Tries to save the files listed in \a files. The \a cancelled argument is set to true + if the user cancelled the dialog. Returns the files that could not be saved. */ -QList<IFile *> FileManager::saveModifiedFilesSilently(const QList<IFile *> &files) +QList<IFile *> FileManager::saveModifiedFilesSilently(const QList<IFile *> &files, bool *cancelled) { - return saveModifiedFiles(files, 0, true, QString()); + return saveModifiedFiles(files, cancelled, true, QString()); } /*! diff --git a/src/plugins/coreplugin/filemanager.h b/src/plugins/coreplugin/filemanager.h index 4c789a923f26b789efdeeb9c6f7dd012d48ee5e5..0e0686d71b5beaf9ec5bdb27bd664fcf608da916 100644 --- a/src/plugins/coreplugin/filemanager.h +++ b/src/plugins/coreplugin/filemanager.h @@ -108,7 +108,7 @@ public: QString getSaveAsFileName(IFile *file, const QString &filter = QString(), QString *selectedFilter = 0); - QList<IFile *> saveModifiedFilesSilently(const QList<IFile *> &files); + QList<IFile *> saveModifiedFilesSilently(const QList<IFile *> &files, bool *cancelled = 0); QList<IFile *> saveModifiedFiles(const QList<IFile *> &files, bool *cancelled = 0, const QString &message = QString(), diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index c9d73be66fa2118f1a6e13574d9cc60addf16a91..478754fc17341e85e88f09f4c480037598ba927e 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -1715,7 +1715,10 @@ bool ProjectExplorerPlugin::saveModifiedFiles() QList<Core::IFile *> filesToSave = Core::ICore::instance()->fileManager()->modifiedFiles(); if (!filesToSave.isEmpty()) { if (d->m_projectExplorerSettings.saveBeforeBuild) { - Core::ICore::instance()->fileManager()->saveModifiedFilesSilently(filesToSave); + bool cancelled = false; + Core::ICore::instance()->fileManager()->saveModifiedFilesSilently(filesToSave, &cancelled); + if (cancelled) + return false; } else { bool cancelled = false; bool alwaysSave = false;