OSDN Git Service

If user cancels save file prompt, cancel entire action.
authorwongk <kris.p.wong@gmail.com>
Wed, 2 Nov 2011 16:44:31 +0000 (12:44 -0400)
committerEike Ziller <eike.ziller@nokia.com>
Thu, 3 Nov 2011 13:17:36 +0000 (14:17 +0100)
Task-Number: QTCREATORBUG-6440
Change-Id: I8807de53b1a05a0abd57c140dab5ba8df441efd5
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
src/plugins/coreplugin/filemanager.cpp
src/plugins/coreplugin/filemanager.h
src/plugins/projectexplorer/projectexplorer.cpp

index 1aef4af..22c0a79 100644 (file)
@@ -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());
 }
 
 /*!
index 4c789a9..0e0686d 100644 (file)
@@ -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(),
index c9d73be..478754f 100644 (file)
@@ -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;