diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 7c9f993e21..437323dc2e 100644 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -100,10 +100,12 @@ class CuraApplication(QtApplication): self._platform_activity = False self._scene_boundingbox = AxisAlignedBox() self._job_name = None + self._center_after_select = False self.getMachineManager().activeMachineInstanceChanged.connect(self._onActiveMachineChanged) self.getMachineManager().addMachineRequested.connect(self._onAddMachineRequested) self.getController().getScene().sceneChanged.connect(self.updatePlatformActivity) + self.getController().toolOperationStopped.connect(self._onToolOperationStopped) Resources.addType(self.ResourceTypes.QmlFiles, "qml") Resources.addType(self.ResourceTypes.Firmware, "firmware") @@ -231,9 +233,7 @@ class CuraApplication(QtApplication): else: self.getController().setActiveTool("TranslateTool") if Preferences.getInstance().getValue("view/center_on_select"): - self._camera_animation.setStart(self.getController().getTool("CameraTool").getOrigin()) - self._camera_animation.setTarget(Selection.getSelectedObject(0).getWorldPosition()) - self._camera_animation.start() + self._center_after_select = True else: if self.getController().getActiveTool(): self._previous_active_tool = self.getController().getActiveTool().getPluginId() @@ -241,6 +241,13 @@ class CuraApplication(QtApplication): else: self._previous_active_tool = None + def _onToolOperationStopped(self, event): + if self._center_after_select: + self._center_after_select = False + self._camera_animation.setStart(self.getController().getTool("CameraTool").getOrigin()) + self._camera_animation.setTarget(Selection.getSelectedObject(0).getWorldPosition()) + self._camera_animation.start() + requestAddPrinter = pyqtSignal() activityChanged = pyqtSignal() sceneBoundingBoxChanged = pyqtSignal()