added a way to get the item through C++ from the rust model

This commit is contained in:
Chris Cochrun 2023-09-08 14:54:00 -05:00
parent bc3024434e
commit e5a7360f0b
3 changed files with 16 additions and 35 deletions

View file

@ -25,6 +25,7 @@
#include <QImage> #include <QImage>
#include "cxx-qt-gen/slide_model.cxxqt.h" #include "cxx-qt-gen/slide_model.cxxqt.h"
#include "cxx-qt-gen/service_item_model.cxxqt.h"
ServiceItemModel::ServiceItemModel(QObject *parent) ServiceItemModel::ServiceItemModel(QObject *parent)
: QAbstractListModel(parent) { : QAbstractListModel(parent) {
@ -393,6 +394,11 @@ bool ServiceItemModel::moveUp(int id) {
return false; return false;
} }
QVariantMap ServiceItemModel::getRust(int index, ServiceItemMod *rustModel) const {
QVariantMap item = rustModel->getItem(index);
return item;
}
QVariantMap ServiceItemModel::getItem(int index) const { QVariantMap ServiceItemModel::getItem(int index) const {
QVariantMap data; QVariantMap data;
const QModelIndex idx = this->index(index,0); const QModelIndex idx = this->index(index,0);

View file

@ -9,6 +9,8 @@
#include <qobjectdefs.h> #include <qobjectdefs.h>
#include <qsize.h> #include <qsize.h>
#include "cxx-qt-gen/service_item_model.cxxqt.h"
class ServiceItemModel : public QAbstractListModel { class ServiceItemModel : public QAbstractListModel {
Q_OBJECT Q_OBJECT
@ -49,47 +51,12 @@ public:
// Helper methods // Helper methods
void addItem(ServiceItem *item); void addItem(ServiceItem *item);
void insertItem(const int &index, ServiceItem *item); void insertItem(const int &index, ServiceItem *item);
// Q_INVOKABLE void addItem(const QString &name, const QString &type);
// // Q_INVOKABLE void addItem(const QString &name, const QString &type,
// // const QString &background);
// Q_INVOKABLE void addItem(const QString &name, const QString &type,
// const QString &background,
// const QString &backgroundType);
// Q_INVOKABLE void addItem(const QString &name, const QString &type,
// const QString &background,
// const QString &backgroundType,
// const QStringList &text);
// Q_INVOKABLE void addItem(const QString &name, const QString &type,
// const QString &background,
// const QString &backgroundType,
// const QStringList &text, const QString &audio);
// Q_INVOKABLE void addItem(const QString &name, const QString &type,
// const QString &background,
// const QString &backgroundType,
// const QStringList &text, const QString &audio,
// const QString &font, const int &fontSize);
Q_INVOKABLE void addItem(const QString &name, const QString &type, Q_INVOKABLE void addItem(const QString &name, const QString &type,
const QString &background, const QString &background,
const QString &backgroundType, const QString &backgroundType,
const QStringList &text, const QString &audio, const QStringList &text, const QString &audio,
const QString &font, const int &fontSize, const QString &font, const int &fontSize,
const int &slideNumber, const bool &loop); const int &slideNumber, const bool &loop);
// Q_INVOKABLE void insertItem(const int &index, const QString &name,
// const QString &type);
// Q_INVOKABLE void insertItem(const int &index, const QString &name,
// const QString &type, const QString &background,
// const QString &backgroundType);
// Q_INVOKABLE void insertItem(const int &index, const QString &name,
// const QString &type, const QString &background,
// const QString &backgroundType, const QStringList &text);
// Q_INVOKABLE void insertItem(const int &index, const QString &name,
// const QString &type, const QString &background,
// const QString &backgroundType, const QStringList &text,
// const QString &audio);
// Q_INVOKABLE void insertItem(const int &index, const QString &name,
// const QString &type, const QString &background,
// const QString &backgroundType, const QStringList &text,
// const QString &audio, const QString &font, const int &fontSize);
Q_INVOKABLE void insertItem(const int &index, const QString &name, Q_INVOKABLE void insertItem(const int &index, const QString &name,
const QString &type, const QString &background, const QString &type, const QString &background,
const QString &backgroundType, const QStringList &text, const QString &backgroundType, const QStringList &text,
@ -106,6 +73,7 @@ public:
Q_INVOKABLE bool activate(int id); Q_INVOKABLE bool activate(int id);
Q_INVOKABLE bool deactivate(int id); Q_INVOKABLE bool deactivate(int id);
Q_INVOKABLE QVariantMap getItem(int index) const; Q_INVOKABLE QVariantMap getItem(int index) const;
Q_INVOKABLE QVariantMap getRust(int index, ServiceItemMod *rustModel) const;
Q_INVOKABLE QVariantList getItems(); Q_INVOKABLE QVariantList getItems();
Q_INVOKABLE void clearAll(); Q_INVOKABLE void clearAll();

View file

@ -97,6 +97,7 @@ static void connectToDatabase() {
qFatal("Cannot open database: %s", qPrintable(db.lastError().text())); qFatal("Cannot open database: %s", qPrintable(db.lastError().text()));
QFile::remove(dbName); QFile::remove(dbName);
} }
qDebug() << "Finished connecting to db";
} }
@ -149,6 +150,7 @@ int main(int argc, char *argv[])
QScopedPointer<File> filemanager(new File); QScopedPointer<File> filemanager(new File);
// QScopedPointer<QQuickView> preswin(new QQuickView); // QScopedPointer<QQuickView> preswin(new QQuickView);
QScopedPointer<ServiceItemMod> serviceItemModel(new ServiceItemMod); QScopedPointer<ServiceItemMod> serviceItemModel(new ServiceItemMod);
QScopedPointer<ServiceItemModel> serviceItemC(new ServiceItemModel);
QScopedPointer<SlideObj> slideobject(new SlideObj); QScopedPointer<SlideObj> slideobject(new SlideObj);
Settings *settings = new Settings; Settings *settings = new Settings;
@ -225,6 +227,8 @@ int main(int argc, char *argv[])
qmlRegisterType<SlideObject>("org.presenter", 1, 0, "SlideHelper"); qmlRegisterType<SlideObject>("org.presenter", 1, 0, "SlideHelper");
qmlRegisterSingletonInstance("org.presenter", 1, 0, qmlRegisterSingletonInstance("org.presenter", 1, 0,
"ServiceItemModel", serviceItemModel.get()); "ServiceItemModel", serviceItemModel.get());
qmlRegisterSingletonInstance("org.presenter", 1, 0,
"ServiceItemC", serviceItemC.get());
qmlRegisterSingletonInstance("org.presenter", 1, 0, "SlideModel", slideModel.get()); qmlRegisterSingletonInstance("org.presenter", 1, 0, "SlideModel", slideModel.get());
qmlRegisterSingletonInstance("org.presenter", 1, 0, "SlideMod", slideMod.get()); qmlRegisterSingletonInstance("org.presenter", 1, 0, "SlideMod", slideMod.get());
qmlRegisterSingletonInstance("org.presenter", 1, 0, "SlideObject", slideobject.get()); qmlRegisterSingletonInstance("org.presenter", 1, 0, "SlideObject", slideobject.get());
@ -237,10 +241,13 @@ int main(int argc, char *argv[])
connectToDatabase(); connectToDatabase();
qDebug() << "Starting engine";
QQmlApplicationEngine engine; QQmlApplicationEngine engine;
qDebug() << app.allWindows();
engine.rootContext()->setContextObject(new KLocalizedContext(&engine)); engine.rootContext()->setContextObject(new KLocalizedContext(&engine));
engine.load(QUrl(QStringLiteral("qrc:qml/main.qml"))); engine.load(QUrl(QStringLiteral("qrc:qml/main.qml")));
qDebug() << "Engine loaded";
// engine.load(QUrl(QStringLiteral("qrc:qml/presenter/PresentationWindow.qml"))); // engine.load(QUrl(QStringLiteral("qrc:qml/presenter/PresentationWindow.qml")));
qDebug() << app.topLevelWindows(); qDebug() << app.topLevelWindows();