Guest User

sequencer_script_runner.py

a guest
Mar 5th, 2016
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import bpy
  2.  
  3. bl_info = {
  4.     # modified version of zeffiis quick script runner, see https://gist.github.com/zeffii/2b488961226ee1ecefcf
  5.     "name": "Sequencer Script Runner",
  6.     "author": "Samoth",
  7.     "version": (0, 1, 0),
  8.     "blender": (2, 7, 6),
  9.     "location": "Sequencer, Properties Panel (right)",
  10.     "category": "Sequencer"
  11. }
  12.  
  13.  
  14. class GlobalScriptRunner(bpy.types.Operator):
  15.     bl_idname = "sequencer.script_runner"
  16.     bl_label = "Sequencer Script Runner"
  17.  
  18.     def execute(self, context):
  19.         # or put own script here...
  20.         textblock_name = context.scene.global_script_to_run
  21.         textblock = bpy.data.texts.get(textblock_name)
  22.         if textblock:
  23.             textblock_as_string = textblock.as_string()
  24.             exec(textblock_as_string)
  25.             return {'FINISHED'}
  26.         else:
  27.             return {'CANCELLED'}
  28.  
  29.  
  30. class ScriptRunnerPanel(bpy.types.Panel):
  31.     """Creates a Panel in the Sequencer Properties Panel"""
  32.     bl_label = "Script Runner"
  33.     bl_idname = "SCENE_PT_script_runner"
  34.     bl_space_type = 'SEQUENCE_EDITOR'
  35.     bl_region_type = 'UI'
  36.  
  37.     def draw(self, context):
  38.         layout = self.layout
  39.         layout.label('Script to run from Shortcut')
  40.         layout.prop_search(context.scene, "global_script_to_run",  bpy.data, "texts")
  41.  
  42.  
  43. def register():
  44.     bpy.types.Scene.global_script_to_run = bpy.props.StringProperty()
  45.     bpy.utils.register_class(GlobalScriptRunner)
  46.     bpy.utils.register_class(ScriptRunnerPanel)
  47.  
  48.  
  49. def unregister():
  50.     bpy.utils.unregister_class(GlobalScriptRunner)
  51.     bpy.utils.unregister_class(ScriptRunnerPanel)
  52.     del bpy.types.Scene.global_script_to_run
Add Comment
Please, Sign In to add comment