[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