|
@@ -0,0 +1,38 @@
|
|
|
+# Copyright (c) 2018 Ultimaker B.V.
|
|
|
+# Cura is released under the terms of the LGPLv3 or higher.
|
|
|
+
|
|
|
+from PyQt5.QtCore import QTimer
|
|
|
+from cura.Scene.CuraSceneNode import CuraSceneNode
|
|
|
+
|
|
|
+from UM.Application import Application
|
|
|
+from UM.Extension import Extension
|
|
|
+from UM.Logger import Logger
|
|
|
+
|
|
|
+
|
|
|
+class ModelChecker(Extension):
|
|
|
+ def __init__(self):
|
|
|
+ super().__init__()
|
|
|
+
|
|
|
+ self._update_timer = QTimer()
|
|
|
+ self._update_timer.setInterval(2000)
|
|
|
+ self._update_timer.setSingleShot(True)
|
|
|
+ self._update_timer.timeout.connect(self.checkObjects)
|
|
|
+
|
|
|
+ self._nodes_to_check = set()
|
|
|
+
|
|
|
+ ## Reacting to an event. ##
|
|
|
+ Application.getInstance().mainWindowChanged.connect(self.logMessage) #When the main window is created, log a message.
|
|
|
+ Application.getInstance().getController().getScene().sceneChanged.connect(self._onSceneChanged)
|
|
|
+
|
|
|
+ ## Adds a message to the log, as an example of how to listen to events.
|
|
|
+ def logMessage(self):
|
|
|
+ Logger.log("i", "This is an example log message. yeaaa")
|
|
|
+
|
|
|
+ def checkObjects(self):
|
|
|
+ Logger.log("d", "############# checking....")
|
|
|
+
|
|
|
+ def _onSceneChanged(self, source):
|
|
|
+ if isinstance(source, CuraSceneNode) and source.callDecoration("isSliceable"):
|
|
|
+ Logger.log("d", "triggurrrr")
|
|
|
+ self._nodes_to_check.add(source)
|
|
|
+ self._update_timer.start()
|