on xenial help sign in
Fixes to single item in image listview
commit714f640bea31619eb424dfecfc9e9bec05565600 authorAndrea Cimitan <andrea.cimitan@gmail.com> dateWed 4 Mar 2015, 13:24 (12 years ago) parent54d6042
1 file changed+15−8
qml/Dash/Previews/PreviewImageGallery.qml+15−8
qml/Dash/Previews/PreviewImageGallery.qml+15−8
@@ -38,6 +38,8 @@ PreviewWidget {
3838 model: root.widgetData["sources"]
3939 clip: true
4040
41+ onCurrentIndexChanged: overlay.updateInitialItem()
42+
4143 LazyImage {
4244 objectName: "placeholderScreenshot"
4345 anchors {
@@ -65,9 +67,8 @@ PreviewWidget {
6567 id: mouseArea
6668 anchors.fill: parent
6769 onClicked: {
68− overlay.delegateItem.currentIndex = index;
69− overlay.initialX = rootItem.mapFromItem(parent, 0, 0).x;
70− overlay.initialY = rootItem.mapFromItem(parent, 0, 0).y;
70+ previewImageListView.currentIndex = index;
71+ overlay.updateInitialItem();
7172 overlay.show();
7273 }
7374 }
@@ -80,6 +81,13 @@ PreviewWidget {
8081 parent: rootItem
8182 anchors.fill: parent
8283
84+ function updateInitialItem() {
85+ initialX = rootItem.mapFromItem(previewImageListView.currentItem, 0, 0).x;
86+ initialY = rootItem.mapFromItem(previewImageListView.currentItem, 0, 0).y;
87+ initialWidth = previewImageListView.currentItem.width;
88+ initialHeight = previewImageListView.currentItem.height;
89+ }
90+
8391 delegate: ListView {
8492 id: overlayListView
8593 objectName: "overlayListView"
@@ -90,13 +98,12 @@ PreviewWidget {
9098 snapMode: ListView.SnapOneItem
9199 boundsBehavior: Flickable.DragAndOvershootBounds
92100 model: root.widgetData["sources"]
101+ currentIndex: previewImageListView.currentIndex
93102
94103 onCurrentIndexChanged: {
95− previewImageListView.currentIndex = currentIndex;
96− overlay.initialX = rootItem.mapFromItem(previewImageListView.currentItem, 0, 0).x;
97− overlay.initialY = rootItem.mapFromItem(previewImageListView.currentItem, 0, 0).y;
98− overlay.initialWidth = previewImageListView.currentItem.width;
99− overlay.initialHeight = previewImageListView.currentItem.height;
104+ // if the index changed while overlay is visible, it was from user interaction,
105+ // let's update the index of the original listview
106+ if (overlay.visible) previewImageListView.currentIndex = currentIndex;
100107 }
101108
102109 delegate: Image {