From 036505b8cb6241ab4f2c163e06d963312d880986 Mon Sep 17 00:00:00 2001 From: Chris Cochrun Date: Fri, 17 Nov 2023 06:27:03 -0600 Subject: [PATCH] refactoring slidehelper in cpp to make it clear it's a helper class --- src/cpp/{slideobject.cpp => slidehelper.cpp} | 36 ++++++++++---------- src/cpp/{slideobject.h => slidehelper.h} | 10 +++--- src/main.cpp | 13 ++++--- 3 files changed, 32 insertions(+), 27 deletions(-) rename src/cpp/{slideobject.cpp => slidehelper.cpp} (88%) rename src/cpp/{slideobject.h => slidehelper.h} (89%) diff --git a/src/cpp/slideobject.cpp b/src/cpp/slidehelper.cpp similarity index 88% rename from src/cpp/slideobject.cpp rename to src/cpp/slidehelper.cpp index 6fe8d89..b4d05ec 100644 --- a/src/cpp/slideobject.cpp +++ b/src/cpp/slidehelper.cpp @@ -1,4 +1,4 @@ -#include "slideobject.h" +#include "slidehelper.h" #include "serviceitemmodel.h" #include "slidemodel.h" @@ -6,13 +6,13 @@ #include // using namespace PoDoFo; -SlideObject::SlideObject(QObject *parent) +SlideHelper::SlideHelper(QObject *parent) : Slide{parent} { qDebug() << "Initializing slide"; } -SlideObject::SlideObject(const QString &text, const QString &audio, +SlideHelper::SlideHelper(const QString &text, const QString &audio, const QString &imageBackground, const QString &videoBackground, const QString &horizontalTextAlignment, @@ -40,33 +40,33 @@ SlideObject::SlideObject(const QString &text, const QString &audio, qDebug() << "Initializing slide with defaults"; } -bool SlideObject::isPlaying() const +bool SlideHelper::isPlaying() const { return m_isPlaying; } -int SlideObject::slideIndex() const +int SlideHelper::slideIndex() const { return m_slideIndex; } -int SlideObject::slideSize() const +int SlideHelper::slideSize() const { return m_slideSize; } -bool SlideObject::loop() const +bool SlideHelper::loop() const { return m_loop; } -void SlideObject::chngSlide(QVariantMap item, int index, SlideObj *slideObj) { +void SlideHelper::chngSlide(QVariantMap item, int index, SlideObject *slideObject) { // qDebug() << "Here is the pointer to the slideObj" << slideObj; // qDebug() << "Here is the item" << item; - slideObj->changeSlide(item, index); + slideObject->changeSlide(item, index); } -void SlideObject::changeSlide(QVariantMap item, int index) +void SlideHelper::changeSlide(QVariantMap item, int index) { // QVariantMap serviceItem = serviceItemModel->getItem(item.value("serviceItemId").toInt()); if (item.value("text").toString() != text()) @@ -104,7 +104,7 @@ void SlideObject::changeSlide(QVariantMap item, int index) // emit slideSizeChanged(m_slideSize); } -bool SlideObject::next(QVariantMap nextItem, SlideModel *slideModel) +bool SlideHelper::next(QVariantMap nextItem, SlideModel *slideModel) { // QVariantMap serviceItem = serviceItemModel->getItem(nextItem.value("serviceItemId").toInt()); setText(nextItem.value("text").toString()); @@ -129,7 +129,7 @@ bool SlideObject::next(QVariantMap nextItem, SlideModel *slideModel) return false; } -bool SlideObject::previous(QVariantMap prevItem, SlideModel *slideModel) +bool SlideHelper::previous(QVariantMap prevItem, SlideModel *slideModel) { // QVariantMap serviceItem = serviceItemModel->getItem(prevItem.value("serviceItemId").toInt()); setText(prevItem.value("text").toString()); @@ -153,10 +153,10 @@ bool SlideObject::previous(QVariantMap prevItem, SlideModel *slideModel) return false; } -bool SlideObject::changeSlideIndex(int index) +bool SlideHelper::changeSlideIndex(int index) { qDebug() << "Starting to change slide index."; - qDebug() << "SlideObject Index: " << slideIndex() << " SlideObject Size: " << slideSize(); + qDebug() << "SlideHelper Index: " << slideIndex() << " SlideHelper Size: " << slideSize(); // QStringList text = serviceItemId().value("text").toStringList(); if (index > slideSize() - 1 || index < 0) { qDebug() << "index is invalid: " << index; @@ -185,25 +185,25 @@ bool SlideObject::changeSlideIndex(int index) return false; } -void SlideObject::play() +void SlideHelper::play() { m_isPlaying = true; emit isPlayingChanged(m_isPlaying); } -void SlideObject::setLoop(bool loop) +void SlideHelper::setLoop(bool loop) { m_loop = loop; emit loopChanged(m_loop); } -void SlideObject::pause() +void SlideHelper::pause() { m_isPlaying = false; emit isPlayingChanged(m_isPlaying); } -void SlideObject::playPause() +void SlideHelper::playPause() { m_isPlaying = !m_isPlaying; emit isPlayingChanged(m_isPlaying); diff --git a/src/cpp/slideobject.h b/src/cpp/slidehelper.h similarity index 89% rename from src/cpp/slideobject.h rename to src/cpp/slidehelper.h index 96bb4e6..e17f438 100644 --- a/src/cpp/slideobject.h +++ b/src/cpp/slidehelper.h @@ -8,9 +8,9 @@ #include #include #include -#include "cxx-qt-gen/slide_obj.cxxqt.h" +#include "cxx-qt-gen/slide_object.cxxqt.h" -class SlideObject : public Slide +class SlideHelper : public Slide { Q_OBJECT Q_PROPERTY(bool isPlaying READ isPlaying NOTIFY isPlayingChanged) @@ -20,8 +20,8 @@ class SlideObject : public Slide // QML_ELEMENT public: - explicit SlideObject(QObject *parent = nullptr); - SlideObject(const QString &text, const QString &audio, + explicit SlideHelper(QObject *parent = nullptr); + SlideHelper(const QString &text, const QString &audio, const QString &imageBackground, const QString &videoBackground, const QString &horizontalTextAlignment, const QString &verticalTextAlignment, const QString &font, const int &fontSize, const int &imageCount, @@ -34,7 +34,7 @@ public: bool loop() const; Q_INVOKABLE void changeSlide(QVariantMap item, int index); - Q_INVOKABLE void chngSlide(QVariantMap item, int index, SlideObj *slideObj); + Q_INVOKABLE void chngSlide(QVariantMap item, int index, SlideObject *slideObject); Q_INVOKABLE void play(); Q_INVOKABLE void pause(); Q_INVOKABLE void playPause(); diff --git a/src/main.cpp b/src/main.cpp index 2b9930e..4217541 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -45,12 +45,12 @@ #include "cpp/imagesqlmodel.h" #include "cpp/presentationsqlmodel.h" #include "cpp/filemanager.h" -#include "cpp/slideobject.h" +#include "cpp/slidehelper.h" // RUST #include "cxx-qt-gen/service_thing.cxxqt.h" #include "cxx-qt-gen/file_helper.cxxqt.h" -#include "cxx-qt-gen/slide_obj.cxxqt.h" +#include "cxx-qt-gen/slide_object.cxxqt.h" #include "cxx-qt-gen/slide_model.cxxqt.h" #include "cxx-qt-gen/service_item_model.cxxqt.h" #include "cxx-qt-gen/settings.cxxqt.h" @@ -152,7 +152,7 @@ int main(int argc, char *argv[]) // QScopedPointer preswin(new QQuickView); QScopedPointer serviceItemModel(new ServiceItemMod); QScopedPointer serviceItemC(new ServiceItemModel); - QScopedPointer slideobject(new SlideObj); + QScopedPointer slideobject(new SlideObject); Settings *settings = new Settings; settings->setup(); @@ -232,7 +232,7 @@ int main(int argc, char *argv[]) qmlRegisterType("org.presenter", 1, 0, "FileHelper"); qmlRegisterType("org.presenter", 1, 0, "Ytdl"); qmlRegisterType("org.presenter", 1, 0, "ServiceThing"); - qmlRegisterType("org.presenter", 1, 0, "SlideHelper"); + qmlRegisterType("org.presenter", 1, 0, "SlideHelper"); qmlRegisterSingletonInstance("org.presenter", 1, 0, "ServiceItemModel", serviceItemModel.get()); qmlRegisterSingletonInstance("org.presenter", 1, 0, @@ -244,6 +244,11 @@ int main(int argc, char *argv[]) qmlRegisterSingletonInstance("org.presenter", 1, 0, "PresWindow", PresWindow); qmlRegisterSingletonInstance("org.presenter", 1, 0, "RSettings", settings); // qmlRegisterSingletonInstance("org.presenter", 1, 0, "PresWindow", preswin.get()); + + // This is the same slideobject, however to enusre that the PresWindow can have it + // we need to set it as a separate context so that it can change it's slides too. + // This is because SlideObject singleton is started before the window is shown + // thus it doesn't exist in this window's context. So we set it here. PresWindow->rootContext()->setContextProperty("SlideObj", slideobject.get()); PresWindow->setTitle("presentation-window");