[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [27827] trunk/blender/source/blender: Fix [#21083] Collada exporter defaults to ".blend" extension...

Matt Ebb matt at mke3.net
Mon Mar 29 10:33:35 CEST 2010


Revision: 27827
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=27827
Author:   broken
Date:     2010-03-29 10:33:35 +0200 (Mon, 29 Mar 2010)

Log Message:
-----------
Fix [#21083] Collada exporter defaults to ".blend" extension...

Also added a filter category for COLLADA files to the file selector.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_file/file_draw.c
    trunk/blender/source/blender/editors/space_file/filelist.c
    trunk/blender/source/blender/editors/space_file/filesel.c
    trunk/blender/source/blender/makesdna/DNA_space_types.h
    trunk/blender/source/blender/windowmanager/intern/wm_operators.c

Modified: trunk/blender/source/blender/editors/space_file/file_draw.c
===================================================================
--- trunk/blender/source/blender/editors/space_file/file_draw.c	2010-03-29 08:27:04 UTC (rev 27826)
+++ trunk/blender/source/blender/editors/space_file/file_draw.c	2010-03-29 08:33:35 UTC (rev 27827)
@@ -310,6 +310,8 @@
 		return ICON_FILE_FONT;
 	else if (file->flags & BTXFILE) 
 		return ICON_FILE_BLANK;
+	else if (file->flags & COLLADAFILE) 
+		return ICON_FILE_BLANK;
 	else
 		return ICON_FILE_BLANK;
 }

Modified: trunk/blender/source/blender/editors/space_file/filelist.c
===================================================================
--- trunk/blender/source/blender/editors/space_file/filelist.c	2010-03-29 08:27:04 UTC (rev 27826)
+++ trunk/blender/source/blender/editors/space_file/filelist.c	2010-03-29 08:33:35 UTC (rev 27827)
@@ -841,6 +841,8 @@
 				file->flags |= FTFONTFILE;			
 		} else if(BLI_testextensie(file->relname, ".btx")) {
 				file->flags |= BTXFILE;
+		} else if(BLI_testextensie(file->relname, ".dae")) {
+			file->flags |= COLLADAFILE;
 		} else if (has_quicktime){
 			if(		BLI_testextensie(file->relname, ".int")
 				||  BLI_testextensie(file->relname, ".inta")

Modified: trunk/blender/source/blender/editors/space_file/filesel.c
===================================================================
--- trunk/blender/source/blender/editors/space_file/filesel.c	2010-03-29 08:27:04 UTC (rev 27826)
+++ trunk/blender/source/blender/editors/space_file/filesel.c	2010-03-29 08:33:35 UTC (rev 27827)
@@ -158,6 +158,8 @@
 			params->filter |= RNA_boolean_get(op->ptr, "filter_folder") ? FOLDERFILE : 0;
 		if(RNA_struct_find_property(op->ptr, "filter_btx"))
 			params->filter |= RNA_boolean_get(op->ptr, "filter_btx") ? BTXFILE : 0;
+		if(RNA_struct_find_property(op->ptr, "filter_collada"))
+			params->filter |= RNA_boolean_get(op->ptr, "filter_collada") ? COLLADAFILE : 0;
 		if (params->filter != 0)
 			params->flag |= FILE_FILTER;
 

Modified: trunk/blender/source/blender/makesdna/DNA_space_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_space_types.h	2010-03-29 08:27:04 UTC (rev 27826)
+++ trunk/blender/source/blender/makesdna/DNA_space_types.h	2010-03-29 08:33:35 UTC (rev 27827)
@@ -669,19 +669,20 @@
 #define FILE_GROUP_INSTANCE	1024
 
 /* files in filesel list: 2=ACTIVE  */
-#define EDITING				1
-#define ACTIVE				2
-#define BLENDERFILE			4
-#define PSXFILE				8
-#define IMAGEFILE			16
-#define MOVIEFILE			32
-#define PYSCRIPTFILE		64
-#define FTFONTFILE			128
-#define SOUNDFILE			256
-#define TEXTFILE			512
-#define MOVIEFILE_ICON		1024 /* movie file that preview can't load */
-#define FOLDERFILE			2048 /* represents folders for filtering */
-#define BTXFILE				4096
+#define EDITING				(1<<0)
+#define ACTIVE				(1<<1)
+#define BLENDERFILE			(1<<2)
+#define PSXFILE				(1<<3)
+#define IMAGEFILE			(1<<4)
+#define MOVIEFILE			(1<<5)
+#define PYSCRIPTFILE		(1<<6)
+#define FTFONTFILE			(1<<7)
+#define SOUNDFILE			(1<<8)
+#define TEXTFILE			(1<<9)
+#define MOVIEFILE_ICON		(1<<10) /* movie file that preview can't load */
+#define FOLDERFILE			(1<<11) /* represents folders for filtering */
+#define BTXFILE				(1<<12)
+#define COLLADAFILE			(1<<13)
 
 /* SpaceImage->dt_uv */
 #define SI_UVDT_OUTLINE	0

Modified: trunk/blender/source/blender/windowmanager/intern/wm_operators.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_operators.c	2010-03-29 08:27:04 UTC (rev 27826)
+++ trunk/blender/source/blender/windowmanager/intern/wm_operators.c	2010-03-29 08:33:35 UTC (rev 27827)
@@ -813,6 +813,8 @@
 	RNA_def_property_flag(prop, PROP_HIDDEN);
 	prop= RNA_def_boolean(ot->srna, "filter_btx", (filter & BTXFILE), "Filter btx files", "");
 	RNA_def_property_flag(prop, PROP_HIDDEN);
+	prop= RNA_def_boolean(ot->srna, "filter_collada", (filter & COLLADAFILE), "Filter COLLADA files", "");
+	RNA_def_property_flag(prop, PROP_HIDDEN);
 	prop= RNA_def_boolean(ot->srna, "filter_folder", (filter & FOLDERFILE), "Filter folders", "");
 	RNA_def_property_flag(prop, PROP_HIDDEN);
 
@@ -1827,14 +1829,18 @@
 
 static int wm_collada_export_invoke(bContext *C, wmOperator *op, wmEvent *event)
 {
-	//char name[FILE_MAX];
-	//BLI_strncpy(name, G.sce, FILE_MAX);
-	//untitled(name);
-
+	char *path;
 	/* RNA_string_set(op->ptr, "path", "/tmp/test.dae"); */
 	
+	if(!RNA_property_is_set(op->ptr, "path")) {
+		path = BLI_replacestr(G.sce, ".blend", ".dae");
+		RNA_string_set(op->ptr, "path", path);
+	}
+	
 	WM_event_add_fileselect(C, op);
-
+	
+	if (path) MEM_freeN(path);
+	
 	return OPERATOR_RUNNING_MODAL;
 }
 
@@ -1843,18 +1849,14 @@
 {
 	char filename[FILE_MAX];
 	
-	if(RNA_property_is_set(op->ptr, "path"))
-		RNA_string_get(op->ptr, "path", filename);
-	else {
-		BLI_strncpy(filename, G.sce, FILE_MAX);
-		untitled(filename);
+	if(!RNA_property_is_set(op->ptr, "path")) {
+		BKE_report(op->reports, RPT_ERROR, "No filename given");
+		return OPERATOR_CANCELLED;
 	}
 	
-	//WM_write_file(C, filename, op->reports);
+	RNA_string_get(op->ptr, "path", filename);
 	collada_export(CTX_data_scene(C), filename);
 	
-	/* WM_event_add_notifier(C, NC_WM|ND_FILESAVE, NULL); */
-
 	return OPERATOR_FINISHED;
 }
 
@@ -1867,37 +1869,22 @@
 	ot->exec= wm_collada_export_exec;
 	ot->poll= WM_operator_winactive;
 	
-	ot->flag= 0;
-	
-	RNA_def_property(ot->srna, "path", PROP_STRING, PROP_FILEPATH);
+	WM_operator_properties_filesel(ot, FOLDERFILE|COLLADAFILE, FILE_BLENDER, FILE_SAVE);
 }
 
-static int wm_collada_import_invoke(bContext *C, wmOperator *op, wmEvent *event)
-{
-	/* RNA_string_set(op->ptr, "path", "/tmp/test.dae"); */
-	
-	WM_event_add_fileselect(C, op);
-
-	return OPERATOR_RUNNING_MODAL;
-}
-
 /* function used for WM_OT_save_mainfile too */
 static int wm_collada_import_exec(bContext *C, wmOperator *op)
 {
 	char filename[FILE_MAX];
 	
-	if(RNA_property_is_set(op->ptr, "path"))
-		RNA_string_get(op->ptr, "path", filename);
-	else {
-		BLI_strncpy(filename, G.sce, FILE_MAX);
-		untitled(filename);
+	if(!RNA_property_is_set(op->ptr, "path")) {
+		BKE_report(op->reports, RPT_ERROR, "No filename given");
+		return OPERATOR_CANCELLED;
 	}
-	
-	//WM_write_file(C, filename, op->reports);
+
+	RNA_string_get(op->ptr, "path", filename);
 	collada_import(C, filename);
 	
-	/* WM_event_add_notifier(C, NC_WM|ND_FILESAVE, NULL); */
-
 	return OPERATOR_FINISHED;
 }
 
@@ -1906,13 +1893,11 @@
 	ot->name= "Import COLLADA";
 	ot->idname= "WM_OT_collada_import";
 	
-	ot->invoke= wm_collada_import_invoke;
+	ot->invoke= WM_operator_filesel;
 	ot->exec= wm_collada_import_exec;
 	ot->poll= WM_operator_winactive;
 	
-	ot->flag= 0;
-	
-	RNA_def_property(ot->srna, "path", PROP_STRING, PROP_FILEPATH);
+	WM_operator_properties_filesel(ot, FOLDERFILE|COLLADAFILE, FILE_BLENDER, FILE_OPENFILE);
 }
 
 #endif





More information about the Bf-blender-cvs mailing list