From 4416dda24309ccfc06fcc367a78694042bbb383c Mon Sep 17 00:00:00 2001 From: Erik Verbruggen <erik.verbruggen@nokia.com> Date: Mon, 4 Jan 2010 14:36:29 +0100 Subject: [PATCH] Added a name component to the SideBar's saveSettings/restoreSettings to allow for multiple instances in a plug-in. --- src/plugins/coreplugin/sidebar.cpp | 32 +++++++++++++++++------------- src/plugins/coreplugin/sidebar.h | 4 ++-- src/plugins/help/helpplugin.cpp | 4 ++-- 3 files changed, 22 insertions(+), 18 deletions(-) diff --git a/src/plugins/coreplugin/sidebar.cpp b/src/plugins/coreplugin/sidebar.cpp index 86ffd9fe919..d595928ab3f 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 c4276e3e6e2..17d90a93b22 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 d905a538fd9..02bf176679c 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; } -- GitLab