From bd2a163f7834a1be5379ee9357309fdf717497de Mon Sep 17 00:00:00 2001
From: con <qtc-committer@nokia.com>
Date: Tue, 24 Mar 2009 12:51:44 +0100
Subject: [PATCH] Simplify 'Save modified files' internals.

---
 .../coreplugin/dialogs/saveitemsdialog.cpp      | 17 +++++------------
 .../coreplugin/dialogs/saveitemsdialog.h        |  6 ++----
 .../coreplugin/editormanager/editormanager.cpp  |  1 -
 src/plugins/coreplugin/filemanager.cpp          | 17 ++++++++---------
 4 files changed, 15 insertions(+), 26 deletions(-)

diff --git a/src/plugins/coreplugin/dialogs/saveitemsdialog.cpp b/src/plugins/coreplugin/dialogs/saveitemsdialog.cpp
index 31cc36ee976..80b15b4c94b 100644
--- a/src/plugins/coreplugin/dialogs/saveitemsdialog.cpp
+++ b/src/plugins/coreplugin/dialogs/saveitemsdialog.cpp
@@ -46,7 +46,7 @@ using namespace Core;
 using namespace Core::Internal;
 
 SaveItemsDialog::SaveItemsDialog(QWidget *parent,
-                                 QMap<IFile*, QString> items)
+                                 QList<IFile *> items)
     : QDialog(parent)
 {
     m_ui.setupUi(this);
@@ -55,13 +55,12 @@ SaveItemsDialog::SaveItemsDialog(QWidget *parent,
     m_ui.buttonBox->button(QDialogButtonBox::Save)->setFocus(Qt::TabFocusReason);
     m_ui.buttonBox->button(QDialogButtonBox::Save)->setMinimumWidth(130); // bad magic number to avoid resizing of button
 
-    QMap<IFile*, QString>::const_iterator it = items.constBegin();
-    while (it != items.constEnd()) {
+    foreach (IFile *file, items) {
         QString visibleName;
         QString directory;
-        QString fileName = it.key()->fileName();
+        QString fileName = file->fileName();
         if (fileName.isEmpty()) {
-            visibleName = it.key()->suggestedFileName();
+            visibleName = file->suggestedFileName();
         } else {
             QFileInfo info = QFileInfo(fileName);
             directory = info.absolutePath();
@@ -69,8 +68,7 @@ SaveItemsDialog::SaveItemsDialog(QWidget *parent,
         }
         QTreeWidgetItem *item = new QTreeWidgetItem(m_ui.treeWidget, QStringList()
                                                     << visibleName << directory);
-        item->setData(0, Qt::UserRole, qVariantFromValue(it.key()));
-        ++it;
+        item->setData(0, Qt::UserRole, qVariantFromValue(file));
     }
 
     m_ui.treeWidget->resizeColumnToContents(0);
@@ -123,8 +121,3 @@ QList<IFile*> SaveItemsDialog::itemsToSave() const
 {
     return m_itemsToSave;
 }
-
-QSet<IFile*> SaveItemsDialog::itemsToOpenWithVCS() const
-{
-    return m_itemsToSave.toSet();
-}
diff --git a/src/plugins/coreplugin/dialogs/saveitemsdialog.h b/src/plugins/coreplugin/dialogs/saveitemsdialog.h
index 7c41f2efedd..ff22baa1f66 100644
--- a/src/plugins/coreplugin/dialogs/saveitemsdialog.h
+++ b/src/plugins/coreplugin/dialogs/saveitemsdialog.h
@@ -54,12 +54,11 @@ class SaveItemsDialog : public QDialog
 
 public:
     SaveItemsDialog(QWidget *parent,
-        QMap<Core::IFile*, QString> items);
+        QList<Core::IFile *> items);
 
     void setMessage(const QString &msg);
 
-    QList<Core::IFile*> itemsToSave() const;
-    QSet<Core::IFile*> itemsToOpenWithVCS() const;
+    QList<Core::IFile *> itemsToSave() const;
 
 private slots:
     void collectItemsToSave();
@@ -69,7 +68,6 @@ private slots:
 private:
     Ui::SaveItemsDialog m_ui;
     QList<Core::IFile*> m_itemsToSave;
-    QSet<Core::IFile*> m_itemsToOpen;
 };
 
 } // namespace Internal
diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp
index 8badefeb9a8..722f925b263 100644
--- a/src/plugins/coreplugin/editormanager/editormanager.cpp
+++ b/src/plugins/coreplugin/editormanager/editormanager.cpp
@@ -36,7 +36,6 @@
 #include "icore.h"
 #include "iversioncontrol.h"
 #include "mimedatabase.h"
-#include "saveitemsdialog.h"
 #include "tabpositionindicator.h"
 #include "vcsmanager.h"
 
diff --git a/src/plugins/coreplugin/filemanager.cpp b/src/plugins/coreplugin/filemanager.cpp
index e5c33c18dd0..b996ed50407 100644
--- a/src/plugins/coreplugin/filemanager.cpp
+++ b/src/plugins/coreplugin/filemanager.cpp
@@ -314,7 +314,8 @@ QList<IFile *> FileManager::saveModifiedFiles(const QList<IFile *> &files,
         (*cancelled) = false;
 
     QList<IFile *> notSaved;
-    QMap<IFile*, QString> modifiedFiles;
+    QMap<IFile *, QString> modifiedFilesMap;
+    QList<IFile *> modifiedFiles;
 
     foreach (IFile *file, files) {
         if (file->isModified()) {
@@ -324,17 +325,16 @@ QList<IFile *> FileManager::saveModifiedFiles(const QList<IFile *> &files,
 
             // There can be several FileInterfaces pointing to the same file
             // Select one that is not readonly.
-            if (!(modifiedFiles.values().contains(name)
+            if (!(modifiedFilesMap.values().contains(name)
                 && file->isReadOnly()))
-                modifiedFiles.insert(file, name);
+                modifiedFilesMap.insert(file, name);
         }
     }
-
+    modifiedFiles = modifiedFilesMap.keys();
     if (!modifiedFiles.isEmpty()) {
         QList<IFile *> filesToSave;
-        QSet<IFile *> filesToOpen;
         if (silently) {
-            filesToSave = modifiedFiles.keys();
+            filesToSave = modifiedFiles;
         } else {
             SaveItemsDialog dia(m_mainWindow, modifiedFiles);
             if (!message.isEmpty())
@@ -342,16 +342,15 @@ QList<IFile *> FileManager::saveModifiedFiles(const QList<IFile *> &files,
             if (dia.exec() != QDialog::Accepted) {
                 if (cancelled)
                     (*cancelled) = true;
-                notSaved = modifiedFiles.keys();
+                notSaved = modifiedFiles;
                 return notSaved;
             }
             filesToSave = dia.itemsToSave();
-            filesToOpen = dia.itemsToOpenWithVCS();
         }
 
         bool yestoall = false;
         foreach (IFile *file, filesToSave) {
-            if (file->isReadOnly() && filesToOpen.contains(file)) {
+            if (file->isReadOnly()) {
                 QString directory = QFileInfo(file->fileName()).absolutePath();
                 IVersionControl *versionControl = m_mainWindow->vcsManager()->findVersionControlForDirectory(directory);
                 if (versionControl)
-- 
GitLab