diff --git a/multi_user/operators.py b/multi_user/operators.py index b710cf0..907056c 100644 --- a/multi_user/operators.py +++ b/multi_user/operators.py @@ -47,7 +47,7 @@ from replication.constants import (COMMITED, FETCHED, RP_COMMON, STATE_ACTIVE, from replication.data import DataTranslationProtocol from replication.exception import ContextError, NonAuthorizedOperationError from replication.interface import session -from replication.porcelain import add +from replication.porcelain import add, apply from replication.repository import Repository from . import bl_types, environment, timers, ui, utils @@ -82,8 +82,8 @@ def initialize_session(): # Step 1: Constrect nodes logging.info("Constructing nodes") - for node in session._repository.list_ordered(): - node_ref = session.get(uuid=node) + for node in session.repository.list_ordered(): + node_ref = session.repository.get_node(node) if node_ref is None: logging.error(f"Can't construct node {node}") elif node_ref.state == FETCHED: @@ -91,8 +91,8 @@ def initialize_session(): # Step 2: Load nodes logging.info("Loading nodes") - for node in session._repository.list_ordered(): - node_ref = session.get(uuid=node) + for node in session.repository.list_ordered(): + node_ref = session.repository.get_node(node) if node_ref is None: logging.error(f"Can't load node {node}") @@ -598,14 +598,17 @@ class SessionApply(bpy.types.Operator): def execute(self, context): logging.debug(f"Running apply on {self.target}") try: - node_ref = session.get(uuid=self.target) - session.apply(self.target, - force=True, - force_dependencies=self.reset_dependencies) + node_ref = session.repository.get_node(self.target) + apply(session.repository, + self.target, + force=True, + force_dependencies=self.reset_dependencies) if node_ref.bl_reload_parent: - for parent in session._repository.find_parents(self.target): + for parent in session.repository.find_parents(self.target): logging.debug(f"Refresh parent {parent}") - session.apply(parent, force=True) + apply(session.repository, + parent, + force=True) except Exception as e: self.report({'ERROR'}, repr(e)) return {"CANCELED"} @@ -652,11 +655,11 @@ class ApplyArmatureOperator(bpy.types.Operator): nodes = session.list(filter=bl_types.bl_armature.BlArmature) for node in nodes: - node_ref = session.get(uuid=node) + node_ref = session.repository.get_node(node) if node_ref.state == FETCHED: try: - session.apply(node) + apply(session.repository, node) except Exception as e: logging.error("Fail to apply armature: {e}") @@ -921,7 +924,7 @@ classes = ( def update_external_dependencies(): nodes_ids = session.list(filter=bl_types.bl_file.BlFile) for node_id in nodes_ids: - node = session.get(node_id) + node = session.repository.get_node(node_id) if node and node.owner in [session.id, RP_COMMON] \ and node.has_changed(): session.commit(node_id) @@ -934,7 +937,7 @@ def sanitize_deps_graph(remove_nodes: bool = False): start = utils.current_milli_time() rm_cpt = 0 for node_key in session.list(): - node = session.get(node_key) + node = session.repository.get_node(node_key) if node is None \ or (node.state == UP and not node.resolve(construct=False)): if remove_nodes: @@ -987,7 +990,7 @@ def depsgraph_evaluation(scene): # Is the object tracked ? if update.id.uuid: # Retrieve local version - node = session.get(uuid=update.id.uuid) + node = session.repository.get_node(update.id.uuid) # Check our right on this update: # - if its ours or ( under common and diff), launch the @@ -1011,7 +1014,7 @@ def depsgraph_evaluation(scene): continue # A new scene is created elif isinstance(update.id, bpy.types.Scene): - ref = session.get(reference=update.id) + ref = session.repository.get_node_by_datablock(update.id) if ref: ref.resolve() else: diff --git a/multi_user/presence.py b/multi_user/presence.py index f89844d..30b10d2 100644 --- a/multi_user/presence.py +++ b/multi_user/presence.py @@ -30,7 +30,7 @@ import mathutils from bpy_extras import view3d_utils from gpu_extras.batch import batch_for_shader from replication.constants import (STATE_ACTIVE, STATE_AUTH, STATE_CONFIG, - STATE_INITIAL, STATE_LAUNCHING_SERVICES, + STATE_INITIAL, CONNECTING, STATE_LOBBY, STATE_QUITTING, STATE_SRV_SYNC, STATE_SYNCING, STATE_WAITING) from replication.interface import session diff --git a/multi_user/timers.py b/multi_user/timers.py index e8c7340..9ec9ca4 100644 --- a/multi_user/timers.py +++ b/multi_user/timers.py @@ -23,7 +23,8 @@ from replication.constants import (FETCHED, RP_COMMON, STATE_ACTIVE, STATE_INITIAL, STATE_LOBBY, STATE_QUITTING, STATE_SRV_SYNC, STATE_SYNCING, UP) from replication.exception import NonAuthorizedOperationError, ContextError -from replication.interface import session, add +from replication.interface import session +from replication.porcelain import apply, add from . import operators, utils from .presence import (UserFrustumWidget, UserNameWidget, UserSelectionWidget, @@ -110,18 +111,18 @@ class ApplyTimer(Timer): nodes = session.list() for node in nodes: - node_ref = session.get(uuid=node) + node_ref = session.repository.get_node(node) if node_ref.state == FETCHED: try: - session.apply(node) + apply(session.repository, node) except Exception as e: logging.error(f"Fail to apply {node_ref.uuid}: {e}") else: if node_ref.bl_reload_parent: - for parent in session._repository.find_parents(node): + for parent in session.repository.find_parents(node): logging.debug("Refresh parent {node}") - session.apply(parent, force=True) + apply(session.repository, parent, force=True) class DynamicRightSelectTimer(Timer): @@ -148,7 +149,7 @@ class DynamicRightSelectTimer(Timer): # if an annotation exist and is tracked if annotation_gp and annotation_gp.uuid: - registered_gp = session.get(uuid=annotation_gp.uuid) + registered_gp = session.repository.get_node(annotation_gp.uuid) if is_annotating(bpy.context): # try to get the right on it if registered_gp.owner == RP_COMMON: @@ -162,7 +163,7 @@ class DynamicRightSelectTimer(Timer): affect_dependencies=False) if registered_gp.owner == settings.username: - gp_node = session.get(uuid=annotation_gp.uuid) + gp_node = session.repository.get_node(annotation_gp.uuid) if gp_node.has_changed(): session.commit(gp_node.uuid) session.push(gp_node.uuid, check_data=False) @@ -186,7 +187,7 @@ class DynamicRightSelectTimer(Timer): # change old selection right to common for obj in obj_common: - node = session.get(uuid=obj) + node = session.repository.get_node(obj) if node and (node.owner == settings.username or node.owner == RP_COMMON): recursive = True @@ -204,7 +205,7 @@ class DynamicRightSelectTimer(Timer): # change new selection to our for obj in obj_ours: - node = session.get(uuid=obj) + node = session.repository.get_node(obj) if node and node.owner == RP_COMMON: recursive = True @@ -237,7 +238,7 @@ class DynamicRightSelectTimer(Timer): owned_keys = session.list( filter_owner=settings.username) for key in owned_keys: - node = session.get(uuid=key) + node = session.repository.get_node(key) try: session.change_owner( key, diff --git a/multi_user/ui.py b/multi_user/ui.py index abc2a18..f956d0f 100644 --- a/multi_user/ui.py +++ b/multi_user/ui.py @@ -26,7 +26,7 @@ from replication.constants import (ADDED, ERROR, FETCHED, STATE_INITIAL, STATE_SRV_SYNC, STATE_WAITING, STATE_QUITTING, STATE_LOBBY, - STATE_LAUNCHING_SERVICES) + CONNECTING) from replication import __version__ from replication.interface import session from .timers import registry @@ -441,7 +441,7 @@ class SESSION_PT_presence(bpy.types.Panel): def draw_property(context, parent, property_uuid, level=0): settings = get_preferences() runtime_settings = context.window_manager.session - item = session.get(uuid=property_uuid) + item = session.repository.get_node(property_uuid) area_msg = parent.row(align=True) @@ -568,7 +568,7 @@ class SESSION_PT_repository(bpy.types.Panel): filter_owner=settings.username) if runtime_settings.filter_owned else session.list() client_keys = [key for key in key_to_filter - if session.get(uuid=key).str_type + if session.repository.get_node(key).str_type in types_filter] if client_keys: diff --git a/multi_user/utils.py b/multi_user/utils.py index 25444f9..a593015 100644 --- a/multi_user/utils.py +++ b/multi_user/utils.py @@ -36,7 +36,7 @@ from replication.constants import (STATE_ACTIVE, STATE_AUTH, STATE_INITIAL, STATE_SRV_SYNC, STATE_WAITING, STATE_QUITTING, STATE_LOBBY, - STATE_LAUNCHING_SERVICES) + CONNECTING) def find_from_attr(attr_name, attr_value, list): @@ -92,7 +92,7 @@ def get_state_str(state): state_str = 'OFFLINE' elif state == STATE_QUITTING: state_str = 'QUITTING' - elif state == STATE_LAUNCHING_SERVICES: + elif state == CONNECTING: state_str = 'LAUNCHING SERVICES' elif state == STATE_LOBBY: state_str = 'LOBBY'