Added a name component to the SideBar's saveSettings/restoreSettings to allow for multiple instances in a plug-in.

This commit is contained in:
Erik Verbruggen
2010-01-04 14:36:29 +01:00
parent 46c114e895
commit 4416dda243
3 changed files with 22 additions and 18 deletions

View File

@@ -143,24 +143,28 @@ void SideBar::updateWidgets()
i->updateAvailableItems(); 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; QStringList views;
for (int i = 0; i < m_widgets.count(); ++i) for (int i = 0; i < m_widgets.count(); ++i)
views.append(m_widgets.at(i)->currentItemTitle()); views.append(m_widgets.at(i)->currentItemTitle());
settings->setValue("HelpSideBar/Views", views); settings->setValue(prefix + "Views", views);
settings->setValue("HelpSideBar/Visible", true);//isVisible()); settings->setValue(prefix + "Visible", true);//isVisible());
settings->setValue("HelpSideBar/VerticalPosition", saveState()); settings->setValue(prefix + "VerticalPosition", saveState());
settings->setValue("HelpSideBar/Width", width()); 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) foreach (SideBarWidget *widget, m_widgets)
removeSideBarWidget(widget); removeSideBarWidget(widget);
if (settings->contains("HelpSideBar/Views")) { if (settings->contains(prefix + "Views")) {
QStringList views = settings->value("HelpSideBar/Views").toStringList(); QStringList views = settings->value(prefix + "Views").toStringList();
if (views.count()) { if (views.count()) {
foreach (const QString &title, views) foreach (const QString &title, views)
insertSideBarWidget(m_widgets.count(), title); insertSideBarWidget(m_widgets.count(), title);
@@ -172,15 +176,15 @@ void SideBar::readSettings(QSettings *settings)
insertSideBarWidget(m_widgets.count(), title); insertSideBarWidget(m_widgets.count(), title);
} }
if (settings->contains("HelpSideBar/Visible")) if (settings->contains(prefix + "Visible"))
setVisible(settings->value("HelpSideBar/Visible").toBool()); setVisible(settings->value(prefix + "Visible").toBool());
if (settings->contains("HelpSideBar/VerticalPosition")) if (settings->contains(prefix + "VerticalPosition"))
restoreState(settings->value("HelpSideBar/VerticalPosition").toByteArray()); restoreState(settings->value(prefix + "VerticalPosition").toByteArray());
if (settings->contains("HelpSideBar/Width")) { if (settings->contains(prefix + "Width")) {
QSize s = size(); QSize s = size();
s.setWidth(settings->value("HelpSideBar/Width").toInt()); s.setWidth(settings->value(prefix + "Width").toInt());
resize(s); resize(s);
} }
} }

View File

@@ -101,8 +101,8 @@ public:
void makeItemAvailable(SideBarItem *item); void makeItemAvailable(SideBarItem *item);
SideBarItem *item(const QString &title); SideBarItem *item(const QString &title);
void saveSettings(QSettings *settings); void saveSettings(QSettings *settings, const QString &name);
void readSettings(QSettings *settings); void readSettings(QSettings *settings, const QString &name);
void activateItem(SideBarItem *item); void activateItem(SideBarItem *item);

View File

@@ -566,7 +566,7 @@ void HelpPlugin::slotHideRightPane()
void HelpPlugin::extensionsInitialized() void HelpPlugin::extensionsInitialized()
{ {
m_sideBar->readSettings(m_core->settings()); m_sideBar->readSettings(m_core->settings(), QLatin1String("HelpSideBar"));
if (!m_helpEngine->setupData()) { if (!m_helpEngine->setupData()) {
qWarning() << "Could not initialize help engine: " << m_helpEngine->error(); qWarning() << "Could not initialize help engine: " << m_helpEngine->error();
return; return;
@@ -683,7 +683,7 @@ void HelpPlugin::extensionsInitialized()
void HelpPlugin::shutdown() void HelpPlugin::shutdown()
{ {
m_sideBar->saveSettings(m_core->settings()); m_sideBar->saveSettings(m_core->settings(), QLatin1String("HelpSideBar"));
m_bookmarkManager->saveBookmarks(); m_bookmarkManager->saveBookmarks();
delete m_bookmarkManager; delete m_bookmarkManager;
} }