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


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to