Просмотр исходного кода

Added ability for backend plugins to determine their usability

Modified BackendPlugin.py and StartSliceJob.py to allow plugins to decide when they should be used. The 'usePlugin'
method was added to enable a plugin to return a boolean indicating if it should be used or not, e.q.: start up and
connect to the services.

Contributes to CURA-11031
Jelle Spijker 1 год назад
Родитель
Сommit
45510d04ed
2 измененных файлов с 8 добавлено и 0 удалено
  1. 6 0
      cura/BackendPlugin.py
  2. 2 0
      plugins/CuraEngineBackend/StartSliceJob.py

+ 6 - 0
cura/BackendPlugin.py

@@ -22,6 +22,10 @@ class BackendPlugin(AdditionalSettingDefinitionsAppender, PluginObject):
         self._process = None
         self._is_running = False
         self._supported_slots: List[int] = []
+        self._use_plugin = True
+
+    def usePlugin(self) -> bool:
+        return self._use_plugin
 
     def getSupportedSlots(self) -> List[int]:
         return self._supported_slots
@@ -55,6 +59,8 @@ class BackendPlugin(AdditionalSettingDefinitionsAppender, PluginObject):
 
         :return: True if the plugin process started successfully, False otherwise.
         """
+        if not self.usePlugin():
+            return False
         try:
             # STDIN needs to be None because we provide no input, but communicate via a local socket instead.
             # The NUL device sometimes doesn't exist on some computers.

+ 2 - 0
plugins/CuraEngineBackend/StartSliceJob.py

@@ -303,6 +303,8 @@ class StartSliceJob(Job):
             self._buildExtruderMessage(extruder_stack)
 
         for plugin in CuraApplication.getInstance().getBackendPlugins():
+            if not plugin.usePlugin():
+                continue
             for slot in plugin.getSupportedSlots():
                 # Right now we just send the message for every slot that we support. A single plugin can support
                 # multiple slots