From 91651a34d48ac49494692d947fcf20ed3298937a Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 22 Jul 2019 10:24:04 +0200 Subject: [PATCH 1/3] Fix model binding for objectSelector --- resources/qml/ObjectSelector.qml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/resources/qml/ObjectSelector.qml b/resources/qml/ObjectSelector.qml index f2e5b6e3a7..26a63da71b 100644 --- a/resources/qml/ObjectSelector.qml +++ b/resources/qml/ObjectSelector.qml @@ -116,10 +116,15 @@ Item delegate: ObjectItemButton { + id: modelButton + Binding + { + target: modelButton + property: "checked" + value: model.selected + } text: model.name width: listView.width - - checked: model.selected } } } From c3166703b463fdd4999f05dafd4b5c466ed9d792 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 22 Jul 2019 10:27:19 +0200 Subject: [PATCH 2/3] Also connect the objectsModel to the selectionChanged signal --- cura/UI/ObjectsModel.py | 1 + 1 file changed, 1 insertion(+) diff --git a/cura/UI/ObjectsModel.py b/cura/UI/ObjectsModel.py index f3983e7965..5526b41098 100644 --- a/cura/UI/ObjectsModel.py +++ b/cura/UI/ObjectsModel.py @@ -50,6 +50,7 @@ class ObjectsModel(ListModel): Application.getInstance().getController().getScene().sceneChanged.connect(self._updateSceneDelayed) Application.getInstance().getPreferences().preferenceChanged.connect(self._updateDelayed) + Selection.selectionChanged.connect(self._updateDelayed) self._update_timer = QTimer() self._update_timer.setInterval(200) From 678621469f51ac6014378cfbe3d9f6590f6d25cf Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 22 Jul 2019 10:31:21 +0200 Subject: [PATCH 3/3] Fix weird update jitter in objectSelector after multiplying models --- resources/qml/ObjectSelector.qml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/resources/qml/ObjectSelector.qml b/resources/qml/ObjectSelector.qml index 26a63da71b..9bf0e18809 100644 --- a/resources/qml/ObjectSelector.qml +++ b/resources/qml/ObjectSelector.qml @@ -105,7 +105,12 @@ Item // We use an extra property here, since we only want to to be informed about the content size changes. onContentHeightChanged: { - scroll.height = Math.min(contentHeight, maximumHeight) + scroll.topPadding + scroll.bottomPadding + // It can sometimes happen that (due to animations / updates) the contentHeight is -1. + // This can cause a bunch of updates to trigger oneother, leading to a weird loop. + if(contentHeight >= 0) + { + scroll.height = Math.min(contentHeight, maximumHeight) + scroll.topPadding + scroll.bottomPadding + } } Component.onCompleted: