diff options
author | Campbell Barton <ideasman42@gmail.com> | 2012-04-17 09:47:32 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2012-04-17 09:47:32 +0400 |
commit | 0de1ed57876edb5324a08e79f4d920919f9f5df9 (patch) | |
tree | 4207babd27730d524cfad69e6be1183b5c26d9b7 | |
parent | 348622360752916f9b776597e846cd2af260cdb9 (diff) |
add import operator python template.
-rw-r--r-- | release/scripts/templates/operator_file_export.py (renamed from release/scripts/templates/operator_export.py) | 11 | ||||
-rw-r--r-- | release/scripts/templates/operator_file_import.py | 79 |
2 files changed, 85 insertions, 5 deletions
diff --git a/release/scripts/templates/operator_export.py b/release/scripts/templates/operator_file_export.py index 3a7040ae2d2..7703d14de67 100644 --- a/release/scripts/templates/operator_export.py +++ b/release/scripts/templates/operator_file_export.py @@ -3,7 +3,7 @@ import bpy def write_some_data(context, filepath, use_some_setting): print("running write_some_data...") - f = open(filepath, 'w') + f = open(filepath, 'w', encoding='utf-8') f.write("Hello World %s" % use_some_setting) f.close() @@ -14,11 +14,12 @@ def write_some_data(context, filepath, use_some_setting): # invoke() function which calls the file selector. from bpy_extras.io_utils import ExportHelper from bpy.props import StringProperty, BoolProperty, EnumProperty +from bpy.types import Operator -class ExportSomeData(bpy.types.Operator, ExportHelper): - '''This appears 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 +class ExportSomeData(Operator, ExportHelper): + '''This appears in the tooltip of the operator and in the generated docs''' + bl_idname = "export_test.some_data" # important since its how bpy.ops.import_test.some_data is constructed bl_label = "Export Some Data" # ExportHelper mixin class uses this @@ -72,4 +73,4 @@ if __name__ == "__main__": register() # test call - bpy.ops.export.some_data('INVOKE_DEFAULT') + bpy.ops.export_test.some_data('INVOKE_DEFAULT') diff --git a/release/scripts/templates/operator_file_import.py b/release/scripts/templates/operator_file_import.py new file mode 100644 index 00000000000..10a054cf1df --- /dev/null +++ b/release/scripts/templates/operator_file_import.py @@ -0,0 +1,79 @@ +import bpy + + +def read_some_data(context, filepath, use_some_setting): + print("running read_some_data...") + f = open(filepath, 'r', encoding='utf-8') + data = f.read() + f.close() + + # would normally load the data hare + print(data) + + return {'FINISHED'} + + +# ImportHelper is a helper class, defines filename and +# invoke() function which calls the file selector. +from bpy_extras.io_utils import ImportHelper +from bpy.props import StringProperty, BoolProperty, EnumProperty +from bpy.types import Operator + + +class ImportSomeData(Operator, ImportHelper): + '''This appears in the tooltip of the operator and in the generated docs''' + bl_idname = "import_test.some_data" # important since its how bpy.ops.import_test.some_data is constructed + bl_label = "Import Some Data" + + # ImportHelper 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 = EnumProperty( + name="Example Enum", + description="Choose between two items", + items=(('OPT_A', "First Option", "Description one"), + ('OPT_B', "Second Option", "Description two")), + default='OPT_A', + ) + + @classmethod + def poll(cls, context): + return context.active_object is not None + + def execute(self, context): + return read_some_data(context, self.filepath, self.use_setting) + + +# Only needed if you want to add into a dynamic menu +def menu_func_import(self, context): + self.layout.operator(ImportSomeData.bl_idname, text="Text Import Operator") + + +def register(): + bpy.utils.register_class(ImportSomeData) + bpy.types.INFO_MT_file_import.append(menu_func_import) + + +def unregister(): + bpy.utils.unregister_class(ImportSomeData) + bpy.types.INFO_MT_file_import.remove(menu_func_import) + + +if __name__ == "__main__": + register() + + # test call + bpy.ops.import_test.some_data('INVOKE_DEFAULT') |