[Bf-committers] [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [30763] trunk/blender/source/blender: * Added a new RNA subtype, PROP_IMAGEPATH.

Campbell Barton ideasman42 at gmail.com
Mon Jul 26 23:51:09 CEST 2010


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
<nicholasbishop at gmail.com> 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
> Bf-blender-cvs at blender.org
> http://lists.blender.org/mailman/listinfo/bf-blender-cvs
>



-- 
- Campbell


More information about the Bf-committers mailing list