* 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
This commit is contained in:
2010-07-26 18:37:47 +00:00
parent 10b124ae39
commit 8fb499c34f
6 changed files with 19 additions and 9 deletions

View File

@@ -508,12 +508,16 @@ static uiBut *ui_item_with_label(uiLayout *layout, uiBlock *block, char *name, i
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);

View File

@@ -748,6 +748,9 @@ static void widget_draw_preview(BIFIconID icon, float aspect, float alpha, rcti
{
int w, h, x, y, size;
if(!icon)
return;
w = rect->xmax - rect->xmin;
h = rect->ymax - rect->ymin;
size = MIN2(w, h);

View File

@@ -98,6 +98,7 @@ typedef enum PropertySubType {
PROP_FILEPATH = 1,
PROP_DIRPATH = 2,
PROP_FILENAME = 3,
PROP_IMAGEPATH = 4,
/* numbers */
PROP_UNSIGNED = 13,

View File

@@ -1652,6 +1652,7 @@ static const char *rna_property_subtypename(PropertySubType type)
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";

View File

@@ -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 float rna_Brush_get_alpha(PointerRNA *ptr)
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 @@ static void rna_def_brush(BlenderRNA *brna)
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");

View File

@@ -41,6 +41,7 @@ EnumPropertyItem property_subtype_string_items[] = {
{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}};