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 <QSqlRecord>
SqlServiceRecord::SqlServiceRecord(QObject* parent)
SqlServiceRecord::SqlServiceRecord(QObject* parent, QSqlDatabase db) : QSqlTableModel(parent, db)
{
setTable("records");
}

View File

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

View File

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

View File

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

View File

@@ -27,6 +27,8 @@
#include <QDebug>
#include <QSqlQuery>
#include <QQmlContext>
#include "db/sqlvehicle.h"
#include "db/sqlservicerecord.h"
Q_DECL_EXPORT int main(int argc, char *argv[])
{
@@ -67,8 +69,13 @@ Q_DECL_EXPORT int main(int argc, char *argv[])
return -2;
}
SqlVehicle vehicles(nullptr, db);
SqlServiceRecord records(nullptr, db);
QQmlApplicationEngine engine;
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")));
if (engine.rootObjects().isEmpty()) {