From 0662a8009a8b59637417b9065324e23935190207 Mon Sep 17 00:00:00 2001 From: con Date: Wed, 1 Dec 2010 13:10:08 +0100 Subject: [PATCH] Handle read only files correctly when saving all modified files We use the editor manager's way to save modified files now, so the normal logic for read only files is applied, including the "cancel/save as/open vcs/make writable" dialog. Also fixes that it wasn't handled as a "cancel" if the user chooses to cancel this dialog. Task-number: QTCREATORBUG-3109 --- src/plugins/coreplugin/filemanager.cpp | 43 ++++------------------------------ 1 file changed, 4 insertions(+), 39 deletions(-) diff --git a/src/plugins/coreplugin/filemanager.cpp b/src/plugins/coreplugin/filemanager.cpp index d9887ea532..bff0e956cc 100644 --- a/src/plugins/coreplugin/filemanager.cpp +++ b/src/plugins/coreplugin/filemanager.cpp @@ -638,46 +638,11 @@ QList FileManager::saveModifiedFiles(const QList &files, filesToSave = dia.itemsToSave(); } - bool yestoall = false; - Core::VCSManager *vcsManager = Core::ICore::instance()->vcsManager(); foreach (IFile *file, filesToSave) { - if (file->isReadOnly()) { - const QString directory = QFileInfo(file->fileName()).absolutePath(); - if (IVersionControl *versionControl = vcsManager->findVersionControlForDirectory(directory)) - versionControl->vcsOpen(file->fileName()); - } - if (!file->isReadOnly() && !file->fileName().isEmpty()) { - blockFileChange(file); - const bool ok = file->save(); - unblockFileChange(file); - if (!ok) - notSaved.append(file); - } else if (QFile::exists(file->fileName()) && !file->isSaveAsAllowed()) { - if (yestoall) - continue; - const QFileInfo fi(file->fileName()); - switch (skipFailedPrompt(d->m_mainWindow, fi.fileName())) { - case QMessageBox::YesToAll: - yestoall = true; - break; - case QMessageBox::No: - if (cancelled) - *cancelled = true; - return filesToSave; - default: - break; - } - } else { - QString fileName = getSaveAsFileName(file); - bool ok = false; - if (!fileName.isEmpty()) { - blockFileChange(file); - ok = file->save(fileName); - file->checkPermissions(); - unblockFileChange(file); - } - if (!ok) - notSaved.append(file); + if (!EditorManager::instance()->saveFile(file)) { + if (cancelled) + *cancelled = true; + notSaved.append(file); } } } -- 2.11.0