diff options
Diffstat (limited to 'release/scripts/startup/bl_operators/wm.py')
-rw-r--r-- | release/scripts/startup/bl_operators/wm.py | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/release/scripts/startup/bl_operators/wm.py b/release/scripts/startup/bl_operators/wm.py index 861255f167f..fae38eb1cef 100644 --- a/release/scripts/startup/bl_operators/wm.py +++ b/release/scripts/startup/bl_operators/wm.py @@ -1144,6 +1144,67 @@ class WM_OT_sysinfo(Operator): return {'FINISHED'} +class WM_OT_get_messages(Operator): + bl_idname = "wm.get_messages" + bl_label = "Get Messages" + + def _putMessage(self, messages, msg): + if len(msg): + messages[msg] = True + + def _walkProperties(self, properties, messages): + for prop in properties: + self._putMessage(messages, prop.name) + self._putMessage(messages, prop.description) + + if isinstance(prop, bpy.types.EnumProperty): + for item in prop.enum_items: + self._putMessage(messages, item.name) + self._putMessage(messages, item.description) + + def _walkRNA(self, bl_rna, messages): + if bl_rna.name and bl_rna.name != bl_rna.identifier: + self._putMessage(messages, bl_rna.name) + + if bl_rna.description: + self._putMessage(messages, bl_rna.description) + + self._walkProperties(bl_rna.properties, messages) + + def _walkClass(self, cls, messages): + self._walkRNA(cls.bl_rna, messages) + + def _walk_keymap_hierarchy(self, hier, messages): + for lvl in hier: + self._putMessage(messages, lvl[0]) + + if lvl[3]: + self._walk_keymap_hierarchy(lvl[3], messages) + + def execute(self, context): + messages = {} + + for cls in type(bpy.context).__base__.__subclasses__(): + self._walkClass(cls, messages) + + for cls in bpy.types.Space.__subclasses__(): + self._walkClass(cls, messages) + + for cls in bpy.types.Operator.__subclasses__(): + self._walkClass(cls, messages) + + from bl_ui.space_userpref_keymap import KM_HIERARCHY + + self._walk_keymap_hierarchy(KM_HIERARCHY, messages) + + text = bpy.data.texts.new(name="messages.txt") + for message in messages: + text.write(message + "\n") + self._walkClass(bpy.types.SpaceDopeSheetEditor, messages) + + return {'FINISHED'} + + class WM_OT_copy_prev_settings(Operator): '''Copy settings from previous version''' bl_idname = "wm.copy_prev_settings" |