From 198ea3c74ff42d5430acd7e54eba114e972313e4 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 21 Feb 2019 21:09:49 +0100 Subject: Ensure the model checker doesn't update a gazillion times on multiply CURA-6237 --- plugins/ModelChecker/ModelChecker.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'plugins/ModelChecker') diff --git a/plugins/ModelChecker/ModelChecker.py b/plugins/ModelChecker/ModelChecker.py index 1913f39d96..0619c95d67 100644 --- a/plugins/ModelChecker/ModelChecker.py +++ b/plugins/ModelChecker/ModelChecker.py @@ -3,7 +3,7 @@ import os -from PyQt5.QtCore import QObject, pyqtSlot, pyqtSignal, pyqtProperty +from PyQt5.QtCore import QObject, pyqtSlot, pyqtSignal, pyqtProperty, QTimer from UM.Application import Application from UM.Extension import Extension @@ -30,18 +30,22 @@ class ModelChecker(QObject, Extension): lifetime = 0, title = catalog.i18nc("@info:title", "3D Model Assistant")) + self._change_timer = QTimer() + self._change_timer.setInterval(200) + self._change_timer.setSingleShot(True) + self._change_timer.timeout.connect(self.onChanged) + Application.getInstance().initializationFinished.connect(self._pluginsInitialized) Application.getInstance().getController().getScene().sceneChanged.connect(self._onChanged) Application.getInstance().globalContainerStackChanged.connect(self._onChanged) - ## Pass-through to allow UM.Signal to connect with a pyqtSignal. def _onChanged(self, *args, **kwargs): # Ignore camera updates. if len(args) == 0: - self.onChanged.emit() + self._change_timer.start() return if not isinstance(args[0], Camera): - self.onChanged.emit() + self._change_timer.start() ## Called when plug-ins are initialized. # -- cgit v1.2.3