[Bf-blender-cvs] [196a5116aa2] master: Fix T59164: Run Alembic in background when INVOKE'd

Sybren A. Stüvel noreply at git.blender.org
Fri Dec 28 17:53:52 CET 2018


Commit: 196a5116aa2f7a3b46daf2047e957b43bee26083
Author: Sybren A. Stüvel
Date:   Fri Dec 28 15:37:53 2018 +0100
Branches: master
https://developer.blender.org/rB196a5116aa2f7a3b46daf2047e957b43bee26083

Fix T59164: Run Alembic in background when INVOKE'd

This is similar to what physics baking is doing: invoking the operator
runs a background job, whereas executing blocks. This makes Python
scripts calling the Alembic import/export operators more predictable.

For backwardward compatibility with existing Python code the
`as_background_job` parameter still exists, which overrides the
behaviour chosen by INVOKE/EXECUTE.

Reviewers: brecht

Reviewed by: brecht

Differential revision: https://developer.blender.org/D4137/new/

===================================================================

M	source/blender/editors/io/io_alembic.c

===================================================================

diff --git a/source/blender/editors/io/io_alembic.c b/source/blender/editors/io/io_alembic.c
index 8e446c73eab..38e0ec0cb3a 100644
--- a/source/blender/editors/io/io_alembic.c
+++ b/source/blender/editors/io/io_alembic.c
@@ -77,6 +77,10 @@
 
 static int wm_alembic_export_invoke(bContext *C, wmOperator *op, const wmEvent *event)
 {
+	if (!RNA_struct_property_is_set(op->ptr, "as_background_job")) {
+		RNA_boolean_set(op->ptr, "as_background_job", true);
+	}
+
 	RNA_boolean_set(op->ptr, "init_scene_frame_range", true);
 
 	if (!RNA_struct_property_is_set(op->ptr, "filepath")) {
@@ -388,8 +392,10 @@ void WM_OT_alembic_export(wmOperatorType *ot)
 	RNA_def_boolean(ot->srna, "export_hair", 1, "Export Hair", "Exports hair particle systems as animated curves");
 	RNA_def_boolean(ot->srna, "export_particles", 1, "Export Particles", "Exports non-hair particle systems");
 
-	RNA_def_boolean(ot->srna, "as_background_job", true, "Run as Background Job",
-	                "Enable this to run the import in the background, disable to block Blender while importing");
+	RNA_def_boolean(ot->srna, "as_background_job", false, "Run as Background Job",
+	                "Enable this to run the import in the background, disable to block Blender while importing. "
+	                "This option is deprecated; EXECUTE this operator to run in the foreground, and INVOKE it "
+	                "to run as a background job");
 
 	/* This dummy prop is used to check whether we need to init the start and
 	 * end frame values to that of the scene's, otherwise they are reset at
@@ -522,6 +528,17 @@ static void wm_alembic_import_draw(bContext *UNUSED(C), wmOperator *op)
 	ui_alembic_import_settings(op->layout, &ptr);
 }
 
+
+/* op->invoke, opens fileselect if path property not set, otherwise executes */
+static int wm_alembic_import_invoke(bContext *C, wmOperator *op, const wmEvent *event)
+{
+	if (!RNA_struct_property_is_set(op->ptr, "as_background_job")) {
+		RNA_boolean_set(op->ptr, "as_background_job", true);
+	}
+	return WM_operator_filesel(C, op, event);
+}
+
+
 static int wm_alembic_import_exec(bContext *C, wmOperator *op)
 {
 	if (!RNA_struct_property_is_set(op->ptr, "filepath")) {
@@ -568,7 +585,7 @@ void WM_OT_alembic_import(wmOperatorType *ot)
 	ot->description = "Load an Alembic archive";
 	ot->idname = "WM_OT_alembic_import";
 
-	ot->invoke = WM_operator_filesel;
+	ot->invoke = wm_alembic_import_invoke;
 	ot->exec = wm_alembic_import_exec;
 	ot->poll = WM_operator_winactive;
 	ot->ui = wm_alembic_import_draw;
@@ -591,8 +608,10 @@ void WM_OT_alembic_import(wmOperatorType *ot)
 	RNA_def_boolean(ot->srna, "is_sequence", false, "Is Sequence",
 	                "Set to true if the cache is split into separate files");
 
-	RNA_def_boolean(ot->srna, "as_background_job", true, "Run as Background Job",
-	                "Enable this to run the export in the background, disable to block Blender while exporting");
+	RNA_def_boolean(ot->srna, "as_background_job", false, "Run as Background Job",
+	                "Enable this to run the export in the background, disable to block Blender while exporting. "
+	                "This option is deprecated; EXECUTE this operator to run in the foreground, and INVOKE it "
+	                "to run as a background job");
 }
 
 #endif



More information about the Bf-blender-cvs mailing list