Pass db instance to models. Pass models to QML.

This commit is contained in:
2020-06-06 22:01:45 -04:00
parent 163441c4ef
commit eda53f9663
5 changed files with 11 additions and 4 deletions

View File

@@ -18,7 +18,7 @@
#include "sqlservicerecord.h" #include "sqlservicerecord.h"
#include <QSqlRecord> #include <QSqlRecord>
SqlServiceRecord::SqlServiceRecord(QObject* parent) SqlServiceRecord::SqlServiceRecord(QObject* parent, QSqlDatabase db) : QSqlTableModel(parent, db)
{ {
setTable("records"); setTable("records");
} }

View File

@@ -27,7 +27,7 @@ class SqlServiceRecord : public QSqlTableModel
{ {
Q_OBJECT Q_OBJECT
public: public:
explicit SqlServiceRecord(QObject *parent); explicit SqlServiceRecord(QObject *parent = nullptr, QSqlDatabase db = QSqlDatabase());
QHash<int, QByteArray> roleNames() const override; QHash<int, QByteArray> roleNames() const override;
QVariant data(const QModelIndex &index, int role) const override; QVariant data(const QModelIndex &index, int role) const override;

View File

@@ -18,7 +18,7 @@
#include "sqlvehicle.h" #include "sqlvehicle.h"
#include <QSqlRecord> #include <QSqlRecord>
SqlVehicle::SqlVehicle(QObject* parent) SqlVehicle::SqlVehicle(QObject* parent, QSqlDatabase db) : QSqlTableModel(parent, db)
{ {
setTable("vehicles"); setTable("vehicles");
} }

View File

@@ -27,7 +27,7 @@ class SqlVehicle : public QSqlTableModel
{ {
Q_OBJECT Q_OBJECT
public: public:
explicit SqlVehicle(QObject *parent); explicit SqlVehicle(QObject *parent = nullptr, QSqlDatabase db = QSqlDatabase());
QHash<int, QByteArray> roleNames() const override; QHash<int, QByteArray> roleNames() const override;
QVariant data(const QModelIndex &index, int role) const override; QVariant data(const QModelIndex &index, int role) const override;

View File

@@ -27,6 +27,8 @@
#include <QDebug> #include <QDebug>
#include <QSqlQuery> #include <QSqlQuery>
#include <QQmlContext> #include <QQmlContext>
#include "db/sqlvehicle.h"
#include "db/sqlservicerecord.h"
Q_DECL_EXPORT int main(int argc, char *argv[]) Q_DECL_EXPORT int main(int argc, char *argv[])
{ {
@@ -67,8 +69,13 @@ Q_DECL_EXPORT int main(int argc, char *argv[])
return -2; return -2;
} }
SqlVehicle vehicles(nullptr, db);
SqlServiceRecord records(nullptr, db);
QQmlApplicationEngine engine; QQmlApplicationEngine engine;
engine.rootContext()->setContextProperty(QStringLiteral("appAboutData"), QVariant::fromValue(aboutData)); engine.rootContext()->setContextProperty(QStringLiteral("appAboutData"), QVariant::fromValue(aboutData));
engine.rootContext()->setContextProperty(QStringLiteral("vehicleModel"), &vehicles);
engine.rootContext()->setContextProperty(QStringLiteral("recordModel"), &records);
engine.load(QUrl(QStringLiteral("qrc:///main.qml"))); engine.load(QUrl(QStringLiteral("qrc:///main.qml")));
if (engine.rootObjects().isEmpty()) { if (engine.rootObjects().isEmpty()) {