Compare commits

..

1 Commits

Author SHA1 Message Date
Swann 060b7507b6 feat: initial server request implementation along with a demo operator (SessionGetInfo)
Related to #222
2021-07-21 15:43:21 +02:00
3 changed files with 21 additions and 6 deletions
+2 -5
View File
@@ -79,6 +79,8 @@ def on_scene_update(scene):
logging.debug(f"Ignoring distant update of {dependency_updates[0].id.name}")
return
update_external_dependencies()
# NOTE: maybe we don't need to check each update but only the first
for update in reversed(dependency_updates):
update_uuid = getattr(update.id, 'uuid', None)
@@ -107,11 +109,6 @@ def on_scene_update(scene):
porcelain.commit(session.repository, scn_uuid)
porcelain.push(session.repository, 'origin', scn_uuid)
scene_graph_changed = [u for u in reversed(dependency_updates) if getattr(u.id, 'uuid', None) and isinstance(u.id,(bpy.types.Scene,bpy.types.Collection))]
if scene_graph_changed:
porcelain.purge_orphan_nodes(session.repository)
update_external_dependencies()
@persistent
def resolve_deps_graph(dummy):
+18
View File
@@ -689,6 +689,7 @@ class SessionPurgeOperator(bpy.types.Operator):
def execute(self, context):
try:
sanitize_deps_graph(remove_nodes=True)
porcelain.purge_orphan_nodes(session.repository)
except Exception as e:
self.report({'ERROR'}, repr(e))
@@ -783,6 +784,22 @@ class SessionStopAutoSaveOperator(bpy.types.Operator):
return {'FINISHED'}
class SessionGetInfo(bpy.types.Operator):
bl_idname = "session.get_info"
bl_label = "Get session info"
bl_description = "Get session info"
target_server: bpy.props.StringProperty(default="127.0.0.1:5555")
@classmethod
def poll(cls, context):
return (session.state != STATE_ACTIVE)
def execute(self, context):
infos = porcelain.request_session_info(self.target_server, timeout=100)
logging.info(f"Session info: {infos}")
return {'FINISHED'}
class SessionLoadSaveOperator(bpy.types.Operator, ImportHelper):
bl_idname = "session.load"
@@ -921,6 +938,7 @@ classes = (
SessionPurgeOperator,
SessionPresetServerAdd,
SessionPresetServerRemove,
SessionGetInfo,
)