From 7c3a291ea0a0fe808957dbcb665c5adf61d09422 Mon Sep 17 00:00:00 2001
From: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Date: Fri, 6 May 2011 19:47:56 +0200
Subject: [PATCH] ignore vanished files while restoring session

there is no point in bothering the user with error messages and/or
having ghost editors hanging around.

Task-number: QTCREATORBUG-2424
---
 src/plugins/coreplugin/editormanager/editormanager.cpp | 4 +++-
 src/plugins/coreplugin/editormanager/editorview.cpp    | 2 ++
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp
index 5d9cb25c06f..0460f37ee72 100644
--- a/src/plugins/coreplugin/editormanager/editormanager.cpp
+++ b/src/plugins/coreplugin/editormanager/editormanager.cpp
@@ -1831,8 +1831,10 @@ bool EditorManager::restoreState(const QByteArray &state)
 
         if (!fileName.isEmpty() && !displayName.isEmpty()) {
             QFileInfo fi(fileName);
+            if (!fi.exists())
+                continue;
             QFileInfo rfi(autoSaveName(fileName));
-            if (fi.exists() && rfi.exists() && fi.lastModified() < rfi.lastModified()) {
+            if (rfi.exists() && fi.lastModified() < rfi.lastModified()) {
                 openEditor(fileName, QString::fromUtf8(id));
             } else {
                 m_d->m_editorModel->addRestoredEditor(fileName, displayName, QString::fromUtf8(id));
diff --git a/src/plugins/coreplugin/editormanager/editorview.cpp b/src/plugins/coreplugin/editormanager/editorview.cpp
index 4491ae12d56..a7a6dad9e89 100644
--- a/src/plugins/coreplugin/editormanager/editorview.cpp
+++ b/src/plugins/coreplugin/editormanager/editorview.cpp
@@ -784,6 +784,8 @@ void SplitterOrView::restoreState(const QByteArray &state)
         QByteArray id;
         QByteArray editorState;
         stream >> fileName >> id >> editorState;
+        if (!QFile::exists(fileName))
+            return;
         IEditor *e = em->openEditor(view(), fileName, id, Core::EditorManager::IgnoreNavigationHistory
                                     | Core::EditorManager::NoActivate);
 
-- 
GitLab