From 4296a205a8c9542b98be8ba68901f049ad39a1b9 Mon Sep 17 00:00:00 2001 From: Chris Cochrun Date: Sat, 1 Apr 2023 07:20:46 -0500 Subject: [PATCH] making signal and slots use appropriate signals This makes it so other DataChanged signals don't reset the view as was happening before. --- src/qml/presenter/PreviewSlideListDelegate.qml | 2 +- src/rust/slide_model.rs | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/qml/presenter/PreviewSlideListDelegate.qml b/src/qml/presenter/PreviewSlideListDelegate.qml index 86cc903..2c315e2 100644 --- a/src/qml/presenter/PreviewSlideListDelegate.qml +++ b/src/qml/presenter/PreviewSlideListDelegate.qml @@ -72,7 +72,7 @@ Item { Connections { target: SlideMod - function onDataChanged() { + function onActiveChanged() { if (active) { previewSlidesList.currentIndex = index; previewSlidesList.positionViewAtIndex(index, ListView.Center); diff --git a/src/rust/slide_model.rs b/src/rust/slide_model.rs index 9991112..3d35c41 100644 --- a/src/rust/slide_model.rs +++ b/src/rust/slide_model.rs @@ -655,7 +655,9 @@ mod slide_model { if let Some(slide) = self.as_mut().slides_mut().get_mut(index as usize) { slide.active = true; self.as_mut().emit_data_changed(tl, br, &vector_roles); - // self.as_mut().emit_active_changed(); // This function doesn't work + // 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(); println!("slide is activating {:?}", index); true } else {