Commit a116511f authored by Jyrki's avatar Jyrki :feet:
Browse files

Add AppSetting model

parent 333d5b71
Showing with 98 additions and 3 deletions
+98 -3
......@@ -2,7 +2,7 @@
#define DBMANAGER_MIGRATE_FROM
// This file was generated by `/db/gen_migration_data.rb`.
// Last changed at: 2018-05-05 13:41:22 +0200
// Last changed at: 2018-05-06 15:06:18 +0200
void DbManager::migrateFrom(qlonglong version)
{
......@@ -19,6 +19,15 @@ void DbManager::migrateFrom(qlonglong version)
version = 20180505002706;
// qDebug() << "====== done ========";
}
if (version < 20180506095408)
{
// qDebug() << "migrating to version 20180506095408";
query.exec("CREATE TABLE `app_settings` (`name` varchar(255) NOT NULL PRIMARY KEY, `value` text DEFAULT ('') NOT NULL)");
query.exec("INSERT INTO `schema_migrations` (`version`) VALUES (20180506095408)");
version = 20180506095408;
// qDebug() << "====== done ========";
}
}
#endif // DBMANAGER_MIGRATE_FROM
Sequel.migration do
change do
create_table(:app_settings) do
String :name, primary_key: true
String :value, text: true, default: "", null: false
end
end
end
......@@ -31,7 +31,8 @@ SOURCES += \
src/dbmanager.cpp \
src/settings/settingsdialog.cpp \
src/settings/accountswidget.cpp \
src/webdialog.cpp
src/webdialog.cpp \
src/models/appsetting.cpp
HEADERS += \
src/mainwindow.h \
......@@ -41,7 +42,8 @@ HEADERS += \
db/inc/dbmanager_migrate_from.h \
src/settings/settingsdialog.h \
src/settings/accountswidget.h \
src/webdialog.h
src/webdialog.h \
src/models/appsetting.h
FORMS += \
src/mainwindow.ui \
......
#include "appsetting.h"
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>
AppSetting::AppSetting(QObject *parent) : QObject(parent)
{
}
QString AppSetting::get(const QString &name, bool *ok)
{
QSqlDatabase db = QSqlDatabase::database();
QSqlQuery query;
query.prepare("SELECT `value` FROM `app_settings` WHERE `name` = :name");
query.bindValue(":name", name);
if (!(query.exec() && query.first()))
{
if (ok != nullptr)
{
*ok = false;
}
db.close();
return "";
}
if (ok != nullptr)
{
*ok = true;
}
db.close();
return query.value("value").toString();
}
bool AppSetting::set(const QString &name, const QString &value)
{
QSqlDatabase db = QSqlDatabase::database();
QSqlQuery query;
query.prepare("INSERT OR REPLACE INTO `app_settings` (`name`, `value`) "
"VALUES (:name, :value)");
query.bindValue(":name", name);
query.bindValue(":value", value);
if (!query.exec())
{
db.close();
return false;
}
db.close();
return true;
}
#ifndef APPSETTING_H
#define APPSETTING_H
#include <QObject>
#include <QVariant>
class AppSetting : public QObject
{
Q_OBJECT
public:
explicit AppSetting(QObject *parent = nullptr);
static QString get(const QString& name, bool *ok = nullptr);
static bool set(const QString& name, const QString& value);
signals:
public slots:
};
#endif // APPSETTING_H
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment