Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/keepassxreboot/keepassxc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Geyer <blueice@fobos.de>2012-06-15 00:55:25 +0400
committerFlorian Geyer <blueice@fobos.de>2012-06-15 01:07:49 +0400
commita72090308336556228adb92ece9fd03804f631fe (patch)
tree169635e3f63d2d9ee702bae0a7219a859de7144c
parent056447fad98a874fd3813100482eef55798e746c (diff)
Use temporary settings file for gui test.
-rw-r--r--src/CMakeLists.txt1
-rw-r--r--src/core/Config.cpp33
-rw-r--r--src/core/Config.h10
-rw-r--r--tests/gui/TestGui.cpp2
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);