diff --git a/src/qml/presenter/Presentation.qml b/src/qml/presenter/Presentation.qml index a85b0a9..00bcd8f 100644 --- a/src/qml/presenter/Presentation.qml +++ b/src/qml/presenter/Presentation.qml @@ -158,30 +158,41 @@ Item { } function nextSlideAction() { - print(textIndex); - if (itemType === "song") { - if (textIndex === 0) { - SlideObject.setText(root.text[textIndex]); - print(root.text[textIndex]); - textIndex++; - } else if (textIndex < root.text.length) { - SlideObject.setText(root.text[textIndex]); - print(root.text[textIndex]); - textIndex++; - } else { - print("Next slide time"); - textIndex = 0; - clearText(); - nextSlide(); - } - } else if (itemType === "video") { - /* clearText(); */ - nextSlide(); - } - else if (itemType === "image") { - /* clearText(); */ - nextSlide(); + const nextServiceItemIndex = currentServiceItem + 1; + const nextItem = serviceItemModel.getItem(nextServiceItemIndex); + print("currentServiceItem " + currentServiceItem); + print("nextServiceItem " + nextServiceItemIndex); + print(nextItem.name); + const changed = SlideObject.next(nextItem); + print(changed); + if (changed) { + currentServiceItem++; + loadVideo(); } + /* print(textIndex); */ + /* if (itemType === "song") { */ + /* if (textIndex === 0) { */ + /* SlideObject.setText(root.text[textIndex]); */ + /* print(root.text[textIndex]); */ + /* textIndex++; */ + /* } else if (textIndex < root.text.length) { */ + /* SlideObject.setText(root.text[textIndex]); */ + /* print(root.text[textIndex]); */ + /* textIndex++; */ + /* } else { */ + /* print("Next slide time"); */ + /* textIndex = 0; */ + /* clearText(); */ + /* nextSlide(); */ + /* } */ + /* } else if (itemType === "video") { */ + /* /\* clearText(); *\/ */ + /* nextSlide(); */ + /* } */ + /* else if (itemType === "image") { */ + /* /\* clearText(); *\/ */ + /* nextSlide(); */ + /* } */ } function nextSlide() { diff --git a/src/slide.cpp b/src/slide.cpp index 4cb4568..fe11372 100644 --- a/src/slide.cpp +++ b/src/slide.cpp @@ -175,20 +175,29 @@ void Slide::changeSlide(QVariantMap item) } QStringList text = m_serviceItem.value("text").toStringList(); - if (text.isEmpty()) + if (text.isEmpty()) { setText(""); + m_slideSize = 1; + m_slideIndex = 1; + } else { + qDebug() << "TEXT LENGTH: " << text.length(); + m_slideSize = text.length(); + m_slideIndex = 1; setText(text[0]); } qDebug() << "MAP: " << m_serviceItem.value("text"); } -void Slide::next() +bool Slide::next(QVariantMap nextItem) { + qDebug() << "Starting to go to next item."; + qDebug() << "Slide Index: " << m_slideIndex << " Slide Size: " << m_slideSize; + QStringList text = m_serviceItem.value("text").toStringList(); if (m_slideIndex == m_slideSize) { - changeSlide(); - return; + changeSlide(nextItem); + return true; } if (m_type != "song") { @@ -197,4 +206,15 @@ void Slide::next() // changeSlide(item); } + if (m_type == "song") { + // since the string list is 0 indexed m_slideIndex actually + // maps to the next item. + int nextTextIndex = m_slideIndex; + qDebug() << nextTextIndex; + qDebug() << text[nextTextIndex]; + setText(text[nextTextIndex]); + m_slideIndex++; + } + + return false; } diff --git a/src/slide.h b/src/slide.h index 411ab40..0a6c71e 100644 --- a/src/slide.h +++ b/src/slide.h @@ -52,7 +52,7 @@ public: Q_INVOKABLE void setFontSize(int fontSize); Q_INVOKABLE void changeSlide(QVariantMap item); - Q_INVOKABLE void next(); + Q_INVOKABLE bool next(QVariantMap nextItem); signals: Q_INVOKABLE void textChanged(QString text);