refactoring slidehelper in cpp to make it clear it's a helper class

This commit is contained in:
Chris Cochrun 2023-11-17 06:27:03 -06:00
parent 85136ddb94
commit 036505b8cb
3 changed files with 32 additions and 27 deletions

View file

@ -1,4 +1,4 @@
#include "slideobject.h" #include "slidehelper.h"
#include "serviceitemmodel.h" #include "serviceitemmodel.h"
#include "slidemodel.h" #include "slidemodel.h"
@ -6,13 +6,13 @@
#include <QDebug> #include <QDebug>
// using namespace PoDoFo; // using namespace PoDoFo;
SlideObject::SlideObject(QObject *parent) SlideHelper::SlideHelper(QObject *parent)
: Slide{parent} : Slide{parent}
{ {
qDebug() << "Initializing slide"; qDebug() << "Initializing slide";
} }
SlideObject::SlideObject(const QString &text, const QString &audio, SlideHelper::SlideHelper(const QString &text, const QString &audio,
const QString &imageBackground, const QString &imageBackground,
const QString &videoBackground, const QString &videoBackground,
const QString &horizontalTextAlignment, const QString &horizontalTextAlignment,
@ -40,33 +40,33 @@ SlideObject::SlideObject(const QString &text, const QString &audio,
qDebug() << "Initializing slide with defaults"; qDebug() << "Initializing slide with defaults";
} }
bool SlideObject::isPlaying() const bool SlideHelper::isPlaying() const
{ {
return m_isPlaying; return m_isPlaying;
} }
int SlideObject::slideIndex() const int SlideHelper::slideIndex() const
{ {
return m_slideIndex; return m_slideIndex;
} }
int SlideObject::slideSize() const int SlideHelper::slideSize() const
{ {
return m_slideSize; return m_slideSize;
} }
bool SlideObject::loop() const bool SlideHelper::loop() const
{ {
return m_loop; 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 pointer to the slideObj" << slideObj;
// qDebug() << "Here is the item" << item; // 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()); // QVariantMap serviceItem = serviceItemModel->getItem(item.value("serviceItemId").toInt());
if (item.value("text").toString() != text()) if (item.value("text").toString() != text())
@ -104,7 +104,7 @@ void SlideObject::changeSlide(QVariantMap item, int index)
// emit slideSizeChanged(m_slideSize); // 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()); // QVariantMap serviceItem = serviceItemModel->getItem(nextItem.value("serviceItemId").toInt());
setText(nextItem.value("text").toString()); setText(nextItem.value("text").toString());
@ -129,7 +129,7 @@ bool SlideObject::next(QVariantMap nextItem, SlideModel *slideModel)
return false; return false;
} }
bool SlideObject::previous(QVariantMap prevItem, SlideModel *slideModel) bool SlideHelper::previous(QVariantMap prevItem, SlideModel *slideModel)
{ {
// QVariantMap serviceItem = serviceItemModel->getItem(prevItem.value("serviceItemId").toInt()); // QVariantMap serviceItem = serviceItemModel->getItem(prevItem.value("serviceItemId").toInt());
setText(prevItem.value("text").toString()); setText(prevItem.value("text").toString());
@ -153,10 +153,10 @@ bool SlideObject::previous(QVariantMap prevItem, SlideModel *slideModel)
return false; return false;
} }
bool SlideObject::changeSlideIndex(int index) bool SlideHelper::changeSlideIndex(int index)
{ {
qDebug() << "Starting to change slide 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(); // QStringList text = serviceItemId().value("text").toStringList();
if (index > slideSize() - 1 || index < 0) { if (index > slideSize() - 1 || index < 0) {
qDebug() << "index is invalid: " << index; qDebug() << "index is invalid: " << index;
@ -185,25 +185,25 @@ bool SlideObject::changeSlideIndex(int index)
return false; return false;
} }
void SlideObject::play() void SlideHelper::play()
{ {
m_isPlaying = true; m_isPlaying = true;
emit isPlayingChanged(m_isPlaying); emit isPlayingChanged(m_isPlaying);
} }
void SlideObject::setLoop(bool loop) void SlideHelper::setLoop(bool loop)
{ {
m_loop = loop; m_loop = loop;
emit loopChanged(m_loop); emit loopChanged(m_loop);
} }
void SlideObject::pause() void SlideHelper::pause()
{ {
m_isPlaying = false; m_isPlaying = false;
emit isPlayingChanged(m_isPlaying); emit isPlayingChanged(m_isPlaying);
} }
void SlideObject::playPause() void SlideHelper::playPause()
{ {
m_isPlaying = !m_isPlaying; m_isPlaying = !m_isPlaying;
emit isPlayingChanged(m_isPlaying); emit isPlayingChanged(m_isPlaying);

View file

@ -8,9 +8,9 @@
#include <qqml.h> #include <qqml.h>
#include <QObject> #include <QObject>
#include <qobject.h> #include <qobject.h>
#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_OBJECT
Q_PROPERTY(bool isPlaying READ isPlaying NOTIFY isPlayingChanged) Q_PROPERTY(bool isPlaying READ isPlaying NOTIFY isPlayingChanged)
@ -20,8 +20,8 @@ class SlideObject : public Slide
// QML_ELEMENT // QML_ELEMENT
public: public:
explicit SlideObject(QObject *parent = nullptr); explicit SlideHelper(QObject *parent = nullptr);
SlideObject(const QString &text, const QString &audio, SlideHelper(const QString &text, const QString &audio,
const QString &imageBackground, const QString &videoBackground, const QString &imageBackground, const QString &videoBackground,
const QString &horizontalTextAlignment, const QString &verticalTextAlignment, const QString &horizontalTextAlignment, const QString &verticalTextAlignment,
const QString &font, const int &fontSize, const int &imageCount, const QString &font, const int &fontSize, const int &imageCount,
@ -34,7 +34,7 @@ public:
bool loop() const; bool loop() const;
Q_INVOKABLE void changeSlide(QVariantMap item, int index); 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 play();
Q_INVOKABLE void pause(); Q_INVOKABLE void pause();
Q_INVOKABLE void playPause(); Q_INVOKABLE void playPause();

View file

@ -45,12 +45,12 @@
#include "cpp/imagesqlmodel.h" #include "cpp/imagesqlmodel.h"
#include "cpp/presentationsqlmodel.h" #include "cpp/presentationsqlmodel.h"
#include "cpp/filemanager.h" #include "cpp/filemanager.h"
#include "cpp/slideobject.h" #include "cpp/slidehelper.h"
// RUST // RUST
#include "cxx-qt-gen/service_thing.cxxqt.h" #include "cxx-qt-gen/service_thing.cxxqt.h"
#include "cxx-qt-gen/file_helper.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/slide_model.cxxqt.h"
#include "cxx-qt-gen/service_item_model.cxxqt.h" #include "cxx-qt-gen/service_item_model.cxxqt.h"
#include "cxx-qt-gen/settings.cxxqt.h" #include "cxx-qt-gen/settings.cxxqt.h"
@ -152,7 +152,7 @@ int main(int argc, char *argv[])
// 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<ServiceItemModel> serviceItemC(new ServiceItemModel);
QScopedPointer<SlideObj> slideobject(new SlideObj); QScopedPointer<SlideObject> slideobject(new SlideObject);
Settings *settings = new Settings; Settings *settings = new Settings;
settings->setup(); settings->setup();
@ -232,7 +232,7 @@ int main(int argc, char *argv[])
qmlRegisterType<FileHelper>("org.presenter", 1, 0, "FileHelper"); qmlRegisterType<FileHelper>("org.presenter", 1, 0, "FileHelper");
qmlRegisterType<Ytdl>("org.presenter", 1, 0, "Ytdl"); qmlRegisterType<Ytdl>("org.presenter", 1, 0, "Ytdl");
qmlRegisterType<ServiceThing>("org.presenter", 1, 0, "ServiceThing"); qmlRegisterType<ServiceThing>("org.presenter", 1, 0, "ServiceThing");
qmlRegisterType<SlideObject>("org.presenter", 1, 0, "SlideHelper"); qmlRegisterType<SlideHelper>("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, 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, "PresWindow", PresWindow);
qmlRegisterSingletonInstance("org.presenter", 1, 0, "RSettings", settings); qmlRegisterSingletonInstance("org.presenter", 1, 0, "RSettings", settings);
// qmlRegisterSingletonInstance("org.presenter", 1, 0, "PresWindow", preswin.get()); // 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->rootContext()->setContextProperty("SlideObj", slideobject.get());
PresWindow->setTitle("presentation-window"); PresWindow->setTitle("presentation-window");