adding a playpause ability in videos
This commit is contained in:
parent
8b7cd23f8b
commit
9a180f7df0
5 changed files with 73 additions and 6 deletions
|
@ -119,7 +119,7 @@ Item {
|
|||
visible: itemType === "video";
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onPressed: print("pressed play/plause");
|
||||
onPressed: SlideObject.playPause();
|
||||
cursorShape: Qt.PointingHandCursor
|
||||
}
|
||||
}
|
||||
|
@ -149,6 +149,22 @@ Item {
|
|||
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: SlideObject
|
||||
onVideoBackgroundChanged: {
|
||||
loadVideo();
|
||||
}
|
||||
onIsPlayingChanged: {
|
||||
if(SlideObject.isPlaying)
|
||||
previewSlide.playVideo();
|
||||
pauseVideo();
|
||||
}
|
||||
}
|
||||
|
||||
function pauseVideo() {
|
||||
previewSlide.pauseVideo();
|
||||
}
|
||||
|
||||
function loadVideo() {
|
||||
previewSlide.loadVideo();
|
||||
}
|
||||
|
|
|
@ -14,7 +14,7 @@ Window {
|
|||
width: maximumWidth
|
||||
screen: presentationScreen
|
||||
/* flags: Qt.X11BypassWindowManagerHint */
|
||||
onClosing: presenting = false
|
||||
onClosing: close()
|
||||
|
||||
Component.onCompleted: {
|
||||
presentationWindow.showFullScreen();
|
||||
|
@ -34,6 +34,11 @@ Window {
|
|||
onVideoBackgroundChanged: {
|
||||
loadVideo();
|
||||
}
|
||||
onIsPlayingChanged: {
|
||||
if(SlideObject.isPlaying)
|
||||
presentationSlide.playVideo();
|
||||
pauseVideo();
|
||||
}
|
||||
}
|
||||
|
||||
function loadVideo() {
|
||||
|
@ -43,4 +48,14 @@ Window {
|
|||
function stopVideo() {
|
||||
presentationSlide.stopVideo()
|
||||
}
|
||||
|
||||
function pauseVideo() {
|
||||
presentationSlide.pauseVideo();
|
||||
}
|
||||
|
||||
function close() {
|
||||
presentationSlide.stopVideo();
|
||||
SlideObject.pause();
|
||||
presenting = false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -45,7 +45,7 @@ Item {
|
|||
|
||||
MpvObject {
|
||||
id: mpv
|
||||
objectName: "mpv"
|
||||
/* objectName: "mpv" */
|
||||
anchors.fill: parent
|
||||
useHwdec: true
|
||||
enableAudio: !preview
|
||||
|
@ -178,4 +178,8 @@ Item {
|
|||
function playPauseVideo() {
|
||||
mpv.playPause();
|
||||
}
|
||||
|
||||
function playVideo() {
|
||||
mpv.play();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,10 +12,12 @@ Slide::Slide(QObject *parent)
|
|||
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, const QString &type, QObject *parent)
|
||||
const int &fontSize, const bool &isPlaying,
|
||||
const QString &type, 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),m_type(type)
|
||||
m_horizontalTextAlignment(horizontalTextAlignment),m_font(font),
|
||||
m_fontSize(fontSize),m_isPlaying(isPlaying),m_type(type)
|
||||
{
|
||||
qDebug() << "Initializing slide with defaults";
|
||||
}
|
||||
|
@ -66,6 +68,11 @@ int Slide::fontSize() const
|
|||
return m_fontSize;
|
||||
}
|
||||
|
||||
bool Slide::isPlaying() const
|
||||
{
|
||||
return m_isPlaying;
|
||||
}
|
||||
|
||||
void Slide::setText(QString text)
|
||||
{
|
||||
if (m_text == text)
|
||||
|
@ -231,3 +238,21 @@ bool Slide::previous(QVariantMap prevItem)
|
|||
|
||||
return false;
|
||||
}
|
||||
|
||||
void Slide::play()
|
||||
{
|
||||
m_isPlaying = true;
|
||||
emit isPlayingChanged(m_isPlaying);
|
||||
}
|
||||
|
||||
void Slide::pause()
|
||||
{
|
||||
m_isPlaying = false;
|
||||
emit isPlayingChanged(m_isPlaying);
|
||||
}
|
||||
|
||||
void Slide::playPause()
|
||||
{
|
||||
m_isPlaying = !m_isPlaying;
|
||||
emit isPlayingChanged(m_isPlaying);
|
||||
}
|
||||
|
|
|
@ -21,13 +21,14 @@ class Slide : public QObject
|
|||
WRITE setVerticalTextAlignment NOTIFY verticalTextAlignmentChanged)
|
||||
Q_PROPERTY(QString font READ font WRITE setFont NOTIFY fontChanged)
|
||||
Q_PROPERTY(int fontSize READ fontSize WRITE setFontSize NOTIFY fontSizeChanged)
|
||||
Q_PROPERTY(bool isPlaying READ isPlaying NOTIFY isPlayingChanged)
|
||||
// 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, const QString &type, QObject * parent = nullptr);
|
||||
const QString &font, const int &fontSize, const bool &isPlaying, const QString &type, QObject * parent = nullptr);
|
||||
|
||||
QString text() const;
|
||||
QString type() const;
|
||||
|
@ -39,6 +40,7 @@ public:
|
|||
QString verticalTextAlignment() const;
|
||||
QString font() const;
|
||||
int fontSize() const;
|
||||
bool isPlaying() const;
|
||||
|
||||
Q_INVOKABLE void setText(QString text);
|
||||
Q_INVOKABLE void setType(QString type);
|
||||
|
@ -52,6 +54,9 @@ public:
|
|||
Q_INVOKABLE void setFontSize(int fontSize);
|
||||
|
||||
Q_INVOKABLE void changeSlide(QVariantMap item);
|
||||
Q_INVOKABLE void play();
|
||||
Q_INVOKABLE void pause();
|
||||
Q_INVOKABLE void playPause();
|
||||
Q_INVOKABLE bool next(QVariantMap nextItem);
|
||||
Q_INVOKABLE bool previous(QVariantMap prevItem);
|
||||
|
||||
|
@ -66,6 +71,7 @@ signals:
|
|||
Q_INVOKABLE void verticalTextAlignmentChanged(QString verticalTextAlignment);
|
||||
Q_INVOKABLE void fontChanged(QString font);
|
||||
Q_INVOKABLE void fontSizeChanged(int fontSize);
|
||||
Q_INVOKABLE void isPlayingChanged(bool isPlaying);
|
||||
|
||||
private:
|
||||
int m_id;
|
||||
|
@ -79,6 +85,7 @@ private:
|
|||
QString m_verticalTextAlignment;
|
||||
QString m_font;
|
||||
int m_fontSize;
|
||||
bool m_isPlaying;
|
||||
|
||||
int m_slideIndex;
|
||||
int m_slideSize;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue