diff --git a/src/plugins/coreplugin/sidebar.cpp b/src/plugins/coreplugin/sidebar.cpp index 86ffd9fe9197f855e33e9715af31bf0dc16b0286..d595928ab3f346b00cf525f2488d770899ff08b4 100644 --- a/src/plugins/coreplugin/sidebar.cpp +++ b/src/plugins/coreplugin/sidebar.cpp @@ -143,24 +143,28 @@ void SideBar::updateWidgets() i->updateAvailableItems(); } -void SideBar::saveSettings(QSettings *settings) +void SideBar::saveSettings(QSettings *settings, const QString &name) { + const QString prefix = name.isEmpty() ? name : (name + QLatin1Char('/')); + QStringList views; for (int i = 0; i < m_widgets.count(); ++i) views.append(m_widgets.at(i)->currentItemTitle()); - settings->setValue("HelpSideBar/Views", views); - settings->setValue("HelpSideBar/Visible", true);//isVisible()); - settings->setValue("HelpSideBar/VerticalPosition", saveState()); - settings->setValue("HelpSideBar/Width", width()); + settings->setValue(prefix + "Views", views); + settings->setValue(prefix + "Visible", true);//isVisible()); + settings->setValue(prefix + "VerticalPosition", saveState()); + settings->setValue(prefix + "Width", width()); } -void SideBar::readSettings(QSettings *settings) +void SideBar::readSettings(QSettings *settings, const QString &name) { + const QString prefix = name.isEmpty() ? name : (name + QLatin1Char('/')); + foreach (SideBarWidget *widget, m_widgets) removeSideBarWidget(widget); - if (settings->contains("HelpSideBar/Views")) { - QStringList views = settings->value("HelpSideBar/Views").toStringList(); + if (settings->contains(prefix + "Views")) { + QStringList views = settings->value(prefix + "Views").toStringList(); if (views.count()) { foreach (const QString &title, views) insertSideBarWidget(m_widgets.count(), title); @@ -172,15 +176,15 @@ void SideBar::readSettings(QSettings *settings) insertSideBarWidget(m_widgets.count(), title); } - if (settings->contains("HelpSideBar/Visible")) - setVisible(settings->value("HelpSideBar/Visible").toBool()); + if (settings->contains(prefix + "Visible")) + setVisible(settings->value(prefix + "Visible").toBool()); - if (settings->contains("HelpSideBar/VerticalPosition")) - restoreState(settings->value("HelpSideBar/VerticalPosition").toByteArray()); + if (settings->contains(prefix + "VerticalPosition")) + restoreState(settings->value(prefix + "VerticalPosition").toByteArray()); - if (settings->contains("HelpSideBar/Width")) { + if (settings->contains(prefix + "Width")) { QSize s = size(); - s.setWidth(settings->value("HelpSideBar/Width").toInt()); + s.setWidth(settings->value(prefix + "Width").toInt()); resize(s); } } diff --git a/src/plugins/coreplugin/sidebar.h b/src/plugins/coreplugin/sidebar.h index c4276e3e6e20bd5361076d2e32f1902d96f4c04b..17d90a93b22ae24de6ed7cd8dad7795544d12c52 100644 --- a/src/plugins/coreplugin/sidebar.h +++ b/src/plugins/coreplugin/sidebar.h @@ -101,8 +101,8 @@ public: void makeItemAvailable(SideBarItem *item); SideBarItem *item(const QString &title); - void saveSettings(QSettings *settings); - void readSettings(QSettings *settings); + void saveSettings(QSettings *settings, const QString &name); + void readSettings(QSettings *settings, const QString &name); void activateItem(SideBarItem *item); diff --git a/src/plugins/help/helpplugin.cpp b/src/plugins/help/helpplugin.cpp index d905a538fd9ec28ea61526d06333b3e01f124dc2..02bf176679c79c3635c045030480448b6939e61b 100644 --- a/src/plugins/help/helpplugin.cpp +++ b/src/plugins/help/helpplugin.cpp @@ -566,7 +566,7 @@ void HelpPlugin::slotHideRightPane() void HelpPlugin::extensionsInitialized() { - m_sideBar->readSettings(m_core->settings()); + m_sideBar->readSettings(m_core->settings(), QLatin1String("HelpSideBar")); if (!m_helpEngine->setupData()) { qWarning() << "Could not initialize help engine: " << m_helpEngine->error(); return; @@ -683,7 +683,7 @@ void HelpPlugin::extensionsInitialized() void HelpPlugin::shutdown() { - m_sideBar->saveSettings(m_core->settings()); + m_sideBar->saveSettings(m_core->settings(), QLatin1String("HelpSideBar")); m_bookmarkManager->saveBookmarks(); delete m_bookmarkManager; }