diff --git a/src/plugins/coreplugin/icore.cpp b/src/plugins/coreplugin/icore.cpp index 74d66d9b48a..446b6d23af4 100644 --- a/src/plugins/coreplugin/icore.cpp +++ b/src/plugins/coreplugin/icore.cpp @@ -596,6 +596,7 @@ QString ICore::systemInformation() void ICore::saveSettings() { emit m_instance->saveSettingsRequested(); + m_mainwindow->saveSettings(); ICore::settings(QSettings::SystemScope)->sync(); ICore::settings(QSettings::UserScope)->sync(); diff --git a/src/plugins/coreplugin/mainwindow.cpp b/src/plugins/coreplugin/mainwindow.cpp index 634796aaa12..c67b3b2e3b0 100644 --- a/src/plugins/coreplugin/mainwindow.cpp +++ b/src/plugins/coreplugin/mainwindow.cpp @@ -388,7 +388,7 @@ void MainWindow::closeEvent(QCloseEvent *event) emit m_coreImpl->coreAboutToClose(); - writeSettings(); + saveWindowSettings(); m_navigationWidget->closeSubWidgets(); @@ -980,7 +980,7 @@ void MainWindow::readSettings() m_rightPaneWidget->readSettings(settings); } -void MainWindow::writeSettings() +void MainWindow::saveSettings() { QSettings *settings = PluginManager::settings(); settings->beginGroup(QLatin1String(settingsGroup)); @@ -988,6 +988,19 @@ void MainWindow::writeSettings() if (!(m_overrideColor.isValid() && StyleHelper::baseColor() == m_overrideColor)) settings->setValue(QLatin1String(colorKey), StyleHelper::requestedBaseColor()); + settings->endGroup(); + + DocumentManager::saveSettings(); + ActionManager::saveSettings(); + EditorManagerPrivate::saveSettings(); + m_navigationWidget->saveSettings(settings); +} + +void MainWindow::saveWindowSettings() +{ + QSettings *settings = PluginManager::settings(); + settings->beginGroup(QLatin1String(settingsGroup)); + // On OS X applications usually do not restore their full screen state. // To be able to restore the correct non-full screen geometry, we have to put // the window out of full screen before saving the geometry. @@ -999,11 +1012,6 @@ void MainWindow::writeSettings() settings->setValue(QLatin1String(modeSelectorVisibleKey), ModeManager::isModeSelectorVisible()); settings->endGroup(); - - DocumentManager::saveSettings(); - ActionManager::saveSettings(); - EditorManagerPrivate::saveSettings(); - m_navigationWidget->saveSettings(settings); } void MainWindow::updateAdditionalContexts(const Context &remove, const Context &add, diff --git a/src/plugins/coreplugin/mainwindow.h b/src/plugins/coreplugin/mainwindow.h index b2e374662d4..17504a6f235 100644 --- a/src/plugins/coreplugin/mainwindow.h +++ b/src/plugins/coreplugin/mainwindow.h @@ -111,6 +111,8 @@ public: void addPreCloseListener(const std::function &listener); + void saveSettings(); + signals: void newItemDialogRunningChanged(); @@ -149,7 +151,7 @@ private: void registerDefaultActions(); void readSettings(); - void writeSettings(); + void saveWindowSettings(); ICore *m_coreImpl; QStringList m_aboutInformation;