From 97c6b288e06336090de531ec7f3af63bf9799cbd Mon Sep 17 00:00:00 2001 From: Hare Date: Sat, 7 Feb 2026 05:57:39 +0900 Subject: [PATCH] =?UTF-8?q?apply=E3=81=AE=E9=81=B8=E6=8A=9E=E3=82=92?= =?UTF-8?q?=E8=87=AA=E5=8B=95=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- operators/apply_blur.py | 51 ++++++++++++----------------------------- 1 file changed, 15 insertions(+), 36 deletions(-) diff --git a/operators/apply_blur.py b/operators/apply_blur.py index fa39b55..53b64ae 100644 --- a/operators/apply_blur.py +++ b/operators/apply_blur.py @@ -25,56 +25,35 @@ class SEQUENCER_OT_apply_mask_blur(Operator): min=1, max=500, ) - - mask_strip_name: StringProperty( - name="Mask Strip", - description="Name of the mask strip to use", - default="", - ) - + @classmethod def poll(cls, context): """Check if operator can run.""" if not context.scene.sequence_editor: return False - - strip = context.scene.sequence_editor.active_strip + + seq_editor = context.scene.sequence_editor + strip = seq_editor.active_strip if not strip: return False - - return strip.type in {'MOVIE', 'IMAGE'} - - def invoke(self, context, event): - """Show dialog to select mask strip.""" - return context.window_manager.invoke_props_dialog(self) - - def draw(self, context): - """Draw the operator dialog.""" - layout = self.layout - layout.prop(self, "blur_size") - layout.prop_search( - self, "mask_strip_name", - context.scene.sequence_editor, "strips", - text="Mask Strip", - ) + + if strip.type not in {'MOVIE', 'IMAGE'}: + return False + + # Check if corresponding mask strip exists + mask_name = f"{strip.name}_mask" + return mask_name in seq_editor.strips def execute(self, context): seq_editor = context.scene.sequence_editor video_strip = seq_editor.active_strip - # Find mask strip - if not self.mask_strip_name: - # Try to find auto-generated mask - auto_mask_name = f"{video_strip.name}_mask" - if auto_mask_name in seq_editor.strips: - self.mask_strip_name = auto_mask_name - else: - self.report({'ERROR'}, "Please select a mask strip") - return {'CANCELLED'} + # Auto-detect mask strip + mask_name = f"{video_strip.name}_mask" + mask_strip = seq_editor.strips.get(mask_name) - mask_strip = seq_editor.strips.get(self.mask_strip_name) if not mask_strip: - self.report({'ERROR'}, f"Mask strip not found: {self.mask_strip_name}") + self.report({'ERROR'}, f"Mask strip not found: {mask_name}") return {'CANCELLED'} try: