Commit: bf19bf0110e9e5a2fcc92e7cbf10b907d4a7f65b
Author: Bastien Montagne
Date:   Fri Apr 10 23:42:43 2015 +0200
Branches: asset-experiments
https://developer.blender.org/rBbf19bf0110e9e5a2fcc92e7cbf10b907d4a7f65b

Merge branch 'master' into asset-experiments

Conflicts:
        source/blender/blenlib/intern/BLI_filelist.c
        source/blender/imbuf/IMB_thumbs.h
        source/blender/imbuf/intern/thumbs.c

===================================================================



===================================================================

diff --cc source/blender/imbuf/intern/thumbs.c
index a736e77,2318553..f44d0a9
--- a/source/blender/imbuf/intern/thumbs.c
+++ b/source/blender/imbuf/intern/thumbs.c
@@@ -297,9 -293,7 +297,9 @@@ void IMB_thumb_makedirs(void
  
  /* create thumbnail for file and returns new imbuf for thumbnail */
  static ImBuf *thumb_create_ex(
-         const char *path, const char *uri, const char *thumb,
-         const char *file_path, const char *blen_group, const char *blen_id,
 -        const char *file_path, const char *uri, const char *thumb, ThumbSize 
size, ThumbSource source, ImBuf *img)
++        const char *file_path, const char *uri, const char *thumb,
++        const char *blen_group, const char *blen_id,
 +        ThumbSize size, ThumbSource source, ImBuf *img)
  {
        char desc[URI_MAX + 22];
        char tpath[FILE_MAX];
@@@ -353,13 -347,13 +353,13 @@@
                                if (img == NULL) {
                                        switch (source) {
                                                case THB_SOURCE_IMAGE:
-                                                       img = 
IMB_loadiffname(path, IB_rect | IB_metadata, NULL);
+                                                       img = 
IMB_loadiffname(file_path, IB_rect | IB_metadata, NULL);
                                                        break;
                                                case THB_SOURCE_BLEND:
 -                                                      img = 
IMB_thumb_load_blend(file_path);
 +                                                      img = 
IMB_thumb_load_blend(file_path, blen_group, blen_id);
                                                        break;
                                                case THB_SOURCE_FONT:
-                                                       img = 
IMB_thumb_load_font(path, tsize, tsize);
+                                                       img = 
IMB_thumb_load_font(file_path, tsize, tsize);
                                                        break;
                                                default:
                                                        BLI_assert(0); /* This 
should never happen */
@@@ -448,7 -442,7 +448,7 @@@ ImBuf *IMB_thumb_create(const char *pat
        uri_from_filename(path, uri);
        thumbname_from_uri(uri, thumb_name, sizeof(thumb_name));
  
-       return thumb_create_ex(path, uri, thumb_name, path, NULL, NULL, size, 
source, img);
 -      return thumb_create_ex(path, uri, thumb_name, size, source, img);
++      return thumb_create_ex(path, uri, thumb_name, NULL, NULL, size, source, 
img);
  }
  
  /* read thumbnail for file and returns new imbuf for thumbnail */
@@@ -498,20 -493,12 +499,24 @@@ ImBuf *IMB_thumb_manage(const char *org
        char path_buff[FILE_MAX];
        BLI_stat_t st;
        ImBuf *img = NULL;
 +      char *blen_group = NULL, *blen_id = NULL;
  
-       file_path = path;
+       path = file_path = org_path;
 -      if (source == THB_SOURCE_FONT) {
 +      if (source == THB_SOURCE_BLEND) {
 +              if (BLO_library_path_explode(path, path_buff, &blen_group, 
&blen_id)) {
 +                      if (blen_group) {
 +                              if (!blen_id) {
 +                                      /* No preview for blen groups */
 +                                      return NULL;
 +                              }
 +                              file_path = path_buff;  /* path needs to be a 
valid file! */
 +                      }
 +              }
 +      }
++      else if (source == THB_SOURCE_FONT) {
+               BLI_snprintf(path_buff, sizeof(path_buff), "%s.%s", org_path, 
IMB_thumb_load_font_get_language());
+               path = path_buff;
+       }
  
        if (BLI_stat(file_path, &st) == -1) {
                return NULL;
@@@ -554,12 -541,10 +559,10 @@@
                                                IMB_thumb_delete(path, 
THB_NORMAL);
                                                IMB_thumb_delete(path, 
THB_LARGE);
                                                IMB_thumb_delete(path, 
THB_FAIL);
-                                               img = thumb_create_ex(
-                                                         path, uri, 
thumb_name, file_path, blen_group, blen_id, size, source, NULL);
 -                                              img = 
thumb_create_ex(file_path, uri, thumb_name, size, source, NULL);
++                                              img = 
thumb_create_ex(file_path, uri, thumb_name, blen_group, blen_id, size, source, 
NULL);
                                                if (!img) {
                                                        /* thumb creation 
failed, write fail thumb */
-                                                       img = thumb_create_ex(
-                                                                 path, uri, 
thumb_name, file_path, blen_group, blen_id, THB_FAIL, source, NULL);
 -                                                      img = 
thumb_create_ex(file_path, uri, thumb_name, THB_FAIL, source, NULL);
++                                                      img = 
thumb_create_ex(file_path, uri, thumb_name, blen_group, blen_id, THB_FAIL, 
source, NULL);
                                                        if (img) {
                                                                /* we don't 
need failed thumb anymore */
                                                                
IMB_freeImBuf(img);
@@@ -570,11 -555,10 +573,10 @@@
                                }
                        }
                        else {
-                               img = thumb_create_ex(path, uri, thumb_name, 
file_path, blen_group, blen_id, size, source, NULL);
 -                              img = thumb_create_ex(file_path, uri, 
thumb_name, size, source, NULL);
++                              img = thumb_create_ex(file_path, uri, 
thumb_name, blen_group, blen_id, size, source, NULL);
                                if (!img) {
                                        /* thumb creation failed, write fail 
thumb */
-                                       img = thumb_create_ex(
-                                                 path, uri, thumb_name, 
file_path, blen_group, blen_id, THB_FAIL, source, NULL);
 -                                      img = thumb_create_ex(file_path, uri, 
thumb_name, THB_FAIL, source, NULL);
++                                      img = thumb_create_ex(file_path, uri, 
thumb_name, blen_group, blen_id, THB_FAIL, source, NULL);
                                        if (img) {
                                                /* we don't need failed thumb 
anymore */
                                                IMB_freeImBuf(img);

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

Reply via email to