def sv_post_load(scene): """ Upgrade nodes, apply preferences and do an update. THe update order is next: 1. pre_load handler 2. update methods of trees in a file 3. post_load handler post_load handler is also called when Blender is first ran The method should remove throttling trees made in pre_load event, initialize Sverchok parts which are required by loaded tree and update all Sverchok trees """ from sverchok import node_tree, settings # ensure current nodeview view scale / location parameters reflect users' system settings node_tree.SverchCustomTree.update_gl_scale_info(None, "sv_post_load") # register and mark old and dependent nodes with catch_log_error(): if any(not n.is_registered_node_type() for ng in BlTrees().sv_trees for n in ng.nodes): old_nodes.register_all() old_nodes.mark_all() dummy_nodes.register_all() dummy_nodes.mark_all() with catch_log_error(): settings.apply_theme_if_necessary() # release all trees and update them set_first_run(False) build_update_list() process_tree()
def sv_pre_load(scene): clear_system_cache() sv_clean(scene) import sverchok.core.group_handlers as gh gh.NodesStatuses.reset_data() gh.ContextTrees.reset_data() set_first_run(True)
def reload_menu(): menu, node_count, original_categories = make_categories() if hasattr(bpy.types, "SV_PT_NodesTPanel"): unregister_node_panels() unregister_node_add_operators() register_node_panels("SVERCHOK", menu) register_node_add_operators() build_help_remap(original_categories) set_first_run(False) print("Reload complete, press update")
def reload_menu(): menu, node_count, original_categories = make_categories() if 'SVERCHOK' in nodeitems_utils._node_categories: unregister_node_panels() nodeitems_utils.unregister_node_categories("SVERCHOK") unregister_node_add_operators() nodeitems_utils.register_node_categories("SVERCHOK", menu) register_node_panels("SVERCHOK", menu) register_node_add_operators() build_help_remap(original_categories) set_first_run(False) print("Reload complete, press update")
def sv_post_load(scene): """ Upgrade nodes, apply preferences and do an update. """ set_first_run(False) # ensure current nodeview view scale / location parameters reflect users' system settings from sverchok import node_tree node_tree.SverchCustomTreeNode.get_and_set_gl_scale_info( None, "sv_post_load") for monad in (ng for ng in bpy.data.node_groups if ng.bl_idname == 'SverchGroupTreeType'): if monad.input_node and monad.output_node: monad.update_cls() sv_types = {'SverchCustomTreeType', 'SverchGroupTreeType'} sv_trees = list(ng for ng in bpy.data.node_groups if ng.bl_idname in sv_types and ng.nodes) for ng in sv_trees: ng.freeze(True) ng.sv_process = False try: old_nodes.load_old(ng) except: traceback.print_exc() try: dummy_nodes.load_dummy(ng) except: traceback.print_exc() ng.freeze(True) try: upgrade_nodes.upgrade_nodes(ng) except: traceback.print_exc() ng.unfreeze(True) ng.sv_process = True addon_name = data_structure.SVERCHOK_NAME addon = bpy.context.preferences.addons.get(addon_name) if addon and hasattr(addon, "preferences"): pref = addon.preferences if pref.apply_theme_on_open: color_def.apply_theme() for ng in sv_trees: if ng.bl_idname == 'SverchCustomTreeType' and ng.nodes: ng.update()
def sv_pre_load(scene): """ This method is called whenever new file is opening THe update order is next: 1. pre_load handler 2. update methods of trees in a file 3. post_load handler Because Sverchok does not fully initialize itself during its initialization it requires throttling of update method of loaded trees """ clear_system_cache() sv_clean(scene) import sverchok.core.group_handlers as gh gh.NodesStatuses.reset_data() gh.ContextTrees.reset_data() set_first_run(True)
def sv_pre_load(scene): clear_system_cache() sv_clean(scene) set_first_run(True)