diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp index d2bddb8a014..16980f59e44 100644 --- a/src/plugins/coreplugin/editormanager/editormanager.cpp +++ b/src/plugins/coreplugin/editormanager/editormanager.cpp @@ -1981,7 +1981,7 @@ QByteArray EditorManager::saveState() const foreach (const OpenEditorsModel::Entry &entry, entries) { if (!entry.editor || !entry.editor->isTemporary()) - stream << entry.fileName() << entry.displayName() << entry.id().name(); + stream << entry.fileName() << entry.displayName() << entry.id(); } stream << d->m_splitter->saveState(); @@ -2012,7 +2012,7 @@ bool EditorManager::restoreState(const QByteArray &state) stream >> fileName; QString displayName; stream >> displayName; - QByteArray id; + Core::Id id; stream >> id; if (!fileName.isEmpty() && !displayName.isEmpty()) { @@ -2021,9 +2021,9 @@ bool EditorManager::restoreState(const QByteArray &state) continue; QFileInfo rfi(autoSaveName(fileName)); if (rfi.exists() && fi.lastModified() < rfi.lastModified()) - openEditor(fileName, Id::fromName(id)); + openEditor(fileName, id); else - d->m_editorModel->addRestoredEditor(fileName, displayName, Id::fromName(id)); + d->m_editorModel->addRestoredEditor(fileName, displayName, id); } } diff --git a/src/plugins/coreplugin/id.cpp b/src/plugins/coreplugin/id.cpp index 407c9b801c2..d32cc4c8b35 100644 --- a/src/plugins/coreplugin/id.cpp +++ b/src/plugins/coreplugin/id.cpp @@ -354,3 +354,21 @@ QString Id::suffixAfter(Id baseId) const } } // namespace Core + + +QT_BEGIN_NAMESPACE + +QDataStream &operator<<(QDataStream &ds, const Core::Id &id) +{ + return ds << id.name(); +} + +QDataStream &operator>>(QDataStream &ds, Core::Id &id) +{ + QByteArray ba; + ds >> ba; + id = Core::Id::fromName(ba); + return ds; +} + +QT_END_NAMESPACE diff --git a/src/plugins/coreplugin/id.h b/src/plugins/coreplugin/id.h index ee283a5f9ad..bb43fd01431 100644 --- a/src/plugins/coreplugin/id.h +++ b/src/plugins/coreplugin/id.h @@ -86,4 +86,9 @@ inline uint qHash(const Id &id) { return id.uniqueIdentifier(); } Q_DECLARE_METATYPE(Core::Id) Q_DECLARE_METATYPE(QList) +QT_BEGIN_NAMESPACE +QDataStream &operator<<(QDataStream &ds, const Core::Id &id); +QDataStream &operator>>(QDataStream &ds, Core::Id &id); +QT_END_NAMESPACE + #endif // CORE_ID_H