fix: review
This commit is contained in:
@ -83,7 +83,6 @@ def session_callback(name):
|
|||||||
def initialize_session():
|
def initialize_session():
|
||||||
"""Session connection init hander
|
"""Session connection init hander
|
||||||
"""
|
"""
|
||||||
settings = utils.get_preferences()
|
|
||||||
runtime_settings = bpy.context.window_manager.session
|
runtime_settings = bpy.context.window_manager.session
|
||||||
|
|
||||||
if not runtime_settings.is_host:
|
if not runtime_settings.is_host:
|
||||||
@ -145,30 +144,10 @@ def on_connection_end(reason="none"):
|
|||||||
if reason != "user":
|
if reason != "user":
|
||||||
bpy.ops.session.notify('INVOKE_DEFAULT', message=f"Disconnected from session. Reason: {reason}. ") #TODO: change op session.notify to add ui + change reason (in replication->interface)
|
bpy.ops.session.notify('INVOKE_DEFAULT', message=f"Disconnected from session. Reason: {reason}. ") #TODO: change op session.notify to add ui + change reason (in replication->interface)
|
||||||
|
|
||||||
|
def setup_logging():
|
||||||
# OPERATORS
|
""" Session setup logging (host/connect)
|
||||||
class SessionConnectOperator(bpy.types.Operator):
|
"""
|
||||||
bl_idname = "session.connect"
|
|
||||||
bl_label = "connect"
|
|
||||||
bl_description = "connect to a net server"
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def poll(cls, context):
|
|
||||||
return True
|
|
||||||
|
|
||||||
def execute(self, context):
|
|
||||||
global deleyables
|
|
||||||
|
|
||||||
settings = utils.get_preferences()
|
settings = utils.get_preferences()
|
||||||
users = bpy.data.window_managers['WinMan'].online_users
|
|
||||||
active_server_index = context.window_manager.server_index if context.window_manager.server_index<=len(settings.server_preset)-1 else 0
|
|
||||||
active_server = settings.server_preset[active_server_index]
|
|
||||||
admin_pass = active_server.admin_password if active_server.use_admin_password else None
|
|
||||||
server_pass = active_server.server_password if active_server.use_server_password else None
|
|
||||||
|
|
||||||
users.clear()
|
|
||||||
deleyables.clear()
|
|
||||||
|
|
||||||
logger = logging.getLogger()
|
logger = logging.getLogger()
|
||||||
if len(logger.handlers) == 1:
|
if len(logger.handlers) == 1:
|
||||||
formatter = logging.Formatter(
|
formatter = logging.Formatter(
|
||||||
@ -192,6 +171,62 @@ class SessionConnectOperator(bpy.types.Operator):
|
|||||||
|
|
||||||
handler.setFormatter(formatter)
|
handler.setFormatter(formatter)
|
||||||
|
|
||||||
|
def setup_timer():
|
||||||
|
""" Session setup timer (host/connect)
|
||||||
|
"""
|
||||||
|
settings = utils.get_preferences()
|
||||||
|
deleyables.append(timers.ClientUpdate())
|
||||||
|
deleyables.append(timers.DynamicRightSelectTimer())
|
||||||
|
deleyables.append(timers.ApplyTimer(timeout=settings.depsgraph_update_rate))
|
||||||
|
|
||||||
|
session_update = timers.SessionStatusUpdate()
|
||||||
|
session_user_sync = timers.SessionUserSync()
|
||||||
|
session_background_executor = timers.MainThreadExecutor(execution_queue=background_execution_queue)
|
||||||
|
session_listen = timers.SessionListenTimer(timeout=0.001)
|
||||||
|
|
||||||
|
session_listen.register()
|
||||||
|
session_update.register()
|
||||||
|
session_user_sync.register()
|
||||||
|
session_background_executor.register()
|
||||||
|
|
||||||
|
deleyables.append(session_background_executor)
|
||||||
|
deleyables.append(session_update)
|
||||||
|
deleyables.append(session_user_sync)
|
||||||
|
deleyables.append(session_listen)
|
||||||
|
deleyables.append(timers.AnnotationUpdates())
|
||||||
|
|
||||||
|
def get_active_server_preset(context):
|
||||||
|
active_index = context.window_manager.server_index
|
||||||
|
server_presets = utils.get_preferences().server_preset
|
||||||
|
|
||||||
|
active_index = active_index if active_index <= len(server_presets)-1 else 0
|
||||||
|
|
||||||
|
return server_presets[active_index]
|
||||||
|
|
||||||
|
# OPERATORS
|
||||||
|
class SessionConnectOperator(bpy.types.Operator):
|
||||||
|
bl_idname = "session.connect"
|
||||||
|
bl_label = "connect"
|
||||||
|
bl_description = "connect to a net server"
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def poll(cls, context):
|
||||||
|
return True
|
||||||
|
|
||||||
|
def execute(self, context):
|
||||||
|
global deleyables
|
||||||
|
|
||||||
|
settings = utils.get_preferences()
|
||||||
|
users = bpy.data.window_managers['WinMan'].online_users
|
||||||
|
active_server = get_active_server_preset()
|
||||||
|
admin_pass = active_server.admin_password if active_server.use_admin_password else None
|
||||||
|
server_pass = active_server.server_password if active_server.use_server_password else None
|
||||||
|
|
||||||
|
users.clear()
|
||||||
|
deleyables.clear()
|
||||||
|
|
||||||
|
setup_logging()
|
||||||
|
|
||||||
bpy_protocol = bl_types.get_data_translation_protocol()
|
bpy_protocol = bl_types.get_data_translation_protocol()
|
||||||
|
|
||||||
# Check if supported_datablocks are up to date before starting the
|
# Check if supported_datablocks are up to date before starting the
|
||||||
@ -235,25 +270,7 @@ class SessionConnectOperator(bpy.types.Operator):
|
|||||||
logging.error(str(e))
|
logging.error(str(e))
|
||||||
|
|
||||||
# Background client updates service
|
# Background client updates service
|
||||||
deleyables.append(timers.ClientUpdate())
|
setup_timer()
|
||||||
deleyables.append(timers.DynamicRightSelectTimer())
|
|
||||||
deleyables.append(timers.ApplyTimer(timeout=settings.depsgraph_update_rate))
|
|
||||||
|
|
||||||
session_update = timers.SessionStatusUpdate()
|
|
||||||
session_user_sync = timers.SessionUserSync()
|
|
||||||
session_background_executor = timers.MainThreadExecutor(execution_queue=background_execution_queue)
|
|
||||||
session_listen = timers.SessionListenTimer(timeout=0.001)
|
|
||||||
|
|
||||||
session_listen.register()
|
|
||||||
session_update.register()
|
|
||||||
session_user_sync.register()
|
|
||||||
session_background_executor.register()
|
|
||||||
|
|
||||||
deleyables.append(session_background_executor)
|
|
||||||
deleyables.append(session_update)
|
|
||||||
deleyables.append(session_user_sync)
|
|
||||||
deleyables.append(session_listen)
|
|
||||||
deleyables.append(timers.AnnotationUpdates())
|
|
||||||
|
|
||||||
return {"FINISHED"}
|
return {"FINISHED"}
|
||||||
|
|
||||||
@ -279,28 +296,7 @@ class SessionHostOperator(bpy.types.Operator):
|
|||||||
users.clear()
|
users.clear()
|
||||||
deleyables.clear()
|
deleyables.clear()
|
||||||
|
|
||||||
logger = logging.getLogger()
|
setup_logging()
|
||||||
if len(logger.handlers) == 1:
|
|
||||||
formatter = logging.Formatter(
|
|
||||||
fmt='%(asctime)s CLIENT %(levelname)-8s %(message)s',
|
|
||||||
datefmt='%H:%M:%S'
|
|
||||||
)
|
|
||||||
|
|
||||||
start_time = datetime.now().strftime('%Y_%m_%d_%H-%M-%S')
|
|
||||||
log_directory = os.path.join(
|
|
||||||
settings.cache_directory,
|
|
||||||
f"multiuser_{start_time}.log")
|
|
||||||
|
|
||||||
os.makedirs(settings.cache_directory, exist_ok=True)
|
|
||||||
|
|
||||||
handler = logging.FileHandler(log_directory, mode='w')
|
|
||||||
logger.addHandler(handler)
|
|
||||||
|
|
||||||
for handler in logger.handlers:
|
|
||||||
if isinstance(handler, logging.NullHandler):
|
|
||||||
continue
|
|
||||||
|
|
||||||
handler.setFormatter(formatter)
|
|
||||||
|
|
||||||
bpy_protocol = bl_types.get_data_translation_protocol()
|
bpy_protocol = bl_types.get_data_translation_protocol()
|
||||||
|
|
||||||
@ -326,9 +322,6 @@ class SessionHostOperator(bpy.types.Operator):
|
|||||||
if settings.init_method == 'EMPTY':
|
if settings.init_method == 'EMPTY':
|
||||||
utils.clean_scene()
|
utils.clean_scene()
|
||||||
|
|
||||||
runtime_settings.is_host = True
|
|
||||||
runtime_settings.internet_ip = environment.get_ip()
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# Init repository
|
# Init repository
|
||||||
for scene in bpy.data.scenes:
|
for scene in bpy.data.scenes:
|
||||||
@ -357,25 +350,7 @@ class SessionHostOperator(bpy.types.Operator):
|
|||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
|
|
||||||
# Background client updates service
|
# Background client updates service
|
||||||
deleyables.append(timers.ClientUpdate())
|
setup_timer()
|
||||||
deleyables.append(timers.DynamicRightSelectTimer())
|
|
||||||
deleyables.append(timers.ApplyTimer(timeout=settings.depsgraph_update_rate))
|
|
||||||
|
|
||||||
session_update = timers.SessionStatusUpdate()
|
|
||||||
session_user_sync = timers.SessionUserSync()
|
|
||||||
session_background_executor = timers.MainThreadExecutor(execution_queue=background_execution_queue)
|
|
||||||
session_listen = timers.SessionListenTimer(timeout=0.001)
|
|
||||||
|
|
||||||
session_listen.register()
|
|
||||||
session_update.register()
|
|
||||||
session_user_sync.register()
|
|
||||||
session_background_executor.register()
|
|
||||||
|
|
||||||
deleyables.append(session_background_executor)
|
|
||||||
deleyables.append(session_update)
|
|
||||||
deleyables.append(session_user_sync)
|
|
||||||
deleyables.append(session_listen)
|
|
||||||
deleyables.append(timers.AnnotationUpdates())
|
|
||||||
|
|
||||||
return {"FINISHED"}
|
return {"FINISHED"}
|
||||||
|
|
||||||
@ -989,7 +964,7 @@ class SessionPresetServerAdd(bpy.types.Operator):
|
|||||||
refresh_sidebar_view()
|
refresh_sidebar_view()
|
||||||
|
|
||||||
if new_server == existing_preset :
|
if new_server == existing_preset :
|
||||||
self.report({'INFO'}, "Server '" + self.server_name + "' override")
|
self.report({'INFO'}, "Server '" + self.server_name + "' edited")
|
||||||
else :
|
else :
|
||||||
self.report({'INFO'}, "New '" + self.server_name + "' server preset")
|
self.report({'INFO'}, "New '" + self.server_name + "' server preset")
|
||||||
|
|
||||||
@ -1044,7 +1019,7 @@ class SessionPresetServerEdit(bpy.types.Operator): # TODO : use preset, not sett
|
|||||||
|
|
||||||
refresh_sidebar_view()
|
refresh_sidebar_view()
|
||||||
|
|
||||||
self.report({'INFO'}, "Server '" + settings_active_server.server_name + "' override")
|
self.report({'INFO'}, "Server '" + settings_active_server.server_name + "' edited")
|
||||||
|
|
||||||
return {'FINISHED'}
|
return {'FINISHED'}
|
||||||
|
|
||||||
@ -1103,7 +1078,7 @@ class GetDoc(bpy.types.Operator):
|
|||||||
|
|
||||||
def execute(self, context):
|
def execute(self, context):
|
||||||
assert(context)
|
assert(context)
|
||||||
bpy.ops.wm.url_open(url="https://multi-user.readthedocs.io/en/develop/index.html")
|
bpy.ops.wm.url_open(url="https://slumber.gitlab.io/multi-user/index.html")
|
||||||
|
|
||||||
return {'FINISHED'}
|
return {'FINISHED'}
|
||||||
|
|
||||||
|
@ -670,11 +670,6 @@ class SessionProps(bpy.types.PropertyGroup):
|
|||||||
description='Connect as admin',
|
description='Connect as admin',
|
||||||
default=False
|
default=False
|
||||||
)
|
)
|
||||||
internet_ip: bpy.props.StringProperty( # TODO: to remove
|
|
||||||
name="internet ip",
|
|
||||||
default="no found",
|
|
||||||
description='Internet interface ip',
|
|
||||||
)
|
|
||||||
user_snap_running: bpy.props.BoolProperty(
|
user_snap_running: bpy.props.BoolProperty(
|
||||||
default=False
|
default=False
|
||||||
)
|
)
|
||||||
|
@ -17,7 +17,6 @@
|
|||||||
|
|
||||||
|
|
||||||
from logging import log
|
from logging import log
|
||||||
import logging
|
|
||||||
import bpy
|
import bpy
|
||||||
import bpy.utils.previews
|
import bpy.utils.previews
|
||||||
|
|
||||||
@ -672,8 +671,6 @@ classes = (
|
|||||||
VIEW3D_PT_overlay_session,
|
VIEW3D_PT_overlay_session,
|
||||||
)
|
)
|
||||||
|
|
||||||
preview_collections = {}
|
|
||||||
|
|
||||||
register, unregister = bpy.utils.register_classes_factory(classes)
|
register, unregister = bpy.utils.register_classes_factory(classes)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
Reference in New Issue
Block a user