[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33085] trunk/blender/release/scripts: bugfix [#24696] Export OBJ - Selection Only toggle button has the wrong default state.
Campbell Barton
ideasman42 at gmail.com
Mon Nov 15 14:11:40 CET 2010
Revision: 33085
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33085
Author: campbellbarton
Date: 2010-11-15 14:11:40 +0100 (Mon, 15 Nov 2010)
Log Message:
-----------
bugfix [#24696] Export OBJ - Selection Only toggle button has the wrong default state.
Added convenience function to operators, 'as_keywords()', so operator settings can be passed directly to a function as keyword arguments.
The problem in this case was that dictionary access to operator properties was not returning rna-property defaults, so as_keywords() ensures all defaults are set.
Modified Paths:
--------------
trunk/blender/release/scripts/modules/bpy_types.py
trunk/blender/release/scripts/op/io_anim_bvh/__init__.py
trunk/blender/release/scripts/op/io_mesh_ply/__init__.py
trunk/blender/release/scripts/op/io_scene_3ds/__init__.py
trunk/blender/release/scripts/op/io_scene_fbx/__init__.py
trunk/blender/release/scripts/op/io_scene_obj/__init__.py
trunk/blender/release/scripts/op/io_scene_x3d/__init__.py
trunk/blender/release/scripts/op/io_shape_mdd/__init__.py
Modified: trunk/blender/release/scripts/modules/bpy_types.py
===================================================================
--- trunk/blender/release/scripts/modules/bpy_types.py 2010-11-15 12:05:11 UTC (rev 33084)
+++ trunk/blender/release/scripts/modules/bpy_types.py 2010-11-15 13:11:40 UTC (rev 33085)
@@ -660,7 +660,13 @@
return delattr(properties, attr)
return super().__delattr__(attr)
+ def as_keywords(self, ignore=()):
+ """ Return a copy of the properties as a dictionary.
+ """
+ ignore = ignore + ("rna_type",)
+ return {attr: getattr(self, attr) for attr in self.properties.rna_type.properties.keys() if attr not in ignore}
+
class Macro(StructRNA, metaclass=OrderedMeta):
# bpy_types is imported before ops is defined
# so we have to do a local import on each run
Modified: trunk/blender/release/scripts/op/io_anim_bvh/__init__.py
===================================================================
--- trunk/blender/release/scripts/op/io_anim_bvh/__init__.py 2010-11-15 12:05:11 UTC (rev 33084)
+++ trunk/blender/release/scripts/op/io_anim_bvh/__init__.py 2010-11-15 13:11:40 UTC (rev 33085)
@@ -57,13 +57,7 @@
def execute(self, context):
import io_anim_bvh.import_bvh
- return io_anim_bvh.import_bvh.load(self, context,
- filepath=self.filepath,
- rotate_mode=self.rotate_mode,
- scale=self.scale,
- use_cyclic=self.use_cyclic,
- frame_start=self.frame_start,
- )
+ return io_anim_bvh.import_bvh.load(self, context, **self.as_keywords(ignore=("filter_glob",)))
def menu_func(self, context):
Modified: trunk/blender/release/scripts/op/io_mesh_ply/__init__.py
===================================================================
--- trunk/blender/release/scripts/op/io_mesh_ply/__init__.py 2010-11-15 12:05:11 UTC (rev 33084)
+++ trunk/blender/release/scripts/op/io_mesh_ply/__init__.py 2010-11-15 13:11:40 UTC (rev 33085)
@@ -47,7 +47,7 @@
filepath = self.filepath
filepath = bpy.path.ensure_ext(filepath, self.filename_ext)
import io_mesh_ply.export_ply
- return io_mesh_ply.export_ply.save(self, context, **self.properties)
+ return io_mesh_ply.export_ply.save(self, context, **self.as_keywords(ignore=("check_existing",)))
def draw(self, context):
layout = self.layout
Modified: trunk/blender/release/scripts/op/io_scene_3ds/__init__.py
===================================================================
--- trunk/blender/release/scripts/op/io_scene_3ds/__init__.py 2010-11-15 12:05:11 UTC (rev 33084)
+++ trunk/blender/release/scripts/op/io_scene_3ds/__init__.py 2010-11-15 13:11:40 UTC (rev 33085)
@@ -44,7 +44,7 @@
def execute(self, context):
import io_scene_3ds.import_3ds
- return io_scene_3ds.import_3ds.load(self, context, **self.properties)
+ return io_scene_3ds.import_3ds.load(self, context, **self.as_keywords(ignore=("filter_glob",)))
class Export3DS(bpy.types.Operator, ExportHelper):
@@ -56,7 +56,7 @@
def execute(self, context):
import io_scene_3ds.export_3ds
- return io_scene_3ds.export_3ds.save(self, context, **self.properties)
+ return io_scene_3ds.export_3ds.save(self, context, **self.as_keywords(ignore=("check_existing",)))
# Add to a menu
Modified: trunk/blender/release/scripts/op/io_scene_fbx/__init__.py
===================================================================
--- trunk/blender/release/scripts/op/io_scene_fbx/__init__.py 2010-11-15 12:05:11 UTC (rev 33084)
+++ trunk/blender/release/scripts/op/io_scene_fbx/__init__.py 2010-11-15 13:11:40 UTC (rev 33085)
@@ -52,7 +52,7 @@
EXP_ARMATURE = BoolProperty(name="Armatures", description="Export armature objects", default=True)
EXP_MESH = BoolProperty(name="Meshes", description="Export mesh objects", default=True)
EXP_MESH_APPLY_MOD = BoolProperty(name="Modifiers", description="Apply modifiers to mesh objects", default=True)
- EXP_MESH_HQ_NORMALS = BoolProperty(name="HQ Normals", description="Generate high quality normals", default=True)
+# EXP_MESH_HQ_NORMALS = BoolProperty(name="HQ Normals", description="Generate high quality normals", default=True)
EXP_IMAGE_COPY = BoolProperty(name="Copy Image Files", description="Copy image files to the destination path", default=False)
# armature animation
ANIM_ENABLE = BoolProperty(name="Enable Animation", description="Export keyframe animation", default=True)
@@ -86,25 +86,7 @@
GLOBAL_MATRIX = mtx4_z90n * GLOBAL_MATRIX
import io_scene_fbx.export_fbx
- return io_scene_fbx.export_fbx.save(self, context, self.filepath,
- GLOBAL_MATRIX=GLOBAL_MATRIX,
- EXP_OBS_SELECTED=self.EXP_OBS_SELECTED,
- EXP_MESH=self.EXP_MESH,
- EXP_MESH_APPLY_MOD=self.EXP_MESH_APPLY_MOD,
- EXP_ARMATURE=self.EXP_ARMATURE,
- EXP_LAMP=self.EXP_LAMP,
- EXP_CAMERA=self.EXP_CAMERA,
- EXP_EMPTY=self.EXP_EMPTY,
- EXP_IMAGE_COPY=self.EXP_IMAGE_COPY,
- ANIM_ENABLE=self.ANIM_ENABLE,
- ANIM_OPTIMIZE=self.ANIM_OPTIMIZE,
- ANIM_OPTIMIZE_PRECISSION=self.ANIM_OPTIMIZE_PRECISSION,
- ANIM_ACTION_ALL=self.ANIM_ACTION_ALL,
- BATCH_ENABLE=self.BATCH_ENABLE,
- BATCH_GROUP=self.BATCH_GROUP,
- BATCH_FILE_PREFIX=self.BATCH_FILE_PREFIX,
- BATCH_OWN_DIR=self.BATCH_OWN_DIR,
- )
+ return io_scene_fbx.export_fbx.save(self, context, **self.as_keywords(ignore=("TX_XROT90", "TX_YROT90", "TX_ZROT90", "TX_SCALE", "check_existing")))
def menu_func(self, context):
Modified: trunk/blender/release/scripts/op/io_scene_obj/__init__.py
===================================================================
--- trunk/blender/release/scripts/op/io_scene_obj/__init__.py 2010-11-15 12:05:11 UTC (rev 33084)
+++ trunk/blender/release/scripts/op/io_scene_obj/__init__.py 2010-11-15 13:11:40 UTC (rev 33085)
@@ -56,24 +56,9 @@
def execute(self, context):
# print("Selected: " + context.active_object.name)
import io_scene_obj.import_obj
- return io_scene_obj.import_obj.load(self, context, **self.properties)
- '''
- load_obj(self.filepath,
- context,
- self.CLAMP_SIZE,
- self.CREATE_FGONS,
- self.CREATE_SMOOTH_GROUPS,
- self.CREATE_EDGES,
- self.SPLIT_OBJECTS,
- self.SPLIT_GROUPS,
- self.ROTATE_X90,
- self.IMAGE_SEARCH,
- self.POLYGROUPS)
- '''
+ return io_scene_obj.import_obj.load(self, context, **self.as_keywords(ignore=("filter_glob",)))
- return {'FINISHED'}
-
class ExportOBJ(bpy.types.Operator, ExportHelper):
'''Save a Wavefront OBJ File'''
@@ -114,7 +99,7 @@
def execute(self, context):
import io_scene_obj.export_obj
- return io_scene_obj.export_obj.save(self, context, **self.properties)
+ return io_scene_obj.export_obj.save(self, context, **self.as_keywords(ignore=("check_existing",)))
def menu_func_import(self, context):
Modified: trunk/blender/release/scripts/op/io_scene_x3d/__init__.py
===================================================================
--- trunk/blender/release/scripts/op/io_scene_x3d/__init__.py 2010-11-15 12:05:11 UTC (rev 33084)
+++ trunk/blender/release/scripts/op/io_scene_x3d/__init__.py 2010-11-15 13:11:40 UTC (rev 33085)
@@ -41,7 +41,7 @@
def execute(self, context):
import io_scene_x3d.export_x3d
- return io_scene_x3d.export_x3d.save(self, context, **self.properties)
+ return io_scene_x3d.export_x3d.save(self, context, **self.as_keywords(ignore=("check_existing",)))
def menu_func(self, context):
Modified: trunk/blender/release/scripts/op/io_shape_mdd/__init__.py
===================================================================
--- trunk/blender/release/scripts/op/io_shape_mdd/__init__.py 2010-11-15 12:05:11 UTC (rev 33084)
+++ trunk/blender/release/scripts/op/io_shape_mdd/__init__.py 2010-11-15 13:11:40 UTC (rev 33085)
@@ -55,7 +55,7 @@
self.frame_start = scene.frame_current
import io_shape_mdd.import_mdd
- return io_shape_mdd.import_mdd.load(self, context, **self.properties)
+ return io_shape_mdd.import_mdd.load(self, context, **self.as_keywords(ignore=("filter_glob",)))
class ExportMDD(bpy.types.Operator, ExportHelper):
'''Animated mesh to MDD vertex keyframe file'''
@@ -93,7 +93,7 @@
self.fps = scene.render.fps
import io_shape_mdd.export_mdd
- return io_shape_mdd.export_mdd.save(self, context, **self.properties)
+ return io_shape_mdd.export_mdd.save(self, context, **self.as_keywords(ignore=("check_existing",)))
def menu_func_import(self, context):
More information about the Bf-blender-cvs
mailing list