Esempio n. 1
0
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()
Esempio n. 2
0
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)
Esempio n. 3
0
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")
Esempio n. 4
0
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")
Esempio n. 5
0
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()
Esempio n. 6
0
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)
Esempio n. 7
0
def sv_pre_load(scene):
    clear_system_cache()
    sv_clean(scene)
    set_first_run(True)