Python API: Make context.tool_settings never null
Since 1122a05cb6 tool settings could return None, but we do not check this
consistently in scripts. Now always return some tool settings, since it's difficult
to verify and easy to forget proper null checks in e.g. operator poll functions.
The sequencer UI code was updated to continue showing tool settings only when
there is a sequencer scene.
Co-authored-by: Sergey Sharybin <sergey@blender.org>
Pull Request: https://projects.blender.org/blender/blender/pulls/146166
This commit is contained in:
@@ -174,7 +174,8 @@ class SEQUENCER_HT_header(Header):
|
||||
|
||||
layout.separator_spacer()
|
||||
|
||||
tool_settings = context.tool_settings
|
||||
scene = context.sequencer_scene
|
||||
tool_settings = scene.tool_settings if scene else None
|
||||
sequencer_tool_settings = tool_settings.sequencer_tool_settings if tool_settings else None
|
||||
|
||||
if st.view_type == 'SEQUENCER':
|
||||
@@ -1485,8 +1486,8 @@ class SEQUENCER_MT_pivot_pie(Menu):
|
||||
layout = self.layout
|
||||
pie = layout.menu_pie()
|
||||
|
||||
if context.tool_settings:
|
||||
sequencer_tool_settings = context.tool_settings.sequencer_tool_settings
|
||||
if context.sequencer_scene:
|
||||
sequencer_tool_settings = context.sequencer_scene.tool_settings.sequencer_tool_settings
|
||||
|
||||
pie.prop_enum(sequencer_tool_settings, "pivot_point", value='CENTER')
|
||||
pie.prop_enum(sequencer_tool_settings, "pivot_point", value='CURSOR')
|
||||
@@ -3120,7 +3121,7 @@ class SEQUENCER_PT_preview_snapping(Panel):
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
st = context.space_data
|
||||
return st.view_type in {'PREVIEW', 'SEQUENCER_PREVIEW'} and context.tool_settings
|
||||
return st.view_type in {'PREVIEW', 'SEQUENCER_PREVIEW'} and context.sequencer_scene
|
||||
|
||||
def draw(self, context):
|
||||
tool_settings = context.tool_settings
|
||||
@@ -3145,7 +3146,7 @@ class SEQUENCER_PT_sequencer_snapping(Panel):
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
st = context.space_data
|
||||
return st.view_type in {'SEQUENCER', 'SEQUENCER_PREVIEW'} and context.tool_settings
|
||||
return st.view_type in {'SEQUENCER', 'SEQUENCER_PREVIEW'} and context.sequencer_scene
|
||||
|
||||
def draw(self, context):
|
||||
tool_settings = context.tool_settings
|
||||
|
||||
Reference in New Issue
Block a user