Always save settings on exit

Task-number: QTCREATORBUG-7904

Change-Id: I1f7e1462db287cfda2d131f380c7235a94832e69
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
This commit is contained in:
Tobias Hunger
2012-09-24 18:20:10 +02:00
parent 4a1be4d0b9
commit 3c4e633209
2 changed files with 17 additions and 3 deletions

View File

@@ -376,11 +376,24 @@ PersistentSettingsWriter::PersistentSettingsWriter(const FileName &fileName, con
m_fileName(fileName), m_docType(docType) m_fileName(fileName), m_docType(docType)
{ } { }
PersistentSettingsWriter::~PersistentSettingsWriter()
{
write(m_savedData, 0);
}
bool PersistentSettingsWriter::save(const QVariantMap &data, QWidget *parent) const bool PersistentSettingsWriter::save(const QVariantMap &data, QWidget *parent) const
{ {
if (data == m_savedData) if (data == m_savedData)
return true; return true;
return write(data, parent);
}
FileName PersistentSettingsWriter::fileName() const
{ return m_fileName; }
bool PersistentSettingsWriter::write(const QVariantMap &data, QWidget *parent) const
{
QDir tmp; QDir tmp;
tmp.mkpath(m_fileName.toFileInfo().path()); tmp.mkpath(m_fileName.toFileInfo().path());
Utils::FileSaver saver(m_fileName.toString(), QIODevice::Text); Utils::FileSaver saver(m_fileName.toString(), QIODevice::Text);
@@ -412,7 +425,4 @@ bool PersistentSettingsWriter::save(const QVariantMap &data, QWidget *parent) co
return ok; return ok;
} }
FileName PersistentSettingsWriter::fileName() const
{ return m_fileName; }
} // namespace Utils } // namespace Utils

View File

@@ -60,11 +60,15 @@ class QTCREATOR_UTILS_EXPORT PersistentSettingsWriter
{ {
public: public:
PersistentSettingsWriter(const FileName &fileName, const QString &docType); PersistentSettingsWriter(const FileName &fileName, const QString &docType);
~PersistentSettingsWriter();
bool save(const QVariantMap &data, QWidget *parent) const; bool save(const QVariantMap &data, QWidget *parent) const;
Utils::FileName fileName() const; Utils::FileName fileName() const;
private: private:
bool write(const QVariantMap &data, QWidget *parent) const;
const Utils::FileName m_fileName; const Utils::FileName m_fileName;
const QString m_docType; const QString m_docType;
mutable QMap<QString, QVariant> m_savedData; mutable QMap<QString, QVariant> m_savedData;