From fa5cc84a0a529df4772180b485875fb785b7bd26 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 30 Apr 2023 13:24:39 +1000 Subject: [PATCH] WM: avoid Python exceptions in poll functions --- scripts/startup/bl_operators/geometry_nodes.py | 3 ++- scripts/startup/bl_operators/image.py | 8 ++------ scripts/startup/bl_operators/object.py | 5 +++++ 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/scripts/startup/bl_operators/geometry_nodes.py b/scripts/startup/bl_operators/geometry_nodes.py index 9ef0b40e382..fcc44f48b30 100644 --- a/scripts/startup/bl_operators/geometry_nodes.py +++ b/scripts/startup/bl_operators/geometry_nodes.py @@ -40,7 +40,8 @@ def geometry_modifier_poll(context): def get_context_modifier(context): - if context.area.type == 'PROPERTIES': + area = context.area + if (area is not None) and (area.type == 'PROPERTIES'): modifier = context.modifier else: ob = context.object diff --git a/scripts/startup/bl_operators/image.py b/scripts/startup/bl_operators/image.py index 05bbeebb97f..131625d842a 100644 --- a/scripts/startup/bl_operators/image.py +++ b/scripts/startup/bl_operators/image.py @@ -178,12 +178,8 @@ class ProjectApply(Operator): def execute(self, _context): image_name = ProjectEdit._proj_hack[0] # TODO, deal with this nicer - - try: - image = bpy.data.images[image_name, None] - except KeyError: - import traceback - traceback.print_exc() + image = bpy.data.images.get((image_name, None)) + if image is None: self.report({'ERROR'}, tip_("Could not find image '%s'") % image_name) return {'CANCELLED'} diff --git a/scripts/startup/bl_operators/object.py b/scripts/startup/bl_operators/object.py index 9e31528aa25..12f8f1cdc9c 100644 --- a/scripts/startup/bl_operators/object.py +++ b/scripts/startup/bl_operators/object.py @@ -655,6 +655,11 @@ class IsolateTypeRender(Operator): bl_label = "Restrict Render Unselected" bl_options = {'REGISTER', 'UNDO'} + @classmethod + def poll(cls, context): + ob = context.object + return (ob is not None) + def execute(self, context): act_type = context.object.type