cleanup the operator template and rename to operator_export
authorCampbell Barton <ideasman42@gmail.com>
Wed, 17 Nov 2010 07:00:14 +0000 (07:00 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Wed, 17 Nov 2010 07:00:14 +0000 (07:00 +0000)
release/scripts/templates/operator.py [deleted file]
release/scripts/templates/operator_export.py [new file with mode: 0644]

diff --git a/release/scripts/templates/operator.py b/release/scripts/templates/operator.py
deleted file mode 100644 (file)
index 822d888..0000000
+++ /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 (file)
index 0000000..ef8acfe
--- /dev/null
@@ -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')