Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'release/scripts/startup/bl_operators')
-rw-r--r--release/scripts/startup/bl_operators/sequencer.py8
-rw-r--r--release/scripts/startup/bl_operators/userpref.py2
-rw-r--r--release/scripts/startup/bl_operators/wm.py36
3 files changed, 32 insertions, 14 deletions
diff --git a/release/scripts/startup/bl_operators/sequencer.py b/release/scripts/startup/bl_operators/sequencer.py
index a332f938afd..9b15ccf167b 100644
--- a/release/scripts/startup/bl_operators/sequencer.py
+++ b/release/scripts/startup/bl_operators/sequencer.py
@@ -151,7 +151,13 @@ class SequencerFadesClear(Operator):
return context.scene and context.scene.sequence_editor and context.scene.sequence_editor.active_strip
def execute(self, context):
- fcurves = context.scene.animation_data.action.fcurves
+ animation_data = context.scene.animation_data
+ if animation_data is None:
+ return {'CANCELLED'}
+ action = animation_data.action
+ if action is None:
+ return {'CANCELLED'}
+ fcurves = action.fcurves
fcurve_map = {
curve.data_path: curve
for curve in fcurves
diff --git a/release/scripts/startup/bl_operators/userpref.py b/release/scripts/startup/bl_operators/userpref.py
index 95820f1dc06..5f10f06f655 100644
--- a/release/scripts/startup/bl_operators/userpref.py
+++ b/release/scripts/startup/bl_operators/userpref.py
@@ -359,7 +359,7 @@ class PREFERENCES_OT_keyitem_restore(Operator):
item_id: IntProperty(
name="Item Identifier",
- description="Identifier of the item to remove",
+ description="Identifier of the item to restore",
)
@classmethod
diff --git a/release/scripts/startup/bl_operators/wm.py b/release/scripts/startup/bl_operators/wm.py
index 9925cf6dbe0..6c8d94c874c 100644
--- a/release/scripts/startup/bl_operators/wm.py
+++ b/release/scripts/startup/bl_operators/wm.py
@@ -1276,21 +1276,19 @@ class WM_OT_properties_edit(Operator):
# First remove
item = eval("context.%s" % data_path)
+
+ if (item.id_data and item.id_data.override_library and item.id_data.override_library.reference):
+ self.report({'ERROR'}, "Cannot edit properties from override data")
+ return {'CANCELLED'}
+
prop_type_old = type(item[prop_old])
rna_idprop_ui_prop_clear(item, prop_old)
- exec_str = "del item[%r]" % prop_old
- # print(exec_str)
- exec(exec_str)
+ del item[prop_old]
# Reassign
- exec_str = "item[%r] = %s" % (prop, repr(value_eval))
- # print(exec_str)
- exec(exec_str)
-
- exec_str = "item.property_overridable_library_set('[\"%s\"]', %s)" % (prop, self.is_overridable_library)
- exec(exec_str)
-
+ item[prop] = value_eval
+ item.property_overridable_library_set('["%s"]' % prop, self.is_overridable_library)
rna_idprop_ui_prop_update(item, prop)
self._last_prop[:] = [prop]
@@ -1375,9 +1373,14 @@ class WM_OT_properties_edit(Operator):
item = eval("context.%s" % data_path)
+ if (item.id_data and item.id_data.override_library and item.id_data.override_library.reference):
+ self.report({'ERROR'}, "Cannot edit properties from override data")
+ return {'CANCELLED'}
+
# retrieve overridable static
- exec_str = "item.is_property_overridable_library('[\"%s\"]')" % (self.property)
- self.is_overridable_library = bool(eval(exec_str))
+ is_overridable = item.is_property_overridable_library('["%s"]' % self.property)
+ self.is_overridable_library = bool(is_overridable)
+
# default default value
prop_type, is_array = rna_idprop_value_item_type(self.get_value_eval())
@@ -1498,6 +1501,10 @@ class WM_OT_properties_add(Operator):
data_path = self.data_path
item = eval("context.%s" % data_path)
+ if (item.id_data and item.id_data.override_library and item.id_data.override_library.reference):
+ self.report({'ERROR'}, "Cannot add properties to override data")
+ return {'CANCELLED'}
+
def unique_name(names):
prop = "prop"
prop_new = prop
@@ -1550,6 +1557,11 @@ class WM_OT_properties_remove(Operator):
)
data_path = self.data_path
item = eval("context.%s" % data_path)
+
+ if (item.id_data and item.id_data.override_library and item.id_data.override_library.reference):
+ self.report({'ERROR'}, "Cannot remove properties from override data")
+ return {'CANCELLED'}
+
prop = self.property
rna_idprop_ui_prop_update(item, prop)
del item[prop]