summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pica-client/pica-client.pro6
-rw-r--r--pica-client/settings.cpp51
-rw-r--r--pica-client/settings.h23
3 files changed, 78 insertions, 2 deletions
diff --git a/pica-client/pica-client.pro b/pica-client/pica-client.pro
index 74f484a..ef9f9fd 100644
--- a/pica-client/pica-client.pro
+++ b/pica-client/pica-client.pro
@@ -37,7 +37,8 @@ SOURCES += main.cpp\
dialogs/filetransferdialog.cpp \
filetransfercontroller.cpp \
sound.cpp \
- dialogs/settingsdialog.cpp
+ dialogs/settingsdialog.cpp \
+ settings.cpp
HEADERS += mainwindow.h \
chatwindow.h \
@@ -68,7 +69,8 @@ HEADERS += mainwindow.h \
dialogs/filetransferdialog.h \
filetransfercontroller.h \
sound.h \
- dialogs/settingsdialog.h
+ dialogs/settingsdialog.h \
+ settings.h
DEFINES = PICA_MULTITHREADED
diff --git a/pica-client/settings.cpp b/pica-client/settings.cpp
new file mode 100644
index 0000000..160e402
--- /dev/null
+++ b/pica-client/settings.cpp
@@ -0,0 +1,51 @@
+#include "settings.h"
+
+Settings::Settings(QString storage)
+{
+ dbconn=QSqlDatabase::addDatabase("QSQLITE");
+ dbconn.setDatabaseName(storage);
+
+ if (!dbconn.open())
+ {
+ lasterr=dbconn.lastError();
+ return;
+ }
+
+}
+
+QString Settings::GetLastError()
+{
+ return lasterr.text();
+}
+
+QVariant Settings::loadValue(QString name, QVariant defval)
+{
+ QSqlQuery query;
+
+ query.prepare("select value from settings where name = :name");
+ query.bindValue(":name", name);
+ query.exec();
+
+ lasterr = query.lastError();
+
+ query.next();
+
+ if (!query.isValid())
+ {
+ return defval;
+ }
+
+ return query.value(0);
+}
+
+void Settings::storeValue(QString name, QString val)
+{
+ QSqlQuery query;
+
+ query.prepare("insert into settings (name, value) values (:name, :val)");
+ query.bindValue(":addr", name);
+ query.bindValue(":val", val);
+ query.exec();
+
+ lasterr = query.lastError();
+}
diff --git a/pica-client/settings.h b/pica-client/settings.h
new file mode 100644
index 0000000..d7d5b5f
--- /dev/null
+++ b/pica-client/settings.h
@@ -0,0 +1,23 @@
+#ifndef SETTINGS_H
+#define SETTINGS_H
+
+#include <QtSql>
+#include <QSqlDatabase>
+#include <QVariant>
+
+class Settings
+{
+public:
+ Settings(QString storage);
+
+ QVariant loadValue(QString name, QVariant defval);
+ void storeValue(QString name, QString val);
+
+ QString GetLastError();
+
+private:
+ QSqlDatabase dbconn;
+ QSqlError lasterr;
+};
+
+#endif // SETTINGS_H