tl;dr : What is the purpose of settings
property.
In search_add operator, execute method
there is this code
if item:
print(item.settings)
# apply settings from the node item
for setting in item.settings.items():
ops = self.settings.add()
ops.name = setting[0]
ops.value = setting[1]
self.create_node(context, item.nodetype)
and create_node
method
def create_node(self, context, node_type=None):
space = context.space_data
tree = space.edit_tree
if node_type is None:
node_type = self.type
# select only the new node
for n in tree.nodes:
n.select = False
node = tree.nodes.new(type=node_type)
for setting in self.settings:
# XXX catch exceptions here?
value = eval(setting.value)
try:
setattr(node, setting.name, value)
except AttributeError as e:
self.report(
{'ERROR_INVALID_INPUT'},
"Node has no attribute " + setting.name)
print(str(e))
# Continue despite invalid attribute
node.select = True
tree.nodes.active = node
node.location = space.cursor_location
return node
I tried to print item.settings but it is empty dictionary.
From the looks of it looks like setting property is to set the different properties of node after it had been added, like setting the math operation to something other than add. but while executing add_search in blender code
for setting in item.settings.items():
ops = self.settings.add()
ops.name = setting[0]
ops.value = setting[1]
never gets executed. I might be wrong here beacuase of my lack of knowledge.
So, What is the purpose of for loop and setting properties?