fix(rcf): panel regisration

This commit is contained in:
Swann Martinez
2019-04-01 16:14:21 +02:00
parent 3946b87f83
commit f10a546585
3 changed files with 83 additions and 84 deletions

View File

@ -27,7 +27,8 @@ def register():
net_ecs.register() net_ecs.register()
def unregister(): def unregister():
bsyncio.unregister()
net_ui.unregister() net_ui.unregister()
net_operators.unregister() net_operators.unregister()
net_ecs.unregister() net_ecs.unregister()
bsyncio.unregister()

View File

@ -460,7 +460,6 @@ def mesh_tick():
def object_tick(): def object_tick():
obj = get_update("Object") obj = get_update("Object")
if obj: if obj:
@ -541,7 +540,6 @@ class session_join(bpy.types.Operator):
drawer = net_draw.HUD(client_instance=client) drawer = net_draw.HUD(client_instance=client)
register_ticks() register_ticks()
# bpy.ops.session.draw('INVOKE_DEFAULT')
return {"FINISHED"} return {"FINISHED"}
@ -727,7 +725,6 @@ classes = (
session_create, session_create,
session_settings, session_settings,
session_remove_property, session_remove_property,
session_draw_clients,
session_snapview, session_snapview,
) )
@ -742,16 +739,17 @@ def depsgraph_update(scene):
if client.status == net_components.RCFStatus.CONNECTED: if client.status == net_components.RCFStatus.CONNECTED:
if scene.session_settings.active_object: if scene.session_settings.active_object:
if c[1].is_updated_geometry: if c[1].is_updated_geometry:
print('geometry') print('geometry {}'.format(c[1].id.name))
if c[1].id.name == scene.session_settings.active_object.name: if c[1].id.name == scene.session_settings.active_object.name:
add_update(c[1].id.bl_rna.name, c[1].id.name) add_update(c[1].id.bl_rna.name, c[1].id.name)
elif c[1].is_updated_transform: elif c[1].is_updated_transform:
print('transform') print('transform{}'.format(c[1].id.name))
if c[1].id.name == scene.session_settings.active_object.name: if c[1].id.name == scene.session_settings.active_object.name:
add_update(c[1].id.bl_rna.name, c[1].id.name) add_update(c[1].id.bl_rna.name, c[1].id.name)
else: else:
print('other') print('other{}'.format(c[1].id.name))
# if c[1].id.bl_rna.name == 'Material' or c[1].id.bl_rna.name== 'Shader Nodetree': # if c[1].id.bl_rna.name == 'Material' or c[1].id.bl_rna.name== 'Shader Nodetree':
data_name = c[1].id.name data_name = c[1].id.name
if c[1].id.bl_rna.name == "Object": if c[1].id.bl_rna.name == "Object":
if data_name in bpy.data.objects.keys(): if data_name in bpy.data.objects.keys():

152
net_ui.py
View File

@ -14,59 +14,60 @@ class SessionSettingsPanel(bpy.types.Panel):
def draw(self, context): def draw(self, context):
layout = self.layout layout = self.layout
net_settings = context.scene.session_settings if hasattr(context.scene, 'session_settings'):
scene = context.scene net_settings = context.scene.session_settings
scene = context.scene
row = layout.row()
if net_operators.client is None:
row = layout.row()
box = row.box()
row = box.row()
row.label(text="User infos")
row = box.row()
row.prop(scene.session_settings, "username", text="id")
row = box.row()
row.prop(scene.session_settings, "client_color", text="color")
row = layout.row() row = layout.row()
row.prop(scene.session_settings, "session_mode", expand=True) if net_operators.client is None:
row = layout.row()
row = layout.row()
if scene.session_settings.session_mode == 'HOST':
box = row.box() box = row.box()
row = box.row() row = box.row()
row.label(text="init scene:") row.label(text="User infos")
row.prop(net_settings, "init_scene", text="") row = box.row()
row.prop(scene.session_settings, "username", text="id")
row = box.row()
row.prop(scene.session_settings, "client_color", text="color")
row = layout.row() row = layout.row()
row.operator("session.create", text="HOST") row.prop(scene.session_settings, "session_mode", expand=True)
row = layout.row()
if scene.session_settings.session_mode == 'HOST':
box = row.box()
row = box.row()
row.label(text="init scene:")
row.prop(net_settings, "init_scene", text="")
row = layout.row()
row.operator("session.create", text="HOST")
else:
box = row.box()
row = box.row()
row.prop(net_settings, "ip", text="server ip")
row = box.row()
row.label(text="load data:")
row.prop(net_settings, "load_data", text="")
row = box.row()
row.label(text="clear scene:")
row.prop(net_settings, "clear_scene", text="")
row = layout.row()
row.operator("session.join", text="CONNECT")
else: else:
box = row.box()
row = box.row()
row.prop(net_settings, "ip", text="server ip")
row = box.row()
row.label(text="load data:")
row.prop(net_settings, "load_data", text="")
row = box.row()
row.label(text="clear scene:")
row.prop(net_settings, "clear_scene", text="")
row = layout.row() if net_operators.client.status is net_components.RCFStatus.CONNECTED:
row.operator("session.join", text="CONNECT") row.label(text="Net frequency:")
row.prop(net_settings, "update_frequency", text="")
row = layout.row()
row.operator("session.stop", icon='QUIT', text="Exit")
elif net_operators.client.status is net_components.RCFStatus.CONNECTING:
row.label(text="connecting...")
row = layout.row()
row.operator("session.stop", icon='QUIT', text="CANCEL")
else: row = layout.row()
if net_operators.client.status is net_components.RCFStatus.CONNECTED:
row.label(text="Net frequency:")
row.prop(net_settings, "update_frequency", text="")
row = layout.row()
row.operator("session.stop", icon='QUIT', text="Exit")
elif net_operators.client.status is net_components.RCFStatus.CONNECTING:
row.label(text="connecting...")
row = layout.row()
row.operator("session.stop", icon='QUIT', text="CANCEL")
row = layout.row()
class SessionUsersPanel(bpy.types.Panel): class SessionUsersPanel(bpy.types.Panel):
@ -117,7 +118,7 @@ class SessionUsersPanel(bpy.types.Panel):
class SessionPropertiesPanel(bpy.types.Panel): class SessionPropertiesPanel(bpy.types.Panel):
"""Creates a Panel in the scene context of the properties editor""" """Creates a Panel in the scene context of the properties editor"""
bl_label = "NET properties" bl_label = "NET properties"
bl_idname = "SCENE_PT_layout" bl_idname = "SCENE_PT_SessionProps"
bl_space_type = 'PROPERTIES' bl_space_type = 'PROPERTIES'
bl_region_type = 'WINDOW' bl_region_type = 'WINDOW'
bl_context = "scene" bl_context = "scene"
@ -131,39 +132,40 @@ class SessionPropertiesPanel(bpy.types.Panel):
def draw(self, context): def draw(self, context):
layout = self.layout layout = self.layout
net_settings = context.scene.session_settings if hasattr(context.scene,'session_settings'):
scene = context.scene net_settings = context.scene.session_settings
# Create a simple row. scene = context.scene
row = layout.row() # Create a simple row.
if net_operators.client:
row = layout.row(align=True)
row.prop(net_settings, "buffer", text="")
row.prop(net_settings, "add_property_depth", text="")
add = row.operator("session.add_prop", text="",
icon="ADD")
add.property_path = net_settings.buffer
add.depth = net_settings.add_property_depth
row = layout.row() row = layout.row()
# Property area
area_msg = row.box() if net_operators.client:
if len(net_operators.client.property_map) > 0: row = layout.row(align=True)
for key, values in net_operators.client.property_map.items(): row.prop(net_settings, "buffer", text="")
item_box = area_msg.box() row.prop(net_settings, "add_property_depth", text="")
detail_item_box = item_box.row() add = row.operator("session.add_prop", text="",
# detail_item_box = item_box.row() icon="ADD")
add.property_path = net_settings.buffer
detail_item_box.label(text="{} ({}) {} ".format( add.depth = net_settings.add_property_depth
key, values.mtype, values.id.decode())) row = layout.row()
detail_item_box.operator( # Property area
"session.remove_prop", text="", icon="X").property_path = key area_msg = row.box()
else: if len(net_operators.client.property_map) > 0:
area_msg.label(text="Empty") for key, values in net_operators.client.property_map.items():
item_box = area_msg.box()
detail_item_box = item_box.row()
# detail_item_box = item_box.row()
detail_item_box.label(text="{} ({}) {} ".format(
key, values.mtype, values.id.decode()))
detail_item_box.operator(
"session.remove_prop", text="", icon="X").property_path = key
else:
area_msg.label(text="Empty")
class SessionTaskPanel(bpy.types.Panel): class SessionTaskPanel(bpy.types.Panel):
"""Creates a Panel in the scene context of the properties editor""" """Creates a Panel in the scene context of the properties editor"""
bl_label = "NET tasks" bl_label = "NET tasks"
bl_idname = "SCENE_PT_layout" bl_idname = "SCENE_PT_SessionTasks"
bl_space_type = 'PROPERTIES' bl_space_type = 'PROPERTIES'
bl_region_type = 'WINDOW' bl_region_type = 'WINDOW'
bl_context = "scene" bl_context = "scene"
@ -176,8 +178,6 @@ class SessionTaskPanel(bpy.types.Panel):
def draw(self, context): def draw(self, context):
layout = self.layout layout = self.layout
scene = context.scene
# Create a simple row. # Create a simple row.
row = layout.row() row = layout.row()