Need the settings also in form of non-QSettings.

This commit is contained in:
con
2009-08-10 13:01:10 +02:00
parent 4a18ac3484
commit a8cc2f6fa4
2 changed files with 33 additions and 9 deletions

View File

@@ -142,20 +142,41 @@ void FancyMainWindow::handleVisibilityChanged(bool visible)
void FancyMainWindow::saveSettings(QSettings *settings) const void FancyMainWindow::saveSettings(QSettings *settings) const
{ {
settings->setValue("State", saveState()); QHash<QString, QVariant> hash = saveSettings();
settings->setValue("Locked", m_locked); QHashIterator<QString, QVariant> it(hash);
for (int i = 0; i < m_dockWidgetActiveState.count(); ++i) { while (it.hasNext()) {
settings->setValue(m_dockWidgets.at(i)->objectName(), it.next();
m_dockWidgetActiveState.at(i)); settings->setValue(it.key(), it.value());
} }
} }
void FancyMainWindow::restoreSettings(QSettings *settings) void FancyMainWindow::restoreSettings(QSettings *settings)
{ {
QByteArray ba = settings->value("State", QByteArray()).toByteArray(); QHash<QString, QVariant> hash;
restoreState(ba); foreach (const QString &key, settings->childKeys()) {
m_locked = settings->value("Locked", true).toBool(); hash.insert(key, settings->value(key));
}
restoreSettings(hash);
}
QHash<QString, QVariant> FancyMainWindow::saveSettings() const
{
QHash<QString, QVariant> settings;
settings["State"] = saveState();
settings["Locked"] = m_locked;
for (int i = 0; i < m_dockWidgetActiveState.count(); ++i) { for (int i = 0; i < m_dockWidgetActiveState.count(); ++i) {
m_dockWidgetActiveState[i] = settings->value(m_dockWidgets.at(i)->objectName(), false).toBool(); settings[m_dockWidgets.at(i)->objectName()] =
m_dockWidgetActiveState.at(i);
}
return settings;
}
void FancyMainWindow::restoreSettings(const QHash<QString, QVariant> &settings)
{
QByteArray ba = settings.value("State", QByteArray()).toByteArray();
restoreState(ba);
m_locked = settings.value("Locked", true).toBool();
for (int i = 0; i < m_dockWidgetActiveState.count(); ++i) {
m_dockWidgetActiveState[i] = settings.value(m_dockWidgets.at(i)->objectName(), false).toBool();
} }
} }

View File

@@ -33,6 +33,7 @@
#include "utils_global.h" #include "utils_global.h"
#include <QtCore/QList> #include <QtCore/QList>
#include <QtCore/QHash>
#include <QtCore/QSettings> #include <QtCore/QSettings>
#include <QtGui/QMainWindow> #include <QtGui/QMainWindow>
#include <QtGui/QDockWidget> #include <QtGui/QDockWidget>
@@ -56,6 +57,8 @@ public:
void saveSettings(QSettings *settings) const; void saveSettings(QSettings *settings) const;
void restoreSettings(QSettings *settings); void restoreSettings(QSettings *settings);
QHash<QString, QVariant> saveSettings() const;
void restoreSettings(const QHash<QString, QVariant> &settings);
public slots: public slots:
void setLocked(bool locked); void setLocked(bool locked);