Commit: f566514c666d9233cde3e71b8923c168048facca Author: Campbell Barton Date: Tue May 5 17:52:19 2015 +1000 Branches: ui-preview-buttons https://developer.blender.org/rBf566514c666d9233cde3e71b8923c168048facca
Cleanup: minor edits =================================================================== M release/scripts/templates_py/ui_previews.py M source/blender/editors/interface/interface_icons.c M source/blender/makesrna/intern/rna_ID.c M source/blender/python/intern/bpy_app_previews.c =================================================================== diff --git a/release/scripts/templates_py/ui_previews.py b/release/scripts/templates_py/ui_previews.py index d93843d..ec56bd5 100644 --- a/release/scripts/templates_py/ui_previews.py +++ b/release/scripts/templates_py/ui_previews.py @@ -9,19 +9,23 @@ import bpy # not be used with UILayout templates that require IDs, such as template_list # and template_ID_preview. -# Other usecases: +# Other use cases: # - make a fixed list of enum_items instead of calculating them in a function. # - generate a single thumbnail to pass in a UILayout function as icon_value -# example: +# +# Example: # my_addon_icons = bpy.utils.previews.new("MyAddonIcons") # myicon = my_addon_icons.load("myicon", "/path/to/icon-image.png", 'IMAGE') # layout.operator("render.render", icon_value=int(myicon.icon_id)) +# # You can generate thumbnails of your own made icons to associate with an action def get_previews_from_folder(self, context): + wm = context.window_manager + enum_items = [] - folder_path = context.window_manager.my_previews_folderpath + folder_path = wm.my_previews_folderpath # gets the already existing preview collection (defined in register func). pcoll = bpy.utils.previews.new("PreviewsInDirectory") @@ -36,7 +40,7 @@ def get_previews_from_folder(self, context): dir_contents = os.listdir(folder_path) image_paths = [] for c in dir_contents: - if c.endswith(".png") or c.endswith(".PNG"): + if c.lower().endswith(".png"): image_paths.append(c) for idx, img_name in enumerate(image_paths): @@ -62,17 +66,16 @@ class PreviewsExamplePanel(bpy.types.Panel): def draw(self, context): layout = self.layout - - obj = context.object + wm = context.window_manager row = layout.row() - row.prop(context.window_manager, "my_previews_folderpath") + row.prop(wm, "my_previews_folderpath") row = layout.row() - row.template_icon_view(context.window_manager, "my_previews") + row.template_icon_view(wm, "my_previews") row = layout.row() - row.prop(context.window_manager, "my_previews") + row.prop(wm, "my_previews") def register(): @@ -84,10 +87,11 @@ def register(): # Note that preview collections returned by bpy.utils.previews are regular py objects - you can use them # to store custom data. + # # This is especially useful here, since: - # * It avoids us regenerating the whole enum over and over. - # * It can store enumitems' strings (remember you have to keep those strings somewhere in py, else they get - # freed and blender references invalid memory!). + # - It avoids us regenerating the whole enum over and over. + # - It can store enumitems' strings (remember you have to keep those strings somewhere in py, else they get + # freed and blender references invalid memory!). pcoll = bpy.utils.previews.new("PreviewsInDirectory") pcoll.my_previews_folderpath = "" pcoll.my_previews = () diff --git a/source/blender/editors/interface/interface_icons.c b/source/blender/editors/interface/interface_icons.c index 26de51f..33e6d07 100644 --- a/source/blender/editors/interface/interface_icons.c +++ b/source/blender/editors/interface/interface_icons.c @@ -1026,12 +1026,12 @@ static void icon_draw_rect(float x, float y, int w, int h, float UNUSED(aspect), /* rect contains image in 'rendersize', we only scale if needed */ if (rw != w || rh != h) { /* preserve aspect ratio and center */ - if(rw > rh) { + if (rw > rh) { draw_w = w; draw_h = (int)(((float)rh / (float)rw) * (float)w); draw_y += (h - draw_h) / 2; } - else if(rw < rh) { + else if (rw < rh) { draw_w = (int)(((float)rw / (float)rh) * (float)h); draw_h = h; draw_x += (w - draw_w) / 2; diff --git a/source/blender/makesrna/intern/rna_ID.c b/source/blender/makesrna/intern/rna_ID.c index 45015e4..26ecb46 100644 --- a/source/blender/makesrna/intern/rna_ID.c +++ b/source/blender/makesrna/intern/rna_ID.c @@ -410,14 +410,15 @@ static void rna_Library_filepath_set(PointerRNA *ptr, const char *value) /* ***** ImagePreview ***** */ -static void rna_Preview_is_custom_set(PointerRNA *ptr, int value, enum eIconSizes size) { - ID *id = (ID *)ptr->id.data; +static void rna_Preview_is_custom_set(PointerRNA *ptr, int value, enum eIconSizes size) +{ + ID *id = ptr->id.data; PreviewImage *prv_img = (PreviewImage *)ptr->data; BLI_assert(prv_img == BKE_previewimg_id_get(id)); UNUSED_VARS_NDEBUG(id); - if(value) + if (value) prv_img->flag[size] |= USER_EDITED; else prv_img->flag[size] &= ~USER_EDITED; @@ -461,7 +462,7 @@ static void rna_Preview_size_set(PointerRNA *ptr, const int *values, enum eIconS static int rna_Preview_pixels_get_length(PointerRNA *ptr, int length[RNA_MAX_ARRAY_DIMENSION], enum eIconSizes size) { - ID *id = (ID *)ptr->id.data; + ID *id = ptr->id.data; PreviewImage *prv_img = (PreviewImage *)ptr->data; BLI_assert(prv_img == BKE_previewimg_id_get(id)); @@ -474,7 +475,7 @@ static int rna_Preview_pixels_get_length(PointerRNA *ptr, int length[RNA_MAX_ARR static void rna_Preview_pixels_get(PointerRNA *ptr, int *values, enum eIconSizes size) { - ID *id = (ID *)ptr->id.data; + ID *id = ptr->id.data; PreviewImage *prv_img = (PreviewImage *)ptr->data; BLI_assert(prv_img == BKE_previewimg_id_get(id)); @@ -485,7 +486,7 @@ static void rna_Preview_pixels_get(PointerRNA *ptr, int *values, enum eIconSizes static void rna_Preview_pixels_set(PointerRNA *ptr, const int *values, enum eIconSizes size) { - ID *id = (ID *)ptr->id.data; + ID *id = ptr->id.data; PreviewImage *prv_img = (PreviewImage *)ptr->data; BLI_assert(prv_img == BKE_previewimg_id_get(id)); @@ -495,7 +496,8 @@ static void rna_Preview_pixels_set(PointerRNA *ptr, const int *values, enum eIco prv_img->flag[size] |= USER_EDITED; } -static void rna_Preview_image_is_custom_set(PointerRNA *ptr, int value) { +static void rna_Preview_image_is_custom_set(PointerRNA *ptr, int value) +{ rna_Preview_is_custom_set(ptr, value, ICON_SIZE_PREVIEW); } diff --git a/source/blender/python/intern/bpy_app_previews.c b/source/blender/python/intern/bpy_app_previews.c index 6545bbf..6e4f2b1 100644 --- a/source/blender/python/intern/bpy_app_previews.c +++ b/source/blender/python/intern/bpy_app_previews.c @@ -185,7 +185,7 @@ static PyMethodDef app_previews_methods[] = { static PyObject *app_previews_new(PyTypeObject *type, PyObject *UNUSED(args), PyObject *UNUSED(kw)) { - if (!_previews) { + if (_previews == NULL) { _previews = (BlenderAppPreviews *)type->tp_alloc(type, 0); } _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs