trying to add slide class as master controller for the slide

This commit is contained in:
Chris Cochrun 2022-07-11 09:36:18 -05:00
parent 99afdd0b0f
commit 12a5b0bcf1
8 changed files with 220 additions and 4 deletions

View file

@ -6,6 +6,7 @@ target_sources(presenter
songsqlmodel.cpp songsqlmodel.h
serviceitemmodel.cpp serviceitemmodel.h
serviceitem.cpp serviceitem.h
slide.cpp slide.h
videosqlmodel.cpp videosqlmodel.h
imagesqlmodel.cpp imagesqlmodel.h
mpv/mpvobject.h mpv/mpvobject.cpp

View file

@ -38,6 +38,7 @@
#include "songsqlmodel.h"
#include "videosqlmodel.h"
#include "imagesqlmodel.h"
#include "slide.h"
static void connectToDatabase() {
// let's setup our sql database
@ -92,6 +93,10 @@ int main(int argc, char *argv[])
qDebug() << QQuickStyle::availableStyles();
qDebug() << QIcon::themeName();
//Need to instantiate our slide
Slide slide("", "", "", "", "", "", "", 0);
// QScopedPointer<Slide> slide("", "", "", "", "", "", "", 0);
// apparently mpv needs this class set
// let's register mpv as well
std::setlocale(LC_NUMERIC, "C");
@ -102,6 +107,7 @@ int main(int argc, char *argv[])
qmlRegisterType<VideoSqlModel>("org.presenter", 1, 0, "VideoSqlModel");
qmlRegisterType<ImageSqlModel>("org.presenter", 1, 0, "ImageSqlModel");
qmlRegisterType<ServiceItemModel>("org.presenter", 1, 0, "ServiceItemModel");
qmlRegisterSingletonInstance("org.presenter", 1, 0, "SlideObject", &slide);
connectToDatabase();

View file

@ -122,6 +122,9 @@ Controls.Page {
const item = serviceItemModel.getItem(index);
print("index grabbed: " + index);
slideObject.setImageBackground("/home/chris/Pictures/RoyalKing.png");
print("The slides backgorund is: " + slideObject.imageBackground);
presentation.stopVideo()
presentation.itemType = item.type;
print("Time to start changing");

View file

@ -6,6 +6,7 @@ import QtQuick.Layouts 1.2
/* import QtAudioEngine 1.15 */
import org.kde.kirigami 2.13 as Kirigami
import "./" as Presenter
import org.presenter 1.0
Item {
id: root
@ -85,7 +86,7 @@ Item {
Layout.alignment: Qt.AlignCenter
textSize: width / 15
itemType: root.itemType
imageSource: imagebackground
imageSource: SlideObject.imageBackground
videoSource: vidbackground
preview: true
}
@ -121,6 +122,7 @@ Item {
function nextSlideAction() {
print(textIndex);
print("YIPPEE KAYAYYYY!");
if (itemType === "song") {
if (textIndex === 0) {
previewSlide.text = root.text[textIndex];

View file

@ -20,7 +20,7 @@ Item {
property url imageSource: imageBackground
property url videoSource: videoBackground
property string chosenFont: "Quicksand"
property var text: "This is demo text"
property string text: "This is demo text"
property color backgroundColor
property var hTextAlignment: Text.AlignHCenter
property var vTextAlignment: Text.AlignVCenter

View file

@ -14,14 +14,16 @@ ServiceItem::ServiceItem(const QString &name, const QString &type, QObject *pare
ServiceItem::ServiceItem(const QString &name, const QString &type, const QString &background,
const QString &backgroundType, QObject *parent)
: QObject(parent),m_name(name),m_type(type),m_background(background),m_backgroundType(backgroundType)
: QObject(parent),m_name(name),m_type(type),m_background(background),
m_backgroundType(backgroundType)
{
}
ServiceItem::ServiceItem(const QString &name, const QString &type, const QString &background,
const QString &backgroundType, const QStringList &text, QObject *parent)
: QObject(parent),m_name(name),m_type(type),m_background(background),m_backgroundType(backgroundType),m_text(text)
: QObject(parent),m_name(name),m_type(type),m_background(background),
m_backgroundType(backgroundType),m_text(text)
{
}

131
src/slide.cpp Normal file
View file

@ -0,0 +1,131 @@
#include "slide.h"
#include <QDebug>
Slide::Slide(QObject *parent)
: QObject{parent}
{
qDebug() << "Initializing slide";
}
Slide::Slide(const QString &text, const QString &audio, const QString &imageBackground,
const QString &videoBackground, const QString &horizontalTextAlignment,
const QString &verticalTextAlignment, const QString &font,
const int &fontSize, QObject *parent)
: QObject(parent),m_text(text),m_audio(audio),m_imageBackground(imageBackground),
m_videoBackground(videoBackground),m_verticalTextAlignment(verticalTextAlignment),
m_horizontalTextAlignment(horizontalTextAlignment),m_font(font),m_fontSize(fontSize)
{
qDebug() << "Initializing slide with defaults";
}
QString Slide::text() const {
return m_text;
}
QString Slide::audio() const {
return m_audio;
}
QString Slide::imageBackground() const
{
return m_imageBackground;
}
QString Slide::videoBackground() const
{
return m_videoBackground;
}
QString Slide::horizontalTextAlignment() const
{
return m_horizontalTextAlignment;
}
QString Slide::verticalTextAlignment() const
{
return m_verticalTextAlignment;
}
QString Slide::font() const
{
return m_font;
}
int Slide::fontSize() const
{
return m_fontSize;
}
void Slide::setText(QString text)
{
if (m_text == text)
return;
m_text = text;
emit textChanged(m_text);
}
void Slide::setAudio(QString audio)
{
if (m_audio == audio)
return;
m_audio = audio;
emit audioChanged(m_audio);
}
void Slide::setImageBackground(QString imageBackground)
{
if (m_imageBackground == imageBackground)
return;
qDebug() << "changing image background to: " << imageBackground;
m_imageBackground = imageBackground;
emit imageBackgroundChanged(m_imageBackground);
}
void Slide::setVideoBackground(QString videoBackground)
{
if (m_videoBackground == videoBackground)
return;
m_videoBackground = videoBackground;
emit videoBackgroundChanged(m_videoBackground);
}
void Slide::setHorizontalTextAlignment(QString horizontalTextAlignment)
{
if (m_horizontalTextAlignment == horizontalTextAlignment)
return;
m_horizontalTextAlignment = horizontalTextAlignment;
emit horizontalTextAlignmentChanged(m_horizontalTextAlignment);
}
void Slide::setVerticalTextAlignment(QString verticalTextAlignment)
{
if (m_verticalTextAlignment == verticalTextAlignment)
return;
m_verticalTextAlignment = verticalTextAlignment;
emit verticalTextAlignmentChanged(m_verticalTextAlignment);
}
void Slide::setFont(QString font)
{
if (m_font == font)
return;
m_font = font;
emit fontChanged(m_font);
}
void Slide::setFontSize(int fontSize)
{
if (m_fontSize == fontSize)
return;
m_fontSize = fontSize;
emit fontSizeChanged(m_fontSize);
}

71
src/slide.h Normal file
View file

@ -0,0 +1,71 @@
#ifndef SLIDE_H
#define SLIDE_H
#include <qobjectdefs.h>
#include <qqml.h>
#include <QObject>
#include <qobject.h>
class Slide : public QObject
{
Q_OBJECT
Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged)
Q_PROPERTY(QString audio READ audio WRITE setAudio NOTIFY audioChanged)
Q_PROPERTY(QString imageBackground READ imageBackground WRITE setImageBackground NOTIFY imageBackgroundChanged)
Q_PROPERTY(QString videoBackground READ videoBackground WRITE setVideoBackground NOTIFY videoBackgroundChanged)
Q_PROPERTY(QString horizontalTextAlignment READ horizontalTextAlignment WRITE setHorizontalTextAlignment NOTIFY horizontalTextAlignmentChanged)
Q_PROPERTY(QString verticalTextAlignment READ verticalTextAlignment WRITE setVerticalTextAlignment NOTIFY verticalTextAlignmentChanged)
Q_PROPERTY(QString font READ font WRITE setFont NOTIFY fontChanged)
Q_PROPERTY(int fontSize READ fontSize WRITE setFontSize NOTIFY fontSizeChanged)
QML_ELEMENT
public:
explicit Slide(QObject *parent = nullptr);
Slide(const QString &text, const QString &audio, const QString &imageBackground, const QString &videoBackground,
const QString &horizontalTextAlignment, const QString &verticalTextAlignment,
const QString &font, const int &fontSize, QObject * parent = nullptr);
QString text() const;
QString audio() const;
QString imageBackground() const;
QString videoBackground() const;
QString horizontalTextAlignment() const;
QString verticalTextAlignment() const;
QString font() const;
int fontSize() const;
Q_INVOKABLE void setText(QString text);
Q_INVOKABLE void setAudio(QString audio);
Q_INVOKABLE void setImageBackground(QString imageBackground);
Q_INVOKABLE void setVideoBackground(QString videoBackground);
Q_INVOKABLE void setHorizontalTextAlignment(QString horizontalTextAlignment);
Q_INVOKABLE void setVerticalTextAlignment(QString verticalTextAlignment);
Q_INVOKABLE void setFont(QString font);
Q_INVOKABLE void setFontSize(int fontSize);
// Q_INVOKABLE void changeSlide(int index);
// Q_INVOKABLE void nextSlide();
signals:
Q_INVOKABLE void textChanged(QString text);
Q_INVOKABLE void audioChanged(QString audio);
Q_INVOKABLE void imageBackgroundChanged(QString imageBackground);
Q_INVOKABLE void videoBackgroundChanged(QString videoBackground);
Q_INVOKABLE void horizontalTextAlignmentChanged(QString horizontalTextAlignment);
Q_INVOKABLE void verticalTextAlignmentChanged(QString verticalTextAlignment);
Q_INVOKABLE void fontChanged(QString font);
Q_INVOKABLE void fontSizeChanged(int fontSize);
private:
int m_id;
QString m_text;
QString m_audio;
QString m_imageBackground;
QString m_videoBackground;
QString m_horizontalTextAlignment;
QString m_verticalTextAlignment;
QString m_font;
int m_fontSize;
};
#endif //SLIDE_H