diff options
author | Florian Geyer <blueice@fobos.de> | 2012-06-15 00:55:25 +0400 |
---|---|---|
committer | Florian Geyer <blueice@fobos.de> | 2012-06-15 01:07:49 +0400 |
commit | a72090308336556228adb92ece9fd03804f631fe (patch) | |
tree | 169635e3f63d2d9ee702bae0a7219a859de7144c | |
parent | 056447fad98a874fd3813100482eef55798e746c (diff) |
Use temporary settings file for gui test.
-rw-r--r-- | src/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/core/Config.cpp | 33 | ||||
-rw-r--r-- | src/core/Config.h | 10 | ||||
-rw-r--r-- | tests/gui/TestGui.cpp | 2 |
4 files changed, 41 insertions, 5 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 863b31a6d..cac9244d8 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -90,6 +90,7 @@ set(keepassx_SOURCES ) set(keepassx_MOC + core/Config.h core/Database.h core/Entry.h core/EntryAttachments.h diff --git a/src/core/Config.cpp b/src/core/Config.cpp index ccbabc085..a3dabb96b 100644 --- a/src/core/Config.cpp +++ b/src/core/Config.cpp @@ -19,6 +19,8 @@ #include <QtCore/QDir> #include <QtCore/QSettings> +#include <QtCore/QTemporaryFile> +#include <QtGui/QApplication> #include <QtGui/QDesktopServices> Config* Config::m_instance(0); @@ -38,7 +40,14 @@ void Config::set(const QString& key, const QVariant& value) m_settings->setValue(key, value); } -Config::Config() +Config::Config(const QString& fileName, QObject* parent) + : QObject(parent) +{ + init(fileName); +} + +Config::Config(QObject* parent) + : QObject(parent) { QString userPath; QString homePath = QDir::homePath(); @@ -67,7 +76,17 @@ Config::Config() userPath += "keepassx2.ini"; - m_settings.reset(new QSettings(userPath, QSettings::IniFormat)); + init(userPath); +} + +Config::~Config() +{ + ; +} + +void Config::init(const QString& fileName) +{ + m_settings.reset(new QSettings(fileName, QSettings::IniFormat)); m_defaults.insert("RememberLastDatabases", true); m_defaults.insert("ModifiedOnExpandedStateChanges", true); @@ -80,8 +99,16 @@ Config::Config() Config* Config::instance() { if (!m_instance) { - m_instance = new Config(); + m_instance = new Config(qApp); } return m_instance; } + +void Config::createTempFileInstance() +{ + Q_ASSERT(!m_instance); + QTemporaryFile* tmpFile = new QTemporaryFile(qApp); + tmpFile->open(); + m_instance = new Config(tmpFile->fileName(), tmpFile); +} diff --git a/src/core/Config.h b/src/core/Config.h index 341e030a5..0041e673e 100644 --- a/src/core/Config.h +++ b/src/core/Config.h @@ -23,17 +23,23 @@ class QSettings; -class Config +class Config : public QObject { + Q_OBJECT + public: + ~Config(); QVariant get(const QString& key); QVariant get(const QString& key, const QVariant& defaultValue); void set(const QString& key, const QVariant& value); static Config* instance(); + static void createTempFileInstance(); private: - Config(); + Config(const QString& fileName, QObject* parent); + Config(QObject* parent); + void init(const QString& fileName); static Config* m_instance; diff --git a/tests/gui/TestGui.cpp b/tests/gui/TestGui.cpp index 1f48b2b0c..04e770074 100644 --- a/tests/gui/TestGui.cpp +++ b/tests/gui/TestGui.cpp @@ -29,6 +29,7 @@ #include "config-keepassx-tests.h" #include "tests.h" #include "crypto/Crypto.h" +#include "core/Config.h" #include "core/Entry.h" #include "gui/DatabaseTabWidget.h" #include "gui/DatabaseWidget.h" @@ -40,6 +41,7 @@ void TestGui::initTestCase() { Crypto::init(); + Config::createTempFileInstance(); m_mainWindow = new MainWindow(); m_mainWindow->show(); QTest::qWaitForWindowShown(m_mainWindow); |