diff --git a/src/qml/presenter/Presentation.qml b/src/qml/presenter/Presentation.qml index bf64d3f..124ac1a 100644 --- a/src/qml/presenter/Presentation.qml +++ b/src/qml/presenter/Presentation.qml @@ -231,6 +231,16 @@ FocusScope { NumberAnimation {properties: "x, y"; duration: 100} } + + Connections { + target: SlideMod + function onActiveChanged(index) { + console.log("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"); + console.log(index); + previewSlidesList.currentIndex = index; + previewSlidesList.positionViewAtIndex(index, ListView.Center); + } + } } Component { diff --git a/src/qml/presenter/PreviewSlideListDelegate.qml b/src/qml/presenter/PreviewSlideListDelegate.qml index c698234..7253c45 100644 --- a/src/qml/presenter/PreviewSlideListDelegate.qml +++ b/src/qml/presenter/PreviewSlideListDelegate.qml @@ -85,16 +85,4 @@ Item { propagateComposedEvents: true } - - Connections { - target: SlideMod - function onActiveChanged() { - if (active) { - console.log("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"); - console.log(index); - previewSlidesList.currentIndex = index; - previewSlidesList.positionViewAtIndex(index, ListView.Center); - } - } - } } diff --git a/src/rust/slide_model.rs b/src/rust/slide_model.rs index de6ca42..195df8d 100644 --- a/src/rust/slide_model.rs +++ b/src/rust/slide_model.rs @@ -93,7 +93,9 @@ mod slide_model { bottom_right: &'a QModelIndex, roles: &'a QVector_i32, }, - ActiveChanged, + ActiveChanged { + index: &'a i32, + }, } enum Role { @@ -877,9 +879,10 @@ mod slide_model { ); let mut id = 0; for (i, slide) in slides_iter - .filter(|slide| slide.service_item_id == index) .enumerate() + .filter(|(i, slide)| slide.service_item_id == index) { + debug!(slide_id = i, ?slide); id = i as i32; break; } @@ -928,7 +931,7 @@ mod slide_model { ); // We use this signal generated by our signals enum to tell QML that // the active slide has changed which is used to reposition views. - self.as_mut().emit_active_changed(); + self.as_mut().emit_active_changed(&index); true } else { false