From fbcf01f9f77280e81ffc48ef9cbe4a0dae234a50 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 17 Nov 2010 07:00:14 +0000 Subject: cleanup the operator template and rename to operator_export --- release/scripts/templates/operator.py | 63 ---------------------------- release/scripts/templates/operator_export.py | 53 +++++++++++++++++++++++ 2 files changed, 53 insertions(+), 63 deletions(-) delete mode 100644 release/scripts/templates/operator.py create mode 100644 release/scripts/templates/operator_export.py (limited to 'release/scripts/templates') diff --git a/release/scripts/templates/operator.py b/release/scripts/templates/operator.py deleted file mode 100644 index 822d888a96c..00000000000 --- a/release/scripts/templates/operator.py +++ /dev/null @@ -1,63 +0,0 @@ -import bpy - -def write_some_data(context, filepath, use_some_setting): - print("running write_some_data...") - pass - -from bpy.props import * - -class ExportSomeData(bpy.types.Operator): - '''This appiers in the tooltip of the operator and in the generated docs.''' - bl_idname = "export.some_data" # this is important since its how bpy.ops.export.some_data is constructed - bl_label = "Export Some Data" - - # List of operator properties, the attributes will be assigned - # to the class instance from the operator settings before calling. - - # TODO, add better example props - filepath = StringProperty(name="File Path", description="File path used for exporting the PLY file", maxlen= 1024, default= "") - use_setting = BoolProperty(name="Example Boolean", description="Example Tooltip", default= True) - - type = bpy.props.EnumProperty(items=(('OPT_A', "First Option", "Description one"), ('OPT_B', "Second Option", "Description two.")), - name="Example Enum", - description="Choose between two items", - default='OPT_A') - - @classmethod - def poll(cls, context): - return context.active_object != None - - def execute(self, context): - - # # Bug, currently isnt working - #if not self.is_property_set("filepath"): - # raise Exception("filename not set") - - write_some_data(self.filepath, context, self.use_setting) - - return {'FINISHED'} - - def invoke(self, context, event): - wm = context.window_manager - - if True: - # File selector - wm.add_fileselect(self) # will run self.execute() - return {'RUNNING_MODAL'} - elif True: - # search the enum - wm.invoke_search_popup(self) - return {'RUNNING_MODAL'} - elif False: - # Redo popup - return wm.invoke_props_popup(self, event) # - elif False: - return self.execute(context) - - -# Only needed if you want to add into a dynamic menu -menu_func = lambda self, context: self.layout.operator("export.some_data", text="Example Exporter...") -bpy.types.INFO_MT_file_export.append(menu_func) - -if __name__ == "__main__": - bpy.ops.export.some_data('INVOKE_DEFAULT', filepath="/tmp/test.ply") diff --git a/release/scripts/templates/operator_export.py b/release/scripts/templates/operator_export.py new file mode 100644 index 00000000000..ef8acfeb3a3 --- /dev/null +++ b/release/scripts/templates/operator_export.py @@ -0,0 +1,53 @@ +import bpy + +def write_some_data(context, filepath, use_some_setting): + print("running write_some_data...") + f = open(filepath, 'w') + f.write("Hello World %s" % use_some_setting) + f.close() + + return {'FINISHED'} + + +# ExportHelper is a helper class, defines filename and +# invoke() function which calls the file selector. +from io_utils import ExportHelper + +from bpy.props import * + + +class ExportSomeData(bpy.types.Operator, ExportHelper): + '''This appiers in the tooltip of the operator and in the generated docs.''' + bl_idname = "export.some_data" # this is important since its how bpy.ops.export.some_data is constructed + bl_label = "Export Some Data" + + # ExportHelper mixin class uses this + filename_ext = ".txt" + + filter_glob = StringProperty(default="*.txt", options={'HIDDEN'}) + + # List of operator properties, the attributes will be assigned + # to the class instance from the operator settings before calling. + use_setting = BoolProperty(name="Example Boolean", description="Example Tooltip", default= True) + + type = bpy.props.EnumProperty(items=(('OPT_A', "First Option", "Description one"), ('OPT_B', "Second Option", "Description two.")), + name="Example Enum", + description="Choose between two items", + default='OPT_A') + + @classmethod + def poll(cls, context): + return context.active_object != None + + def execute(self, context): + return write_some_data(context, self.filepath, self.use_setting) + + +# Only needed if you want to add into a dynamic menu +def menu_func_export(self, context): + self.layout.operator(ExportSomeData.bl_idname, text="Text Export Operator") + +bpy.types.INFO_MT_file_export.append(menu_func_export) + +if __name__ == "__main__": + bpy.ops.export.some_data('INVOKE_DEFAULT') -- cgit v1.2.3