From 94aa58a6b5bcaac4c946dcd9ba7e1642611af84b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thorbj=C3=B8rn=20Lindeijer?= <thorbjorn.lindeijer@nokia.com> Date: Wed, 20 May 2009 15:29:28 +0200 Subject: [PATCH] Used the settings database in the editor manager Mainly because DocumentStates should be moved there, because it can grow quite large. Backward compatibility is kept. --- .../editormanager/editormanager.cpp | 40 +++++++++++++------ .../coreplugin/editormanager/editormanager.h | 4 +- src/plugins/coreplugin/mainwindow.cpp | 4 +- 3 files changed, 32 insertions(+), 16 deletions(-) diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp index 8de8a0983f2..407f6a42d62 100644 --- a/src/plugins/coreplugin/editormanager/editormanager.cpp +++ b/src/plugins/coreplugin/editormanager/editormanager.cpp @@ -47,6 +47,7 @@ #include <coreplugin/editormanager/iexternaleditor.h> #include <coreplugin/baseview.h> #include <coreplugin/imode.h> +#include <coreplugin/settingsdatabase.h> #include <extensionsystem/pluginmanager.h> @@ -694,7 +695,7 @@ bool EditorManager::closeEditors(const QList<IEditor*> editorsToClose, bool askA //ask whether to save modified files if (askAboutModifiedEditors) { bool cancelled = false; - QList<IFile*> list = ICore::instance()->fileManager()-> + QList<IFile*> list = m_d->m_core->fileManager()-> saveModifiedFiles(filesForEditors(acceptedEditors), &cancelled); if (cancelled) return false; @@ -1687,21 +1688,36 @@ bool EditorManager::restoreState(const QByteArray &state) return true; } -void EditorManager::saveSettings(QSettings *settings) +static const char * const documentStatesKey = "EditorManager/DocumentStates"; +static const char * const externalEditorKey = "EditorManager/ExternalEditorCommand"; + +void EditorManager::saveSettings() { - settings->setValue(QLatin1String("EditorManager/DocumentStates"), - m_d->m_editorStates); - settings->setValue(QLatin1String("EditorManager/ExternalEditorCommand"), - m_d->m_externalEditor); + SettingsDatabase *settings = m_d->m_core->settingsDatabase(); + settings->setValue(QLatin1String(documentStatesKey), m_d->m_editorStates); + settings->setValue(QLatin1String(externalEditorKey), m_d->m_externalEditor); } -void EditorManager::readSettings(QSettings *settings) +void EditorManager::readSettings() { - if (settings->contains(QLatin1String("EditorManager/DocumentStates"))) - m_d->m_editorStates = settings->value(QLatin1String("EditorManager/DocumentStates")) + // Backward compatibility to old locations for these settings + QSettings *qs = m_d->m_core->settings(); + if (qs->contains(QLatin1String(documentStatesKey))) { + m_d->m_editorStates = qs->value(QLatin1String(documentStatesKey)) + .value<QMap<QString, QVariant> >(); + qs->remove(QLatin1String(documentStatesKey)); + } + if (qs->contains(QLatin1String(externalEditorKey))) { + m_d->m_externalEditor = qs->value(QLatin1String(externalEditorKey)).toString(); + qs->remove(QLatin1String(externalEditorKey)); + } + + SettingsDatabase *settings = m_d->m_core->settingsDatabase(); + if (settings->contains(QLatin1String(documentStatesKey))) + m_d->m_editorStates = settings->value(QLatin1String(documentStatesKey)) .value<QMap<QString, QVariant> >(); - if (settings->contains(QLatin1String("EditorManager/ExternalEditorCommand"))) - m_d->m_externalEditor = settings->value(QLatin1String("EditorManager/ExternalEditorCommand")).toString(); + if (settings->contains(QLatin1String(externalEditorKey))) + m_d->m_externalEditor = settings->value(QLatin1String(externalEditorKey)).toString(); } @@ -1803,7 +1819,7 @@ void EditorManager::openInExternalEditor() return; if (editor->file()->isModified()) { bool cancelled = false; - QList<IFile*> list = ICore::instance()->fileManager()-> + QList<IFile*> list = m_d->m_core->fileManager()-> saveModifiedFiles(QList<IFile*>() << editor->file(), &cancelled); if (cancelled) return; diff --git a/src/plugins/coreplugin/editormanager/editormanager.h b/src/plugins/coreplugin/editormanager/editormanager.h index 77ee052227b..60276f9f92b 100644 --- a/src/plugins/coreplugin/editormanager/editormanager.h +++ b/src/plugins/coreplugin/editormanager/editormanager.h @@ -149,8 +149,8 @@ public: IEditor *restoreEditor(QString fileName, QString editorKind, EditorGroup *group); - void saveSettings(QSettings *settings); - void readSettings(QSettings *settings); + void saveSettings(); + void readSettings(); Internal::OpenEditorsWindow *windowPopup() const; void showWindowPopup() const; diff --git a/src/plugins/coreplugin/mainwindow.cpp b/src/plugins/coreplugin/mainwindow.cpp index 27f585ca84b..07ff1132942 100644 --- a/src/plugins/coreplugin/mainwindow.cpp +++ b/src/plugins/coreplugin/mainwindow.cpp @@ -1104,7 +1104,7 @@ void MainWindow::readSettings() m_settings->endGroup(); - m_editorManager->readSettings(m_settings); + m_editorManager->readSettings(); m_navigationWidget->restoreSettings(m_settings); m_rightPaneWidget->readSettings(m_settings); } @@ -1129,7 +1129,7 @@ void MainWindow::writeSettings() m_fileManager->saveRecentFiles(); m_viewManager->saveSettings(m_settings); m_actionManager->saveSettings(m_settings); - m_editorManager->saveSettings(m_settings); + m_editorManager->saveSettings(); m_navigationWidget->saveSettings(m_settings); } -- GitLab