Attract: Compute strip conflicts in scene update handler
This commit is contained in:
parent
7ef5e522f8
commit
fcba8a2e0f
@ -127,18 +127,27 @@ def shot_id_use(strips):
|
|||||||
return ids_in_use
|
return ids_in_use
|
||||||
|
|
||||||
|
|
||||||
def compute_strip_conflicts(context):
|
def compute_strip_conflicts(scene):
|
||||||
"""Sets the strip property atc_object_id_conflict for each strip."""
|
"""Sets the strip property atc_object_id_conflict for each strip."""
|
||||||
|
|
||||||
ids_in_use = shot_id_use(context.scene.sequence_editor.sequences_all)
|
tag_redraw = False
|
||||||
|
ids_in_use = shot_id_use(scene.sequence_editor.sequences_all)
|
||||||
for strips in ids_in_use.values():
|
for strips in ids_in_use.values():
|
||||||
is_conflict = len(strips) > 1
|
is_conflict = len(strips) > 1
|
||||||
for strip in strips:
|
for strip in strips:
|
||||||
|
if strip.atc_object_id_conflict != is_conflict:
|
||||||
|
tag_redraw = True
|
||||||
strip.atc_object_id_conflict = is_conflict
|
strip.atc_object_id_conflict = is_conflict
|
||||||
|
|
||||||
|
if tag_redraw:
|
||||||
|
draw.tag_redraw_all_sequencer_editors()
|
||||||
return ids_in_use
|
return ids_in_use
|
||||||
|
|
||||||
|
|
||||||
|
def scene_update_post_handler(scene):
|
||||||
|
compute_strip_conflicts(scene)
|
||||||
|
|
||||||
|
|
||||||
class ToolsPanel(Panel):
|
class ToolsPanel(Panel):
|
||||||
bl_label = 'Attract'
|
bl_label = 'Attract'
|
||||||
bl_space_type = 'SEQUENCE_EDITOR'
|
bl_space_type = 'SEQUENCE_EDITOR'
|
||||||
@ -282,7 +291,6 @@ class AttractOperatorMixin:
|
|||||||
strip.atc_notes = node['properties']['notes']
|
strip.atc_notes = node['properties']['notes']
|
||||||
strip.atc_status = node['properties']['status']
|
strip.atc_status = node['properties']['status']
|
||||||
|
|
||||||
compute_strip_conflicts(bpy.context)
|
|
||||||
draw.tag_redraw_all_sequencer_editors()
|
draw.tag_redraw_all_sequencer_editors()
|
||||||
|
|
||||||
def submit_update(self, strip):
|
def submit_update(self, strip):
|
||||||
@ -331,8 +339,6 @@ class AttractOperatorMixin:
|
|||||||
strip.atc_status = node.properties.status
|
strip.atc_status = node.properties.status
|
||||||
strip.atc_notes = node.properties.notes or ''
|
strip.atc_notes = node.properties.notes or ''
|
||||||
strip.atc_description = node.description or ''
|
strip.atc_description = node.description or ''
|
||||||
|
|
||||||
compute_strip_conflicts(bpy.context)
|
|
||||||
draw.tag_redraw_all_sequencer_editors()
|
draw.tag_redraw_all_sequencer_editors()
|
||||||
|
|
||||||
|
|
||||||
@ -437,7 +443,6 @@ class AttractShotDelete(AttractOperatorMixin, Operator):
|
|||||||
return {'CANCELLED'}
|
return {'CANCELLED'}
|
||||||
|
|
||||||
remove_atc_props(strip)
|
remove_atc_props(strip)
|
||||||
compute_strip_conflicts(context)
|
|
||||||
draw.tag_redraw_all_sequencer_editors()
|
draw.tag_redraw_all_sequencer_editors()
|
||||||
return {'FINISHED'}
|
return {'FINISHED'}
|
||||||
|
|
||||||
@ -859,11 +864,14 @@ def register():
|
|||||||
bpy.utils.register_class(ATTRACT_OT_open_meta_blendfile)
|
bpy.utils.register_class(ATTRACT_OT_open_meta_blendfile)
|
||||||
bpy.utils.register_class(ATTRACT_OT_shot_open_in_browser)
|
bpy.utils.register_class(ATTRACT_OT_shot_open_in_browser)
|
||||||
bpy.utils.register_class(ATTRACT_OT_make_shot_thumbnail)
|
bpy.utils.register_class(ATTRACT_OT_make_shot_thumbnail)
|
||||||
|
|
||||||
|
bpy.app.handlers.scene_update_post.append(scene_update_post_handler)
|
||||||
draw.callback_enable()
|
draw.callback_enable()
|
||||||
|
|
||||||
|
|
||||||
def unregister():
|
def unregister():
|
||||||
draw.callback_disable()
|
draw.callback_disable()
|
||||||
|
bpy.app.handlers.scene_update_post.remove(scene_update_post_handler)
|
||||||
bpy.utils.unregister_module(__name__)
|
bpy.utils.unregister_module(__name__)
|
||||||
del bpy.types.Sequence.atc_is_synced
|
del bpy.types.Sequence.atc_is_synced
|
||||||
del bpy.types.Sequence.atc_object_id
|
del bpy.types.Sequence.atc_object_id
|
||||||
|
Reference in New Issue
Block a user