Moved the actual adding of containers by script to initialize

This ensures that when loading scripts (and checking they are valid) we don't start adding unneeded containers
This commit is contained in:
Jaime van Kessel 2018-10-03 15:58:16 +02:00
parent 9986e38dca
commit 2e529452dd
2 changed files with 7 additions and 4 deletions

View file

@ -189,6 +189,7 @@ class PostProcessingPlugin(QObject, Extension):
def addScriptToList(self, key): def addScriptToList(self, key):
Logger.log("d", "Adding script %s to list.", key) Logger.log("d", "Adding script %s to list.", key)
new_script = self._loaded_scripts[key]() new_script = self._loaded_scripts[key]()
new_script.initialize()
self._script_list.append(new_script) self._script_list.append(new_script)
self.setSelectedScriptIndex(len(self._script_list) - 1) self.setSelectedScriptIndex(len(self._script_list) - 1)
self.scriptListChanged.emit() self.scriptListChanged.emit()
@ -220,6 +221,7 @@ class PostProcessingPlugin(QObject, Extension):
Logger.log("e", "Unknown post-processing script {script_name} was encountered in this global stack.".format(script_name = script_name)) Logger.log("e", "Unknown post-processing script {script_name} was encountered in this global stack.".format(script_name = script_name))
continue continue
new_script = self._loaded_scripts[script_name]() new_script = self._loaded_scripts[script_name]()
new_script.initialize()
for setting_key, setting_value in settings.items(): #Put all setting values into the script. for setting_key, setting_value in settings.items(): #Put all setting values into the script.
new_script._instance.setProperty(setting_key, "value", setting_value) new_script._instance.setProperty(setting_key, "value", setting_value)
self._script_list.append(new_script) self._script_list.append(new_script)

View file

@ -26,14 +26,14 @@ class Script:
self._settings = None self._settings = None
self._stack = None self._stack = None
def initialize(self):
setting_data = self.getSettingData() setting_data = self.getSettingData()
self._stack = ContainerStack(stack_id = str(id(self))) self._stack = ContainerStack(stack_id=str(id(self)))
self._stack.setDirty(False) # This stack does not need to be saved. self._stack.setDirty(False) # This stack does not need to be saved.
## Check if the definition of this script already exists. If not, add it to the registry. ## Check if the definition of this script already exists. If not, add it to the registry.
if "key" in setting_data: if "key" in setting_data:
definitions = ContainerRegistry.getInstance().findDefinitionContainers(id = setting_data["key"]) definitions = ContainerRegistry.getInstance().findDefinitionContainers(id=setting_data["key"])
if definitions: if definitions:
# Definition was found # Definition was found
self._definition = definitions[0] self._definition = definitions[0]
@ -48,7 +48,8 @@ class Script:
self._stack.addContainer(self._definition) self._stack.addContainer(self._definition)
self._instance = InstanceContainer(container_id="ScriptInstanceContainer") self._instance = InstanceContainer(container_id="ScriptInstanceContainer")
self._instance.setDefinition(self._definition.getId()) self._instance.setDefinition(self._definition.getId())
self._instance.setMetaDataEntry("setting_version", self._definition.getMetaDataEntry("setting_version", default = 0)) self._instance.setMetaDataEntry("setting_version",
self._definition.getMetaDataEntry("setting_version", default=0))
self._stack.addContainer(self._instance) self._stack.addContainer(self._instance)
self._stack.propertyChanged.connect(self._onPropertyChanged) self._stack.propertyChanged.connect(self._onPropertyChanged)