It seems that PROP_IMAGEPATH only exists so the file selector can have different filter settings and the icon can show different?
If thats the case I don't think this is a good place to add this. For a data api its best to keep data types to a minimum which also avoids bugs caused by someone checking for a file type but forgetting about image types. Seems this is only for display, in all other ways image paths should be treated the same as any other path. It also doesn't extend well, we could have SOUND, BLENDFILE, FONT, PLUGIN subtypes too... For now Id even prefer something quick/simple, even setting the file-selector-filter based on the filepath given - so if a .png is selected it can know its an image type and setup the filter accordingly, same for sound, fonts etc. If you rather have this as a part of rna we could have a datatype enum. On Mon, Jul 26, 2010 at 11:37 AM, Nicholas Bishop <[email protected]> wrote: > Revision: 30763 > > http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30763 > Author: nicholasbishop > Date: 2010-07-26 20:37:47 +0200 (Mon, 26 Jul 2010) > > Log Message: > ----------- > * Added a new RNA subtype, PROP_IMAGEPATH. It's the same as PROP_FILEPATH, > but for images only. > * Changed UI code to display image browser for PROP_IMAGEPATH > * Set the icon_filepath RNA property for brushes to use PROP_IMAGEPATH > * Changed preview icon drawing to ignore unset icons > * Fixed const warnings in brush RNA > > Modified Paths: > -------------- > trunk/blender/source/blender/editors/interface/interface_layout.c > trunk/blender/source/blender/editors/interface/interface_widgets.c > trunk/blender/source/blender/makesrna/RNA_types.h > trunk/blender/source/blender/makesrna/intern/makesrna.c > trunk/blender/source/blender/makesrna/intern/rna_brush.c > trunk/blender/source/blender/python/intern/bpy_props.c > > Modified: trunk/blender/source/blender/editors/interface/interface_layout.c > =================================================================== > --- trunk/blender/source/blender/editors/interface/interface_layout.c > 2010-07-26 18:32:22 UTC (rev 30762) > +++ trunk/blender/source/blender/editors/interface/interface_layout.c > 2010-07-26 18:37:47 UTC (rev 30763) > @@ -508,12 +508,16 @@ > type= RNA_property_type(prop); > subtype= RNA_property_subtype(prop); > > - if(subtype == PROP_FILEPATH || subtype == PROP_DIRPATH) { > + if(subtype == PROP_FILEPATH || subtype == PROP_DIRPATH || subtype == > PROP_IMAGEPATH) { > uiBlockSetCurLayout(block, uiLayoutRow(sub, 1)); > uiDefAutoButR(block, ptr, prop, index, "", icon, x, y, > w-UI_UNIT_X, h); > > /* BUTTONS_OT_file_browse calls uiFileBrowseContextProperty */ > but= uiDefIconButO(block, BUT, "BUTTONS_OT_file_browse", > WM_OP_INVOKE_DEFAULT, ICON_FILESEL, x, y, UI_UNIT_X, h, NULL); > + if(subtype == PROP_IMAGEPATH) { > + RNA_boolean_set(uiButGetOperatorPtrRNA(but), > "filter_folder", 1); > + RNA_boolean_set(uiButGetOperatorPtrRNA(but), > "filter_image", 1); > + } > } > else if(subtype == PROP_DIRECTION) { > uiDefButR(block, BUT_NORMAL, 0, name, x, y, 100, 100, ptr, > RNA_property_identifier(prop), index, 0, 0, -1, -1, NULL); > > Modified: trunk/blender/source/blender/editors/interface/interface_widgets.c > =================================================================== > --- trunk/blender/source/blender/editors/interface/interface_widgets.c > 2010-07-26 18:32:22 UTC (rev 30762) > +++ trunk/blender/source/blender/editors/interface/interface_widgets.c > 2010-07-26 18:37:47 UTC (rev 30763) > @@ -748,6 +748,9 @@ > { > int w, h, x, y, size; > > + if(!icon) > + return; > + > w = rect->xmax - rect->xmin; > h = rect->ymax - rect->ymin; > size = MIN2(w, h); > > Modified: trunk/blender/source/blender/makesrna/RNA_types.h > =================================================================== > --- trunk/blender/source/blender/makesrna/RNA_types.h 2010-07-26 18:32:22 > UTC (rev 30762) > +++ trunk/blender/source/blender/makesrna/RNA_types.h 2010-07-26 18:37:47 > UTC (rev 30763) > @@ -98,6 +98,7 @@ > PROP_FILEPATH = 1, > PROP_DIRPATH = 2, > PROP_FILENAME = 3, > + PROP_IMAGEPATH = 4, > > /* numbers */ > PROP_UNSIGNED = 13, > > Modified: trunk/blender/source/blender/makesrna/intern/makesrna.c > =================================================================== > --- trunk/blender/source/blender/makesrna/intern/makesrna.c 2010-07-26 > 18:32:22 UTC (rev 30762) > +++ trunk/blender/source/blender/makesrna/intern/makesrna.c 2010-07-26 > 18:37:47 UTC (rev 30763) > @@ -1652,6 +1652,7 @@ > case PROP_FILEPATH: return "PROP_FILEPATH"; > case PROP_FILENAME: return "PROP_FILENAME"; > case PROP_DIRPATH: return "PROP_DIRPATH"; > + case PROP_IMAGEPATH: return "PROP_IMAGEPATH"; > case PROP_UNSIGNED: return "PROP_UNSIGNED"; > case PROP_PERCENTAGE: return "PROP_PERCENTAGE"; > case PROP_FACTOR: return "PROP_FACTOR"; > > Modified: trunk/blender/source/blender/makesrna/intern/rna_brush.c > =================================================================== > --- trunk/blender/source/blender/makesrna/intern/rna_brush.c 2010-07-26 > 18:32:22 UTC (rev 30762) > +++ trunk/blender/source/blender/makesrna/intern/rna_brush.c 2010-07-26 > 18:37:47 UTC (rev 30763) > @@ -39,7 +39,7 @@ > > #include "WM_types.h" > > -static const EnumPropertyItem prop_direction_items[]= { > +static EnumPropertyItem prop_direction_items[]= { > {0, "ADD", 0, "Add", "Add effect of brush"}, > {BRUSH_DIR_IN, "SUBTRACT", 0, "Subtract", "Subtract effect of brush"}, > {0, NULL, 0, NULL, NULL}}; > @@ -264,30 +264,30 @@ > > static EnumPropertyItem *rna_Brush_direction_itemf(bContext *C, PointerRNA > *ptr, int *free) > { > - static const EnumPropertyItem prop_default_items[]= { > + static EnumPropertyItem prop_default_items[]= { > {0, NULL, 0, NULL, NULL}}; > > - static const EnumPropertyItem prop_flatten_contrast_items[]= { > + static EnumPropertyItem prop_flatten_contrast_items[]= { > {0, "FLATTEN", 0, "Flatten", "Add effect of brush"}, > {BRUSH_DIR_IN, "CONTRAST", 0, "Contrast", "Subtract effect of > brush"}, > {0, NULL, 0, NULL, NULL}}; > > - static const EnumPropertyItem prop_fill_deepen_items[]= { > + static EnumPropertyItem prop_fill_deepen_items[]= { > {0, "FILL", 0, "Fill", "Add effect of brush"}, > {BRUSH_DIR_IN, "DEEPEN", 0, "Deepen", "Subtract effect of > brush"}, > {0, NULL, 0, NULL, NULL}}; > > - static const EnumPropertyItem prop_scrape_peaks_items[]= { > + static EnumPropertyItem prop_scrape_peaks_items[]= { > {0, "SCRAPE", 0, "Scrape", "Add effect of brush"}, > {BRUSH_DIR_IN, "PEAKS", 0, "Peaks", "Subtract effect of > brush"}, > {0, NULL, 0, NULL, NULL}}; > > - static const EnumPropertyItem prop_pinch_magnify_items[]= { > + static EnumPropertyItem prop_pinch_magnify_items[]= { > {0, "PINCH", 0, "Pinch", "Add effect of brush"}, > {BRUSH_DIR_IN, "MAGNIFY", 0, "Magnify", "Subtract effect of > brush"}, > {0, NULL, 0, NULL, NULL}}; > > - static const EnumPropertyItem prop_inflate_deflate_items[]= { > + static EnumPropertyItem prop_inflate_deflate_items[]= { > {0, "INFLATE", 0, "Inflate", "Add effect of brush"}, > {BRUSH_DIR_IN, "DEFLATE", 0, "Deflate", "Subtract effect of > brush"}, > {0, NULL, 0, NULL, NULL}}; > @@ -770,7 +770,7 @@ > RNA_def_property_ui_text(prop, "Custom Icon", "Set the brush icon from > an image file"); > RNA_def_property_update(prop, 0, "rna_Brush_icon_update"); > > - prop= RNA_def_property(srna, "icon_filepath", PROP_STRING, > PROP_FILEPATH); > + prop= RNA_def_property(srna, "icon_filepath", PROP_STRING, > PROP_IMAGEPATH); > RNA_def_property_string_sdna(prop, NULL, "icon_filepath"); > RNA_def_property_ui_text(prop, "Brush Icon Filepath", "File path to > brush icon"); > RNA_def_property_update(prop, 0, "rna_Brush_icon_update"); > > Modified: trunk/blender/source/blender/python/intern/bpy_props.c > =================================================================== > --- trunk/blender/source/blender/python/intern/bpy_props.c 2010-07-26 > 18:32:22 UTC (rev 30762) > +++ trunk/blender/source/blender/python/intern/bpy_props.c 2010-07-26 > 18:37:47 UTC (rev 30763) > @@ -41,6 +41,7 @@ > {PROP_FILEPATH, "FILE_PATH", 0, "File Path", ""}, > {PROP_DIRPATH, "DIR_PATH", 0, "Directory Path", ""}, > {PROP_FILENAME, "FILENAME", 0, "Filename", ""}, > + {PROP_IMAGEPATH, "IMAGE_PATH", 0, "Image Path", ""}, > > {PROP_NONE, "NONE", 0, "None", ""}, > {0, NULL, 0, NULL, NULL}}; > > > _______________________________________________ > Bf-blender-cvs mailing list > [email protected] > http://lists.blender.org/mailman/listinfo/bf-blender-cvs > -- - Campbell _______________________________________________ Bf-committers mailing list [email protected] http://lists.blender.org/mailman/listinfo/bf-committers
