From 84f89fb201abf53291a689c61c4b32e0561a9cb1 Mon Sep 17 00:00:00 2001 From: Chris Cochrun Date: Tue, 17 Jan 2023 06:25:09 -0600 Subject: [PATCH] adding changeSlideAndIndex and enabling that on previewSlidesList --- src/cpp/slide.cpp | 31 +++++++++++++++++++ src/cpp/slide.h | 1 + .../presenter/PreviewSlideListDelegate.qml | 13 +++++++- 3 files changed, 44 insertions(+), 1 deletion(-) diff --git a/src/cpp/slide.cpp b/src/cpp/slide.cpp index 772c393..6ddd322 100644 --- a/src/cpp/slide.cpp +++ b/src/cpp/slide.cpp @@ -324,6 +324,37 @@ bool Slide::previous(QVariantMap prevItem) return false; } +bool Slide::changeSlideIndex(int index) +{ + qDebug() << "Starting to change slide index."; + qDebug() << "Slide Index: " << m_slideIndex << " Slide Size: " << m_slideSize; + QStringList text = m_serviceItem.value("text").toStringList(); + if (index > m_slideSize || index < 0) { + qDebug() << "index is invalid: " << index; + return false; + } + + // since the string list is 0 indexed m_slideIndex actually + // maps to the next item. So the prev text is minus 2 + if (m_type == "song") { + int textIndex = index; + qDebug() << textIndex; + qDebug() << text[textIndex]; + setText(text[textIndex]); + m_slideIndex = index; + return true; + } + + if (m_type == "presentation") { + qDebug() << "prev slide index: " << m_pdfIndex; + setPdfIndex(index); + qDebug() << "new slide index: " << m_pdfIndex; + m_slideIndex = index; + return true; + } + return false; +} + void Slide::play() { m_isPlaying = true; diff --git a/src/cpp/slide.h b/src/cpp/slide.h index 62bae82..cd1fc77 100644 --- a/src/cpp/slide.h +++ b/src/cpp/slide.h @@ -70,6 +70,7 @@ public: Q_INVOKABLE void playPause(); Q_INVOKABLE bool next(QVariantMap nextItem); Q_INVOKABLE bool previous(QVariantMap prevItem); + Q_INVOKABLE bool changeSlideIndex(int index); signals: Q_INVOKABLE void textChanged(QString text); diff --git a/src/qml/presenter/PreviewSlideListDelegate.qml b/src/qml/presenter/PreviewSlideListDelegate.qml index fe6594f..44e0444 100644 --- a/src/qml/presenter/PreviewSlideListDelegate.qml +++ b/src/qml/presenter/PreviewSlideListDelegate.qml @@ -69,7 +69,7 @@ Item { id: innerMouse anchors.fill: parent hoverEnabled: true - onClicked: changeServiceItem(outerModelData.index) + onClicked: changeSlideAndIndex(outerModelData, index) cursorShape: Qt.PointingHandCursor } } @@ -103,4 +103,15 @@ Item { previewSlidesList.positionViewAtIndex(index, ListView.Center) } } + + function changeSlideAndIndex(serviceItem, index) { + // TODO + console.log("Item: " + serviceItem.index + " is " + serviceItem.active); + if (!serviceItem.active) + changeServiceItem(serviceItem.index) + console.log("Slide Index is: " + index); + if (index === 0) + return; + SlideObject.changeSlideIndex(index); + } }