[Bf-blender-cvs] [90e7a52] alembic_basic_io: Import: report a message in the UI in case opening a file fails.

Kévin Dietrich noreply at git.blender.org
Fri Jul 1 14:59:30 CEST 2016


Commit: 90e7a527cc4b77ec716e0a537b207077e338708b
Author: Kévin Dietrich
Date:   Fri Jul 1 14:58:58 2016 +0200
Branches: alembic_basic_io
https://developer.blender.org/rB90e7a527cc4b77ec716e0a537b207077e338708b

Import: report a message in the UI in case opening a file fails.

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

M	source/blender/alembic/intern/alembic_capi.cc

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

diff --git a/source/blender/alembic/intern/alembic_capi.cc b/source/blender/alembic/intern/alembic_capi.cc
index e4508e3..c07d41d 100644
--- a/source/blender/alembic/intern/alembic_capi.cc
+++ b/source/blender/alembic/intern/alembic_capi.cc
@@ -416,6 +416,11 @@ static void visit_object(const IObject &object,
 	}
 }
 
+enum {
+	ABC_NO_ERROR = 0,
+	ABC_ARCHIVE_FAIL,
+};
+
 struct ImportJobData {
 	Main *bmain;
 	Scene *scene;
@@ -429,6 +434,8 @@ struct ImportJobData {
 	short *stop;
 	short *do_update;
 	float *progress;
+
+	char error_code;
 };
 
 static void import_startjob(void *user_data, short *stop, short *do_update, float *progress)
@@ -442,6 +449,7 @@ static void import_startjob(void *user_data, short *stop, short *do_update, floa
 	IArchive *archive = open_archive(data->filename);
 
 	if (!archive || !archive->valid()) {
+		data->error_code = ABC_ARCHIVE_FAIL;
 		return;
 	}
 
@@ -574,6 +582,15 @@ static void import_endjob(void *user_data)
 		BLI_ghash_free(data->parent_map, NULL, NULL);
 	}
 
+	switch (data->error_code) {
+		default:
+		case ABC_NO_ERROR:
+			break;
+		case ABC_ARCHIVE_FAIL:
+			WM_report(RPT_ERROR, "Could not open Alembic archive for reading! See console for detail.");
+			break;
+	}
+
 	WM_main_add_notifier(NC_SCENE | ND_FRAME, data->scene);
 }
 
@@ -598,8 +615,8 @@ void ABC_import(bContext *C, const char *filepath, float scale, bool is_sequence
 	job->settings.sequence_len = sequence_len;
 	job->settings.offset = offset;
 	job->parent_map = NULL;
-
 	G.is_break = false;
+	job->error_code = ABC_NO_ERROR;
 
 	wmJob *wm_job = WM_jobs_get(CTX_wm_manager(C),
 	                            CTX_wm_window(C),




More information about the Bf-blender-cvs mailing list