mirror of
https://github.com/libretro/RetroArch.git
synced 2026-11-08 17:28:49 -10:00
XMB: Icon thumbnail cleanups
This commit is contained in:
1 parent
75d7f087be
commit
24a1a4c0d6
2 files changed
+55
-39
No files matched your search
+48
-38
@@ -625,7 +625,7 @@ bool gfx_thumbnail_update_path(
|
||||
|| string_is_equal(path_data->system, "favorites"))
|
||||
{
|
||||
if (gfx_thumbnail_get_content_dir(
|
||||
path_data, content_dir, sizeof(content_dir)) == 0)
|
||||
path_data, content_dir, sizeof(content_dir)) == 0)
|
||||
return false;
|
||||
|
||||
system_name = content_dir;
|
||||
@@ -644,7 +644,7 @@ bool gfx_thumbnail_update_path(
|
||||
/* imageviewer content is identical for left and right thumbnails */
|
||||
if (path_is_media_type(path_data->content_path) == RARCH_CONTENT_IMAGE)
|
||||
strlcpy(thumbnail_path,
|
||||
path_data->content_path, PATH_MAX_LENGTH * sizeof(char));
|
||||
path_data->content_path, PATH_MAX_LENGTH * sizeof(char));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -663,60 +663,70 @@ bool gfx_thumbnail_update_path(
|
||||
fill_pathname_join_special(tmp_buf, thumbnail_path, type, sizeof(tmp_buf));
|
||||
|
||||
thumbnail_path[0] = '\0';
|
||||
/* >> Add content image - first try with full file name */
|
||||
if (path_data->content_img_full[0] != '\0')
|
||||
fill_pathname_join_special(thumbnail_path, tmp_buf,
|
||||
path_data->content_img_full, PATH_MAX_LENGTH * sizeof(char));
|
||||
thumbnail_found = path_is_valid(thumbnail_path);
|
||||
|
||||
/* Try alternative file extensions in turn, if wanted */
|
||||
for (i = 1;
|
||||
playlist_allow_non_png
|
||||
&& !thumbnail_found
|
||||
&& thumbnail_path[0]!='\0'
|
||||
&& i < MAX_SUPPORTED_THUMBNAIL_EXTENSIONS; i++ )
|
||||
/* >> Add content image - first try with label (database name) */
|
||||
if (!string_is_empty(path_data->content_img))
|
||||
{
|
||||
strlcpy(path_get_extension_mutable(thumbnail_path),
|
||||
SUPPORTED_THUMBNAIL_EXTENSIONS[i], 6);
|
||||
thumbnail_found = path_is_valid(thumbnail_path);
|
||||
}
|
||||
|
||||
/* >> Add content image - second try with label (database name) */
|
||||
if (!thumbnail_found && path_data->content_img[0] != '\0')
|
||||
{
|
||||
thumbnail_path[0] = '\0';
|
||||
fill_pathname_join_special(thumbnail_path, tmp_buf,
|
||||
path_data->content_img, PATH_MAX_LENGTH * sizeof(char));
|
||||
thumbnail_found = path_is_valid(thumbnail_path);
|
||||
|
||||
if (playlist_allow_non_png && !string_is_empty(thumbnail_path))
|
||||
{
|
||||
for (i = 1; i < MAX_SUPPORTED_THUMBNAIL_EXTENSIONS && !thumbnail_found; i++)
|
||||
{
|
||||
if (!path_get_extension_mutable(thumbnail_path))
|
||||
continue;
|
||||
|
||||
strlcpy(path_get_extension_mutable(thumbnail_path),
|
||||
SUPPORTED_THUMBNAIL_EXTENSIONS[i], 6);
|
||||
thumbnail_found = path_is_valid(thumbnail_path);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 1;
|
||||
playlist_allow_non_png
|
||||
&& !thumbnail_found
|
||||
&& i < MAX_SUPPORTED_THUMBNAIL_EXTENSIONS ; i++ )
|
||||
/* >> Add content image - second try with full file name */
|
||||
if (!thumbnail_found && !string_is_empty(path_data->content_img_full))
|
||||
{
|
||||
strlcpy(path_get_extension_mutable(thumbnail_path),
|
||||
SUPPORTED_THUMBNAIL_EXTENSIONS[i], 6);
|
||||
thumbnail_path[0] = '\0';
|
||||
fill_pathname_join_special(thumbnail_path, tmp_buf,
|
||||
path_data->content_img_full, PATH_MAX_LENGTH * sizeof(char));
|
||||
thumbnail_found = path_is_valid(thumbnail_path);
|
||||
|
||||
if (playlist_allow_non_png && !string_is_empty(thumbnail_path))
|
||||
{
|
||||
for (i = 1; i < MAX_SUPPORTED_THUMBNAIL_EXTENSIONS && !thumbnail_found; i++)
|
||||
{
|
||||
if (!path_get_extension_mutable(thumbnail_path))
|
||||
continue;
|
||||
|
||||
strlcpy(path_get_extension_mutable(thumbnail_path),
|
||||
SUPPORTED_THUMBNAIL_EXTENSIONS[i], 6);
|
||||
thumbnail_found = path_is_valid(thumbnail_path);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* >> Add content image - third try with shortened name (title only) */
|
||||
if (!thumbnail_found && path_data->content_img_short[0] != '\0')
|
||||
if (!thumbnail_found && !string_is_empty(path_data->content_img_short))
|
||||
{
|
||||
thumbnail_path[0] = '\0';
|
||||
fill_pathname_join_special(thumbnail_path, tmp_buf,
|
||||
path_data->content_img_short, PATH_MAX_LENGTH * sizeof(char));
|
||||
thumbnail_found = path_is_valid(thumbnail_path);
|
||||
}
|
||||
|
||||
for( i = 1 ;
|
||||
playlist_allow_non_png
|
||||
&& !thumbnail_found
|
||||
&& i < MAX_SUPPORTED_THUMBNAIL_EXTENSIONS ; i++ )
|
||||
{
|
||||
strlcpy(path_get_extension_mutable(thumbnail_path),
|
||||
SUPPORTED_THUMBNAIL_EXTENSIONS[i], 6);
|
||||
thumbnail_found = path_is_valid(thumbnail_path);
|
||||
if (playlist_allow_non_png && !string_is_empty(thumbnail_path))
|
||||
{
|
||||
for (i = 1; i < MAX_SUPPORTED_THUMBNAIL_EXTENSIONS && !thumbnail_found; i++)
|
||||
{
|
||||
if (!path_get_extension_mutable(thumbnail_path))
|
||||
continue;
|
||||
|
||||
strlcpy(path_get_extension_mutable(thumbnail_path),
|
||||
SUPPORTED_THUMBNAIL_EXTENSIONS[i], 6);
|
||||
thumbnail_found = path_is_valid(thumbnail_path);
|
||||
}
|
||||
}
|
||||
}
|
||||
/* This logic is valid for locally stored thumbnails. For optional downloads,
|
||||
* gfx_thumbnail_get_img_name() is used */
|
||||
|
||||
+7
-1
@@ -1848,6 +1848,7 @@ static void xmb_selection_pointer_changed(
|
||||
real_iy = iy + xmb->margins_screen_top;
|
||||
|
||||
if ( xmb->is_playlist
|
||||
&& xmb->allow_horizontal_animation
|
||||
&& gfx_thumbnail_is_enabled(menu_st->thumbnail_path_data, GFX_THUMBNAIL_ICON)
|
||||
&& !string_is_equal(xmb->title_name, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_IMAGES_TAB))
|
||||
&& !string_is_equal(xmb->title_name, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_MUSIC_TAB))
|
||||
@@ -2621,6 +2622,7 @@ static void xmb_populate_dynamic_icons(xmb_handle_t *xmb)
|
||||
video_driver_get_size(NULL, &height);
|
||||
xmb_calculate_visible_range(xmb, height, end, (unsigned)selection, &entry_start, &entry_end);
|
||||
if ( xmb->is_playlist
|
||||
&& xmb->allow_horizontal_animation
|
||||
&& !string_is_equal(xmb->title_name, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_IMAGES_TAB))
|
||||
&& !string_is_equal(xmb->title_name, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_MUSIC_TAB))
|
||||
&& !string_is_equal(xmb->title_name, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_TAB))
|
||||
@@ -6784,6 +6786,9 @@ static void xmb_context_reset_internal(xmb_handle_t *xmb,
|
||||
|| xmb->is_file_list
|
||||
|| xmb->is_quick_menu)
|
||||
xmb_update_thumbnail_image(xmb);
|
||||
|
||||
if (xmb->is_playlist)
|
||||
xmb_populate_dynamic_icons(xmb);
|
||||
}
|
||||
|
||||
/* Have to reset this, otherwise savestate
|
||||
@@ -7152,7 +7157,8 @@ static void xmb_render(void *data,
|
||||
continue;
|
||||
}
|
||||
|
||||
if (thumbnail_icon->icon.status == GFX_THUMBNAIL_STATUS_UNKNOWN)
|
||||
if ( thumbnail_icon->icon.status == GFX_THUMBNAIL_STATUS_UNKNOWN
|
||||
&& !string_is_empty(thumbnail_icon->thumbnail_path_data.icon_path))
|
||||
{
|
||||
node->icon_hide = false;
|
||||
if (!xmb_load_dynamic_icon(
|
||||
|
||||
Reference in new issue
Block a user