diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp index cad242bbffe0e89e7a51775db5880977f62c7703..8fe8eec17258e5407a47ed1479ef1dd7cb54a3b8 100644 --- a/src/plugins/coreplugin/editormanager/editormanager.cpp +++ b/src/plugins/coreplugin/editormanager/editormanager.cpp @@ -1685,6 +1685,7 @@ void EditorManager::showPopupOrSelectDocument() const } } +// Save state of all non-teporary editors. QByteArray EditorManager::saveState() const { QByteArray bytes; @@ -1694,7 +1695,8 @@ QByteArray EditorManager::saveState() const QList<IEditor *> editors = openedEditors(); foreach (IEditor *editor, editors) { - if (!editor->file()->fileName().isEmpty()) { + if (!editor->file()->fileName().isEmpty() + && !editor->isTemporary()) { QByteArray state = editor->saveState(); if (!state.isEmpty()) m_d->m_editorStates.insert(editor->file()->fileName(), QVariant(state)); @@ -1704,10 +1706,17 @@ QByteArray EditorManager::saveState() const stream << m_d->m_editorStates; QList<OpenEditorsModel::Entry> entries = m_d->m_editorModel->entries(); - stream << entries.count(); + int entriesCount = 0; + foreach (const OpenEditorsModel::Entry &entry, entries) { + if (!entry.editor->isTemporary()) + ++entriesCount; + } + + stream << entriesCount; foreach (const OpenEditorsModel::Entry &entry, entries) { - stream << entry.fileName() << entry.displayName() << entry.id().toUtf8(); + if (!entry.editor->isTemporary()) + stream << entry.fileName() << entry.displayName() << entry.id().toUtf8(); } stream << m_d->m_splitter->saveState(); diff --git a/src/plugins/projectexplorer/session.cpp b/src/plugins/projectexplorer/session.cpp index a492022092e32c2b467c854d6c1f45abdeba6b44..3c96a42c99ca03ab8af2aa98ac4c313e74b0efd8 100644 --- a/src/plugins/projectexplorer/session.cpp +++ b/src/plugins/projectexplorer/session.cpp @@ -269,8 +269,14 @@ bool SessionFile::save(const QString &fileName) writer.saveValue(QLatin1String("ProjectDependencies"), QVariant(depMap)); - writer.saveValue(QLatin1String("OpenEditors"), - m_core->editorManager()->openedEditors().count()); + int editorCount = 0; + QList<Core::IEditor *> editors = m_core->editorManager()->openedEditors(); + foreach (Core::IEditor *editor, editors) { + Q_ASSERT(editor); + if (!editor->isTemporary()) + ++editorCount; + } + writer.saveValue(QLatin1String("OpenEditors"), editorCount); writer.saveValue(QLatin1String("EditorSettings"), m_core->editorManager()->saveState().toBase64());