mirror of
https://github.com/libretro/RetroArch
synced 2025-04-18 05:43:34 +00:00
Add Named_Logos (#17216)
* Draft: Add Named_Logos * Allow selecting Content Logo as a thumbnail display * Increase pl_thumbnail_download index to 4 to match the 4 available thumb types --------- Co-authored-by: Rob Loach <robloach@gmail.com>
This commit is contained in:
parent
fbe135fb60
commit
b16f04de0a
@ -67,7 +67,7 @@ static void gfx_thumbnail_fill_content_img(char *s, size_t len, const char *src,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Returns currently set thumbnail 'type' (Named_Snaps,
|
/* Returns currently set thumbnail 'type' (Named_Snaps,
|
||||||
* Named_Titles, Named_Boxarts) for specified thumbnail
|
* Named_Titles, Named_Boxarts, Named_Logos) for specified thumbnail
|
||||||
* identifier (right, left) */
|
* identifier (right, left) */
|
||||||
static const char *gfx_thumbnail_get_type(
|
static const char *gfx_thumbnail_get_type(
|
||||||
settings_t *settings,
|
settings_t *settings,
|
||||||
|
@ -12847,6 +12847,10 @@ MSG_HASH(
|
|||||||
MENU_ENUM_LABEL_VALUE_QT_THUMBNAIL_TITLE_SCREEN,
|
MENU_ENUM_LABEL_VALUE_QT_THUMBNAIL_TITLE_SCREEN,
|
||||||
"Title Screen"
|
"Title Screen"
|
||||||
)
|
)
|
||||||
|
MSG_HASH(
|
||||||
|
MENU_ENUM_LABEL_VALUE_QT_THUMBNAIL_LOGO,
|
||||||
|
"Logo"
|
||||||
|
)
|
||||||
MSG_HASH(
|
MSG_HASH(
|
||||||
MENU_ENUM_LABEL_VALUE_QT_ALL_PLAYLISTS,
|
MENU_ENUM_LABEL_VALUE_QT_ALL_PLAYLISTS,
|
||||||
"All Playlists"
|
"All Playlists"
|
||||||
|
@ -1519,6 +1519,8 @@ static const char *get_playlist_thumbnail_mode_value(playlist_t *playlist, enum
|
|||||||
return msg_hash_to_str(MENU_ENUM_LABEL_VALUE_THUMBNAIL_MODE_TITLE_SCREENS);
|
return msg_hash_to_str(MENU_ENUM_LABEL_VALUE_THUMBNAIL_MODE_TITLE_SCREENS);
|
||||||
case PLAYLIST_THUMBNAIL_MODE_BOXARTS:
|
case PLAYLIST_THUMBNAIL_MODE_BOXARTS:
|
||||||
return msg_hash_to_str(MENU_ENUM_LABEL_VALUE_THUMBNAIL_MODE_BOXARTS);
|
return msg_hash_to_str(MENU_ENUM_LABEL_VALUE_THUMBNAIL_MODE_BOXARTS);
|
||||||
|
case PLAYLIST_THUMBNAIL_MODE_LOGOS:
|
||||||
|
return msg_hash_to_str(MENU_ENUM_LABEL_VALUE_THUMBNAIL_MODE_LOGOS);
|
||||||
default:
|
default:
|
||||||
/* PLAYLIST_THUMBNAIL_MODE_DEFAULT */
|
/* PLAYLIST_THUMBNAIL_MODE_DEFAULT */
|
||||||
break;
|
break;
|
||||||
|
@ -504,7 +504,7 @@ static void playlist_thumbnail_mode_left(playlist_t *playlist, enum playlist_thu
|
|||||||
if (thumbnail_mode > PLAYLIST_THUMBNAIL_MODE_DEFAULT)
|
if (thumbnail_mode > PLAYLIST_THUMBNAIL_MODE_DEFAULT)
|
||||||
thumbnail_mode = (enum playlist_thumbnail_mode)((unsigned)thumbnail_mode - 1);
|
thumbnail_mode = (enum playlist_thumbnail_mode)((unsigned)thumbnail_mode - 1);
|
||||||
else if (wraparound)
|
else if (wraparound)
|
||||||
thumbnail_mode = PLAYLIST_THUMBNAIL_MODE_BOXARTS;
|
thumbnail_mode = PLAYLIST_THUMBNAIL_MODE_LOGOS;
|
||||||
|
|
||||||
playlist_set_thumbnail_mode(playlist, thumbnail_id, thumbnail_mode);
|
playlist_set_thumbnail_mode(playlist, thumbnail_id, thumbnail_mode);
|
||||||
playlist_write_file(playlist);
|
playlist_write_file(playlist);
|
||||||
@ -1218,7 +1218,7 @@ static int menu_cbs_init_bind_left_compare_type(menu_file_list_cbs_t *cbs,
|
|||||||
case FILE_TYPE_VIDEO_FONT:
|
case FILE_TYPE_VIDEO_FONT:
|
||||||
case MENU_SETTING_GROUP:
|
case MENU_SETTING_GROUP:
|
||||||
case MENU_SETTINGS_CORE_INFO_NONE:
|
case MENU_SETTINGS_CORE_INFO_NONE:
|
||||||
if (
|
if (
|
||||||
string_ends_with_size(menu_label, "_tab",
|
string_ends_with_size(menu_label, "_tab",
|
||||||
menu_lbl_len, STRLEN_CONST("_tab"))
|
menu_lbl_len, STRLEN_CONST("_tab"))
|
||||||
|| string_is_equal(menu_label, msg_hash_to_str(MENU_ENUM_LABEL_HORIZONTAL_MENU))
|
|| string_is_equal(menu_label, msg_hash_to_str(MENU_ENUM_LABEL_HORIZONTAL_MENU))
|
||||||
@ -1280,7 +1280,7 @@ int menu_cbs_init_bind_left(menu_file_list_cbs_t *cbs,
|
|||||||
|
|
||||||
if (type == MENU_SETTING_NO_ITEM)
|
if (type == MENU_SETTING_NO_ITEM)
|
||||||
{
|
{
|
||||||
if (
|
if (
|
||||||
string_ends_with_size(menu_label, "_tab",
|
string_ends_with_size(menu_label, "_tab",
|
||||||
menu_lbl_len, STRLEN_CONST("_tab"))
|
menu_lbl_len, STRLEN_CONST("_tab"))
|
||||||
|| string_is_equal(menu_label, msg_hash_to_str(MENU_ENUM_LABEL_MAIN_MENU))
|
|| string_is_equal(menu_label, msg_hash_to_str(MENU_ENUM_LABEL_MAIN_MENU))
|
||||||
|
@ -259,7 +259,7 @@ static int action_right_scroll(unsigned type, const char *label,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
#ifdef HAVE_AUDIOMIXER
|
#ifdef HAVE_AUDIOMIXER
|
||||||
if (selection != menu_st->selection_ptr)
|
if (selection != menu_st->selection_ptr)
|
||||||
audio_driver_mixer_play_scroll_sound(false);
|
audio_driver_mixer_play_scroll_sound(false);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -287,11 +287,11 @@ static int action_right_mainmenu(unsigned type, const char *label,
|
|||||||
#ifdef HAVE_XMB
|
#ifdef HAVE_XMB
|
||||||
struct menu_state *menu_st = menu_state_get_ptr();
|
struct menu_state *menu_st = menu_state_get_ptr();
|
||||||
const menu_ctx_driver_t *driver_ctx = menu_st->driver_ctx;
|
const menu_ctx_driver_t *driver_ctx = menu_st->driver_ctx;
|
||||||
const char *menu_ident = (driver_ctx && driver_ctx->ident)
|
const char *menu_ident = (driver_ctx && driver_ctx->ident)
|
||||||
? driver_ctx->ident
|
? driver_ctx->ident
|
||||||
: NULL;
|
: NULL;
|
||||||
size_t size = (driver_ctx && driver_ctx->list_get_size)
|
size_t size = (driver_ctx && driver_ctx->list_get_size)
|
||||||
? driver_ctx->list_get_size(menu_st->userdata, MENU_LIST_PLAIN)
|
? driver_ctx->list_get_size(menu_st->userdata, MENU_LIST_PLAIN)
|
||||||
: 0;
|
: 0;
|
||||||
/* Tab switching functionality only applies
|
/* Tab switching functionality only applies
|
||||||
* to XMB */
|
* to XMB */
|
||||||
@ -303,8 +303,8 @@ static int action_right_mainmenu(unsigned type, const char *label,
|
|||||||
bool menu_nav_wraparound_enable = settings->bools.menu_navigation_wraparound_enable;
|
bool menu_nav_wraparound_enable = settings->bools.menu_navigation_wraparound_enable;
|
||||||
if (driver_ctx)
|
if (driver_ctx)
|
||||||
{
|
{
|
||||||
selection = (driver_ctx->list_get_selection)
|
selection = (driver_ctx->list_get_selection)
|
||||||
? driver_ctx->list_get_selection(menu_st->userdata)
|
? driver_ctx->list_get_selection(menu_st->userdata)
|
||||||
: 0;
|
: 0;
|
||||||
if (driver_ctx->list_get_size)
|
if (driver_ctx->list_get_size)
|
||||||
{
|
{
|
||||||
@ -613,7 +613,7 @@ static void playlist_thumbnail_mode_right(playlist_t *playlist, enum playlist_th
|
|||||||
enum playlist_thumbnail_mode thumbnail_mode =
|
enum playlist_thumbnail_mode thumbnail_mode =
|
||||||
playlist_get_thumbnail_mode(playlist, thumbnail_id);
|
playlist_get_thumbnail_mode(playlist, thumbnail_id);
|
||||||
|
|
||||||
if (thumbnail_mode < PLAYLIST_THUMBNAIL_MODE_BOXARTS)
|
if (thumbnail_mode < PLAYLIST_THUMBNAIL_MODE_LOGOS)
|
||||||
thumbnail_mode = (enum playlist_thumbnail_mode)((unsigned)thumbnail_mode + 1);
|
thumbnail_mode = (enum playlist_thumbnail_mode)((unsigned)thumbnail_mode + 1);
|
||||||
else if (wraparound)
|
else if (wraparound)
|
||||||
thumbnail_mode = PLAYLIST_THUMBNAIL_MODE_DEFAULT;
|
thumbnail_mode = PLAYLIST_THUMBNAIL_MODE_DEFAULT;
|
||||||
@ -1308,7 +1308,7 @@ int menu_cbs_init_bind_right(menu_file_list_cbs_t *cbs,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (menu_cbs_init_bind_right_compare_label(cbs, label, lbl_len, menu_lbl, menu_lbl_len
|
if (menu_cbs_init_bind_right_compare_label(cbs, label, lbl_len, menu_lbl, menu_lbl_len
|
||||||
) == 0)
|
) == 0)
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -6446,7 +6446,7 @@ static unsigned populate_playlist_thumbnail_mode_dropdown_list(
|
|||||||
: MENU_SETTING_DROPDOWN_ITEM_PLAYLIST_LEFT_THUMBNAIL_MODE;
|
: MENU_SETTING_DROPDOWN_ITEM_PLAYLIST_LEFT_THUMBNAIL_MODE;
|
||||||
|
|
||||||
/* Loop over all thumbnail modes */
|
/* Loop over all thumbnail modes */
|
||||||
for (i = 0; i <= (unsigned)PLAYLIST_THUMBNAIL_MODE_BOXARTS; i++)
|
for (i = 0; i <= (unsigned)PLAYLIST_THUMBNAIL_MODE_LOGOS; i++)
|
||||||
{
|
{
|
||||||
enum msg_hash_enums label_value;
|
enum msg_hash_enums label_value;
|
||||||
enum playlist_thumbnail_mode thumbnail_mode =
|
enum playlist_thumbnail_mode thumbnail_mode =
|
||||||
@ -6467,6 +6467,9 @@ static unsigned populate_playlist_thumbnail_mode_dropdown_list(
|
|||||||
case PLAYLIST_THUMBNAIL_MODE_BOXARTS:
|
case PLAYLIST_THUMBNAIL_MODE_BOXARTS:
|
||||||
label_value = MENU_ENUM_LABEL_VALUE_THUMBNAIL_MODE_BOXARTS;
|
label_value = MENU_ENUM_LABEL_VALUE_THUMBNAIL_MODE_BOXARTS;
|
||||||
break;
|
break;
|
||||||
|
case PLAYLIST_THUMBNAIL_MODE_LOGOS:
|
||||||
|
label_value = MENU_ENUM_LABEL_VALUE_THUMBNAIL_MODE_LOGOS;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
/* PLAYLIST_THUMBNAIL_MODE_DEFAULT */
|
/* PLAYLIST_THUMBNAIL_MODE_DEFAULT */
|
||||||
label_value = MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_THUMBNAIL_MODE_DEFAULT;
|
label_value = MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_THUMBNAIL_MODE_DEFAULT;
|
||||||
|
@ -3336,6 +3336,11 @@ static void setting_get_string_representation_uint_menu_thumbnails(
|
|||||||
msg_hash_to_str(
|
msg_hash_to_str(
|
||||||
MENU_ENUM_LABEL_VALUE_THUMBNAIL_MODE_BOXARTS), len);
|
MENU_ENUM_LABEL_VALUE_THUMBNAIL_MODE_BOXARTS), len);
|
||||||
break;
|
break;
|
||||||
|
case 4:
|
||||||
|
strlcpy(s,
|
||||||
|
msg_hash_to_str(
|
||||||
|
MENU_ENUM_LABEL_VALUE_THUMBNAIL_MODE_LOGOS), len);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3367,6 +3372,11 @@ static void setting_get_string_representation_uint_menu_left_thumbnails(
|
|||||||
msg_hash_to_str(
|
msg_hash_to_str(
|
||||||
MENU_ENUM_LABEL_VALUE_THUMBNAIL_MODE_BOXARTS), len);
|
MENU_ENUM_LABEL_VALUE_THUMBNAIL_MODE_BOXARTS), len);
|
||||||
break;
|
break;
|
||||||
|
case 4:
|
||||||
|
strlcpy(s,
|
||||||
|
msg_hash_to_str(
|
||||||
|
MENU_ENUM_LABEL_VALUE_THUMBNAIL_MODE_LOGOS), len);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -20095,7 +20105,7 @@ static bool setting_append_list(
|
|||||||
(*list)[list_info->index - 1].action_ok = &setting_action_ok_uint;
|
(*list)[list_info->index - 1].action_ok = &setting_action_ok_uint;
|
||||||
(*list)[list_info->index - 1].get_string_representation =
|
(*list)[list_info->index - 1].get_string_representation =
|
||||||
&setting_get_string_representation_uint_menu_thumbnails;
|
&setting_get_string_representation_uint_menu_thumbnails;
|
||||||
menu_settings_list_current_add_range(list, list_info, 0, 3, 1, true, true);
|
menu_settings_list_current_add_range(list, list_info, 0, PLAYLIST_THUMBNAIL_MODE_LOGOS - 1, 1, true, true);
|
||||||
(*list)[list_info->index - 1].ui_type = ST_UI_TYPE_UINT_RADIO_BUTTONS;
|
(*list)[list_info->index - 1].ui_type = ST_UI_TYPE_UINT_RADIO_BUTTONS;
|
||||||
|
|
||||||
CONFIG_UINT(
|
CONFIG_UINT(
|
||||||
@ -20112,7 +20122,7 @@ static bool setting_append_list(
|
|||||||
(*list)[list_info->index - 1].action_ok = &setting_action_ok_uint;
|
(*list)[list_info->index - 1].action_ok = &setting_action_ok_uint;
|
||||||
(*list)[list_info->index - 1].get_string_representation =
|
(*list)[list_info->index - 1].get_string_representation =
|
||||||
&setting_get_string_representation_uint_menu_left_thumbnails;
|
&setting_get_string_representation_uint_menu_left_thumbnails;
|
||||||
menu_settings_list_current_add_range(list, list_info, 0, 3, 1, true, true);
|
menu_settings_list_current_add_range(list, list_info, 0, PLAYLIST_THUMBNAIL_MODE_LOGOS - 1, 1, true, true);
|
||||||
(*list)[list_info->index - 1].ui_type = ST_UI_TYPE_UINT_RADIO_BUTTONS;
|
(*list)[list_info->index - 1].ui_type = ST_UI_TYPE_UINT_RADIO_BUTTONS;
|
||||||
|
|
||||||
CONFIG_UINT(
|
CONFIG_UINT(
|
||||||
|
@ -3882,6 +3882,7 @@ enum msg_hash_enums
|
|||||||
MENU_ENUM_LABEL_VALUE_QT_THUMBNAIL_BOXART,
|
MENU_ENUM_LABEL_VALUE_QT_THUMBNAIL_BOXART,
|
||||||
MENU_ENUM_LABEL_VALUE_QT_THUMBNAIL_SCREENSHOT,
|
MENU_ENUM_LABEL_VALUE_QT_THUMBNAIL_SCREENSHOT,
|
||||||
MENU_ENUM_LABEL_VALUE_QT_THUMBNAIL_TITLE_SCREEN,
|
MENU_ENUM_LABEL_VALUE_QT_THUMBNAIL_TITLE_SCREEN,
|
||||||
|
MENU_ENUM_LABEL_VALUE_QT_THUMBNAIL_LOGO,
|
||||||
MENU_ENUM_LABEL_VALUE_QT_LOAD_CORE,
|
MENU_ENUM_LABEL_VALUE_QT_LOAD_CORE,
|
||||||
MENU_ENUM_LABEL_VALUE_QT_LOAD_CUSTOM_CORE,
|
MENU_ENUM_LABEL_VALUE_QT_LOAD_CUSTOM_CORE,
|
||||||
MENU_ENUM_LABEL_VALUE_QT_LOADING_CORE,
|
MENU_ENUM_LABEL_VALUE_QT_LOADING_CORE,
|
||||||
|
@ -2837,12 +2837,12 @@ static bool playlist_read_file(playlist_t *playlist)
|
|||||||
{
|
{
|
||||||
/* Right thumbnail mode */
|
/* Right thumbnail mode */
|
||||||
unsigned thumbnail_mode = string_to_unsigned(elem0);
|
unsigned thumbnail_mode = string_to_unsigned(elem0);
|
||||||
if (thumbnail_mode <= PLAYLIST_THUMBNAIL_MODE_BOXARTS)
|
if (thumbnail_mode <= PLAYLIST_THUMBNAIL_MODE_LOGOS)
|
||||||
playlist->right_thumbnail_mode = (enum playlist_thumbnail_mode)thumbnail_mode;
|
playlist->right_thumbnail_mode = (enum playlist_thumbnail_mode)thumbnail_mode;
|
||||||
|
|
||||||
/* Left thumbnail mode */
|
/* Left thumbnail mode */
|
||||||
thumbnail_mode = string_to_unsigned(tok);
|
thumbnail_mode = string_to_unsigned(tok);
|
||||||
if (thumbnail_mode <= PLAYLIST_THUMBNAIL_MODE_BOXARTS)
|
if (thumbnail_mode <= PLAYLIST_THUMBNAIL_MODE_LOGOS)
|
||||||
playlist->left_thumbnail_mode = (enum playlist_thumbnail_mode)thumbnail_mode;
|
playlist->left_thumbnail_mode = (enum playlist_thumbnail_mode)thumbnail_mode;
|
||||||
}
|
}
|
||||||
free(elem0);
|
free(elem0);
|
||||||
|
@ -62,7 +62,7 @@ enum playlist_thumbnail_mode
|
|||||||
PLAYLIST_THUMBNAIL_MODE_SCREENSHOTS,
|
PLAYLIST_THUMBNAIL_MODE_SCREENSHOTS,
|
||||||
PLAYLIST_THUMBNAIL_MODE_TITLE_SCREENS,
|
PLAYLIST_THUMBNAIL_MODE_TITLE_SCREENS,
|
||||||
PLAYLIST_THUMBNAIL_MODE_BOXARTS,
|
PLAYLIST_THUMBNAIL_MODE_BOXARTS,
|
||||||
PLAYLIST_THUMBNAIL_MODE_LOGO
|
PLAYLIST_THUMBNAIL_MODE_LOGOS
|
||||||
};
|
};
|
||||||
|
|
||||||
enum playlist_thumbnail_match_mode
|
enum playlist_thumbnail_match_mode
|
||||||
|
@ -732,7 +732,7 @@
|
|||||||
# Dynamically load a new wallpaper depending on context.
|
# Dynamically load a new wallpaper depending on context.
|
||||||
# menu_dynamic_wallpaper_enable = false
|
# menu_dynamic_wallpaper_enable = false
|
||||||
|
|
||||||
# Type of thumbnail to display. 0 = none, 1 = snaps, 2 = titles, 3 = boxarts
|
# Type of thumbnail to display. 0 = none, 1 = snaps, 2 = titles, 3 = boxarts, 4 = logos
|
||||||
# menu_thumbnails = 0
|
# menu_thumbnails = 0
|
||||||
# menu_left_thumbnails = 0
|
# menu_left_thumbnails = 0
|
||||||
|
|
||||||
|
@ -92,8 +92,8 @@ typedef struct pl_entry_id
|
|||||||
/*********************/
|
/*********************/
|
||||||
|
|
||||||
/* Fetches the thumbnail subdirectory (Named_Snaps,
|
/* Fetches the thumbnail subdirectory (Named_Snaps,
|
||||||
* Named_Titles, Named_Boxarts) corresponding to the
|
* Named_Titles, Named_Boxarts, Named_Logos) corresponding to the
|
||||||
* specified 'type index' (1, 2, 3).
|
* specified 'type index' (1, 2, 3, 4).
|
||||||
* Returns true if 'type index' is valid */
|
* Returns true if 'type index' is valid */
|
||||||
static bool gfx_thumbnail_get_sub_directory(
|
static bool gfx_thumbnail_get_sub_directory(
|
||||||
unsigned type_idx, const char **sub_directory)
|
unsigned type_idx, const char **sub_directory)
|
||||||
@ -112,6 +112,9 @@ static bool gfx_thumbnail_get_sub_directory(
|
|||||||
case 3:
|
case 3:
|
||||||
*sub_directory = "Named_Boxarts";
|
*sub_directory = "Named_Boxarts";
|
||||||
return true;
|
return true;
|
||||||
|
case 4:
|
||||||
|
*sub_directory = "Named_Logos";
|
||||||
|
return true;
|
||||||
case 0:
|
case 0:
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@ -456,7 +459,7 @@ static void task_pl_thumbnail_download_handler(retro_task_t *task)
|
|||||||
pl_thumb->http_task = NULL;
|
pl_thumb->http_task = NULL;
|
||||||
|
|
||||||
/* Check whether all thumbnail types have been processed */
|
/* Check whether all thumbnail types have been processed */
|
||||||
if (pl_thumb->type_idx > 3)
|
if (pl_thumb->type_idx > 4)
|
||||||
{
|
{
|
||||||
next_flag = playlist_get_next_thumbnail_name_flag(pl_thumb->playlist,pl_thumb->list_index);
|
next_flag = playlist_get_next_thumbnail_name_flag(pl_thumb->playlist,pl_thumb->list_index);
|
||||||
if (next_flag == PLAYLIST_THUMBNAIL_FLAG_NONE) {
|
if (next_flag == PLAYLIST_THUMBNAIL_FLAG_NONE) {
|
||||||
@ -469,8 +472,8 @@ static void task_pl_thumbnail_download_handler(retro_task_t *task)
|
|||||||
pl_thumb->status = PL_THUMB_END;
|
pl_thumb->status = PL_THUMB_END;
|
||||||
break;
|
break;
|
||||||
} else {
|
} else {
|
||||||
/* Increment the name flag to cover the 3 supported naming conventions.
|
/* Increment the name flag to cover the 4 supported naming conventions.
|
||||||
* Side-effect: all combinations will be tried (3x3 requests for 1 playlist entry)
|
* Side-effect: all combinations will be tried (4x4 requests for 1 playlist entry)
|
||||||
* even if some files were already downloaded, but that may be useful if later on
|
* even if some files were already downloaded, but that may be useful if later on
|
||||||
* different view priorities are implemented. */
|
* different view priorities are implemented. */
|
||||||
pl_thumb->type_idx = 1;
|
pl_thumb->type_idx = 1;
|
||||||
@ -777,14 +780,14 @@ static void task_pl_entry_thumbnail_download_handler(retro_task_t *task)
|
|||||||
pl_thumb->http_task = NULL;
|
pl_thumb->http_task = NULL;
|
||||||
|
|
||||||
/* Check whether all thumbnail types have been processed */
|
/* Check whether all thumbnail types have been processed */
|
||||||
if (pl_thumb->type_idx > 3)
|
if (pl_thumb->type_idx > 4)
|
||||||
{
|
{
|
||||||
pl_thumb->status = PL_THUMB_END;
|
pl_thumb->status = PL_THUMB_END;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Update progress */
|
/* Update progress */
|
||||||
task_set_progress(task, ((pl_thumb->type_idx - 1) * 100) / 3);
|
task_set_progress(task, ((pl_thumb->type_idx - 1) * 100) / 4);
|
||||||
|
|
||||||
/* Download current thumbnail */
|
/* Download current thumbnail */
|
||||||
if (pl_thumb)
|
if (pl_thumb)
|
||||||
|
@ -844,6 +844,7 @@ void MainWindow::downloadNextPlaylistThumbnail(
|
|||||||
dir.mkpath(dirString + "/" + system + "/" + THUMBNAIL_BOXART);
|
dir.mkpath(dirString + "/" + system + "/" + THUMBNAIL_BOXART);
|
||||||
dir.mkpath(dirString + "/" + system + "/" + THUMBNAIL_SCREENSHOT);
|
dir.mkpath(dirString + "/" + system + "/" + THUMBNAIL_SCREENSHOT);
|
||||||
dir.mkpath(dirString + "/" + system + "/" + THUMBNAIL_TITLE);
|
dir.mkpath(dirString + "/" + system + "/" + THUMBNAIL_TITLE);
|
||||||
|
dir.mkpath(dirString + "/" + system + "/" + THUMBNAIL_LOGO);
|
||||||
|
|
||||||
m_playlistThumbnailDownloadFile.setFileName(fileName);
|
m_playlistThumbnailDownloadFile.setFileName(fileName);
|
||||||
|
|
||||||
@ -921,6 +922,7 @@ void MainWindow::downloadPlaylistThumbnails(QString playlistPath)
|
|||||||
QHash<QString, QString> hash;
|
QHash<QString, QString> hash;
|
||||||
QHash<QString, QString> hash2;
|
QHash<QString, QString> hash2;
|
||||||
QHash<QString, QString> hash3;
|
QHash<QString, QString> hash3;
|
||||||
|
QHash<QString, QString> hash4;
|
||||||
const QHash<QString, QString> &itemHash = m_playlistModel->index(i, 0).data(PlaylistModel::HASH).value< QHash<QString, QString> >();
|
const QHash<QString, QString> &itemHash = m_playlistModel->index(i, 0).data(PlaylistModel::HASH).value< QHash<QString, QString> >();
|
||||||
|
|
||||||
hash["db_name"] = itemHash.value("db_name");
|
hash["db_name"] = itemHash.value("db_name");
|
||||||
@ -929,13 +931,16 @@ void MainWindow::downloadPlaylistThumbnails(QString playlistPath)
|
|||||||
|
|
||||||
hash2 = hash;
|
hash2 = hash;
|
||||||
hash3 = hash;
|
hash3 = hash;
|
||||||
|
hash4 = hash;
|
||||||
|
|
||||||
hash2["type"] = THUMBNAIL_SCREENSHOT;
|
hash2["type"] = THUMBNAIL_SCREENSHOT;
|
||||||
hash3["type"] = THUMBNAIL_TITLE;
|
hash3["type"] = THUMBNAIL_TITLE;
|
||||||
|
hash4["type"] = THUMBNAIL_LOGO;
|
||||||
|
|
||||||
m_pendingPlaylistThumbnails.append(hash);
|
m_pendingPlaylistThumbnails.append(hash);
|
||||||
m_pendingPlaylistThumbnails.append(hash2);
|
m_pendingPlaylistThumbnails.append(hash2);
|
||||||
m_pendingPlaylistThumbnails.append(hash3);
|
m_pendingPlaylistThumbnails.append(hash3);
|
||||||
|
m_pendingPlaylistThumbnails.append(hash4);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_playlistThumbnailDownloadProgressDialog->setWindowModality(Qt::NonModal);
|
m_playlistThumbnailDownloadProgressDialog->setWindowModality(Qt::NonModal);
|
||||||
|
@ -193,6 +193,8 @@ QString PlaylistModel::getCurrentTypeThumbnailPath(const QModelIndex &index) con
|
|||||||
return getThumbnailPath(index, THUMBNAIL_SCREENSHOT);
|
return getThumbnailPath(index, THUMBNAIL_SCREENSHOT);
|
||||||
case THUMBNAIL_TYPE_TITLE_SCREEN:
|
case THUMBNAIL_TYPE_TITLE_SCREEN:
|
||||||
return getThumbnailPath(index, THUMBNAIL_TITLE);
|
return getThumbnailPath(index, THUMBNAIL_TITLE);
|
||||||
|
case THUMBNAIL_TYPE_LOGO:
|
||||||
|
return getThumbnailPath(index, THUMBNAIL_LOGO);
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1244,6 +1244,7 @@ void MainWindow::onFileDropWidgetContextMenuRequested(const QPoint &pos)
|
|||||||
m_pendingThumbnailDownloadTypes.append(THUMBNAIL_BOXART);
|
m_pendingThumbnailDownloadTypes.append(THUMBNAIL_BOXART);
|
||||||
m_pendingThumbnailDownloadTypes.append(THUMBNAIL_SCREENSHOT);
|
m_pendingThumbnailDownloadTypes.append(THUMBNAIL_SCREENSHOT);
|
||||||
m_pendingThumbnailDownloadTypes.append(THUMBNAIL_TITLE);
|
m_pendingThumbnailDownloadTypes.append(THUMBNAIL_TITLE);
|
||||||
|
m_pendingThumbnailDownloadTypes.append(THUMBNAIL_LOGO);
|
||||||
downloadThumbnail(system, title);
|
downloadThumbnail(system, title);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -1159,6 +1159,7 @@ MainWindow::MainWindow(QWidget *parent) :
|
|||||||
,m_thumbnailPixmap(NULL)
|
,m_thumbnailPixmap(NULL)
|
||||||
,m_thumbnailPixmap2(NULL)
|
,m_thumbnailPixmap2(NULL)
|
||||||
,m_thumbnailPixmap3(NULL)
|
,m_thumbnailPixmap3(NULL)
|
||||||
|
,m_thumbnailPixmap4(NULL)
|
||||||
,m_settings(NULL)
|
,m_settings(NULL)
|
||||||
,m_viewOptionsDialog(NULL)
|
,m_viewOptionsDialog(NULL)
|
||||||
,m_coreInfoDialog(new CoreInfoDialog(this, NULL))
|
,m_coreInfoDialog(new CoreInfoDialog(this, NULL))
|
||||||
@ -1239,6 +1240,7 @@ MainWindow::MainWindow(QWidget *parent) :
|
|||||||
QAction *thumbnailTypeBoxartAction = NULL;
|
QAction *thumbnailTypeBoxartAction = NULL;
|
||||||
QAction *thumbnailTypeScreenshotAction = NULL;
|
QAction *thumbnailTypeScreenshotAction = NULL;
|
||||||
QAction *thumbnailTypeTitleAction = NULL;
|
QAction *thumbnailTypeTitleAction = NULL;
|
||||||
|
QAction *thumbnailTypeLogoAction = NULL;
|
||||||
QPushButton *viewTypePushButton = new QPushButton(msg_hash_to_str(MENU_ENUM_LABEL_VALUE_QT_VIEW), m_zoomWidget);
|
QPushButton *viewTypePushButton = new QPushButton(msg_hash_to_str(MENU_ENUM_LABEL_VALUE_QT_VIEW), m_zoomWidget);
|
||||||
QMenu *viewTypeMenu = new QMenu(viewTypePushButton);
|
QMenu *viewTypeMenu = new QMenu(viewTypePushButton);
|
||||||
QAction *viewTypeIconsAction = NULL;
|
QAction *viewTypeIconsAction = NULL;
|
||||||
@ -1271,6 +1273,8 @@ MainWindow::MainWindow(QWidget *parent) :
|
|||||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_QT_THUMBNAIL_SCREENSHOT));
|
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_QT_THUMBNAIL_SCREENSHOT));
|
||||||
thumbnailTypeTitleAction = thumbnailTypeMenu->addAction(
|
thumbnailTypeTitleAction = thumbnailTypeMenu->addAction(
|
||||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_QT_THUMBNAIL_TITLE_SCREEN));
|
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_QT_THUMBNAIL_TITLE_SCREEN));
|
||||||
|
thumbnailTypeLogoAction = thumbnailTypeMenu->addAction(
|
||||||
|
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_QT_THUMBNAIL_LOGO));
|
||||||
|
|
||||||
thumbnailTypePushButton->setMenu(thumbnailTypeMenu);
|
thumbnailTypePushButton->setMenu(thumbnailTypeMenu);
|
||||||
|
|
||||||
@ -1509,6 +1513,7 @@ MainWindow::MainWindow(QWidget *parent) :
|
|||||||
connect(thumbnailTypeBoxartAction, SIGNAL(triggered()), this, SLOT(onBoxartThumbnailClicked()));
|
connect(thumbnailTypeBoxartAction, SIGNAL(triggered()), this, SLOT(onBoxartThumbnailClicked()));
|
||||||
connect(thumbnailTypeScreenshotAction, SIGNAL(triggered()), this, SLOT(onScreenshotThumbnailClicked()));
|
connect(thumbnailTypeScreenshotAction, SIGNAL(triggered()), this, SLOT(onScreenshotThumbnailClicked()));
|
||||||
connect(thumbnailTypeTitleAction, SIGNAL(triggered()), this, SLOT(onTitleThumbnailClicked()));
|
connect(thumbnailTypeTitleAction, SIGNAL(triggered()), this, SLOT(onTitleThumbnailClicked()));
|
||||||
|
connect(thumbnailTypeLogoAction, SIGNAL(triggered()), this, SLOT(onLogoThumbnailClicked()));
|
||||||
connect(viewTypeIconsAction, SIGNAL(triggered()), this, SLOT(onIconViewClicked()));
|
connect(viewTypeIconsAction, SIGNAL(triggered()), this, SLOT(onIconViewClicked()));
|
||||||
connect(viewTypeListAction, SIGNAL(triggered()), this, SLOT(onListViewClicked()));
|
connect(viewTypeListAction, SIGNAL(triggered()), this, SLOT(onListViewClicked()));
|
||||||
connect(m_dirModel, SIGNAL(directoryLoaded(const QString&)), this, SLOT(onFileSystemDirLoaded(const QString&)));
|
connect(m_dirModel, SIGNAL(directoryLoaded(const QString&)), this, SLOT(onFileSystemDirLoaded(const QString&)));
|
||||||
@ -1595,6 +1600,8 @@ MainWindow::~MainWindow()
|
|||||||
delete m_thumbnailPixmap2;
|
delete m_thumbnailPixmap2;
|
||||||
if (m_thumbnailPixmap3)
|
if (m_thumbnailPixmap3)
|
||||||
delete m_thumbnailPixmap3;
|
delete m_thumbnailPixmap3;
|
||||||
|
if (m_thumbnailPixmap4)
|
||||||
|
delete m_thumbnailPixmap4;
|
||||||
if (m_proxyFileModel)
|
if (m_proxyFileModel)
|
||||||
delete m_proxyFileModel;
|
delete m_proxyFileModel;
|
||||||
}
|
}
|
||||||
@ -1718,6 +1725,11 @@ void MainWindow::onTitleThumbnailClicked()
|
|||||||
setCurrentThumbnailType(THUMBNAIL_TYPE_TITLE_SCREEN);
|
setCurrentThumbnailType(THUMBNAIL_TYPE_TITLE_SCREEN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWindow::onLogoThumbnailClicked()
|
||||||
|
{
|
||||||
|
setCurrentThumbnailType(THUMBNAIL_TYPE_LOGO);
|
||||||
|
}
|
||||||
|
|
||||||
void MainWindow::setIconViewZoom(int zoom_val)
|
void MainWindow::setIconViewZoom(int zoom_val)
|
||||||
{
|
{
|
||||||
m_zoomSlider->setValue(zoom_val);
|
m_zoomSlider->setValue(zoom_val);
|
||||||
@ -2251,6 +2263,22 @@ void MainWindow::onThumbnailDropped(const QImage &image,
|
|||||||
onResizeThumbnailThree(*m_thumbnailPixmap3, true);
|
onResizeThumbnailThree(*m_thumbnailPixmap3, true);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case THUMBNAIL_TYPE_LOGO:
|
||||||
|
{
|
||||||
|
QString path = changeThumbnail(image, THUMBNAIL_LOGO);
|
||||||
|
|
||||||
|
if (path.isNull())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (m_thumbnailPixmap4)
|
||||||
|
delete m_thumbnailPixmap4;
|
||||||
|
|
||||||
|
m_thumbnailPixmap4 = new QPixmap(path);
|
||||||
|
|
||||||
|
onResizeThumbnailFour(*m_thumbnailPixmap4, true);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3471,6 +3499,8 @@ void MainWindow::onCurrentItemChanged(const QHash<QString, QString> &hash)
|
|||||||
delete m_thumbnailPixmap2;
|
delete m_thumbnailPixmap2;
|
||||||
if (m_thumbnailPixmap3)
|
if (m_thumbnailPixmap3)
|
||||||
delete m_thumbnailPixmap3;
|
delete m_thumbnailPixmap3;
|
||||||
|
if (m_thumbnailPixmap4)
|
||||||
|
delete m_thumbnailPixmap4;
|
||||||
|
|
||||||
if (m_playlistModel->isSupportedImage(path))
|
if (m_playlistModel->isSupportedImage(path))
|
||||||
{
|
{
|
||||||
@ -3478,6 +3508,7 @@ void MainWindow::onCurrentItemChanged(const QHash<QString, QString> &hash)
|
|||||||
m_thumbnailPixmap = new QPixmap(path);
|
m_thumbnailPixmap = new QPixmap(path);
|
||||||
m_thumbnailPixmap2 = new QPixmap(*m_thumbnailPixmap);
|
m_thumbnailPixmap2 = new QPixmap(*m_thumbnailPixmap);
|
||||||
m_thumbnailPixmap3 = new QPixmap(*m_thumbnailPixmap);
|
m_thumbnailPixmap3 = new QPixmap(*m_thumbnailPixmap);
|
||||||
|
m_thumbnailPixmap4 = new QPixmap(*m_thumbnailPixmap);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -3487,6 +3518,7 @@ void MainWindow::onCurrentItemChanged(const QHash<QString, QString> &hash)
|
|||||||
m_thumbnailPixmap = new QPixmap(thumbnailsDir + "/" + THUMBNAIL_BOXART + "/" + thumbnailName);
|
m_thumbnailPixmap = new QPixmap(thumbnailsDir + "/" + THUMBNAIL_BOXART + "/" + thumbnailName);
|
||||||
m_thumbnailPixmap2 = new QPixmap(thumbnailsDir + "/" + THUMBNAIL_TITLE + "/" + thumbnailName);
|
m_thumbnailPixmap2 = new QPixmap(thumbnailsDir + "/" + THUMBNAIL_TITLE + "/" + thumbnailName);
|
||||||
m_thumbnailPixmap3 = new QPixmap(thumbnailsDir + "/" + THUMBNAIL_SCREENSHOT + "/" + thumbnailName);
|
m_thumbnailPixmap3 = new QPixmap(thumbnailsDir + "/" + THUMBNAIL_SCREENSHOT + "/" + thumbnailName);
|
||||||
|
m_thumbnailPixmap4 = new QPixmap(thumbnailsDir + "/" + THUMBNAIL_LOGO + "/" + thumbnailName);
|
||||||
|
|
||||||
if ( m_currentBrowser == BROWSER_TYPE_PLAYLISTS
|
if ( m_currentBrowser == BROWSER_TYPE_PLAYLISTS
|
||||||
&& !currentPlaylistIsSpecial())
|
&& !currentPlaylistIsSpecial())
|
||||||
@ -3496,6 +3528,7 @@ void MainWindow::onCurrentItemChanged(const QHash<QString, QString> &hash)
|
|||||||
onResizeThumbnailOne(*m_thumbnailPixmap, acceptDrop);
|
onResizeThumbnailOne(*m_thumbnailPixmap, acceptDrop);
|
||||||
onResizeThumbnailTwo(*m_thumbnailPixmap2, acceptDrop);
|
onResizeThumbnailTwo(*m_thumbnailPixmap2, acceptDrop);
|
||||||
onResizeThumbnailThree(*m_thumbnailPixmap3, acceptDrop);
|
onResizeThumbnailThree(*m_thumbnailPixmap3, acceptDrop);
|
||||||
|
onResizeThumbnailFour(*m_thumbnailPixmap4, acceptDrop);
|
||||||
|
|
||||||
setCoreActions();
|
setCoreActions();
|
||||||
}
|
}
|
||||||
@ -3524,6 +3557,11 @@ void MainWindow::onResizeThumbnailThree(QPixmap &pixmap, bool acceptDrop)
|
|||||||
setThumbnail("thumbnail3", pixmap, acceptDrop);
|
setThumbnail("thumbnail3", pixmap, acceptDrop);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWindow::onResizeThumbnailFour(QPixmap &pixmap, bool acceptDrop)
|
||||||
|
{
|
||||||
|
setThumbnail("thumbnail4", pixmap, acceptDrop);
|
||||||
|
}
|
||||||
|
|
||||||
void MainWindow::setCurrentViewType(ViewType viewType)
|
void MainWindow::setCurrentViewType(ViewType viewType)
|
||||||
{
|
{
|
||||||
m_viewType = viewType;
|
m_viewType = viewType;
|
||||||
@ -3897,6 +3935,8 @@ QString MainWindow::getCurrentThumbnailTypeString()
|
|||||||
return QStringLiteral("screenshot");
|
return QStringLiteral("screenshot");
|
||||||
case THUMBNAIL_TYPE_TITLE_SCREEN:
|
case THUMBNAIL_TYPE_TITLE_SCREEN:
|
||||||
return QStringLiteral("title");
|
return QStringLiteral("title");
|
||||||
|
case THUMBNAIL_TYPE_LOGO:
|
||||||
|
return QStringLiteral("logo");
|
||||||
case THUMBNAIL_TYPE_BOXART:
|
case THUMBNAIL_TYPE_BOXART:
|
||||||
default:
|
default:
|
||||||
return QStringLiteral("boxart");
|
return QStringLiteral("boxart");
|
||||||
@ -3913,6 +3953,8 @@ ThumbnailType MainWindow::getThumbnailTypeFromString(QString thumbnailType)
|
|||||||
return THUMBNAIL_TYPE_SCREENSHOT;
|
return THUMBNAIL_TYPE_SCREENSHOT;
|
||||||
else if (thumbnailType == "title")
|
else if (thumbnailType == "title")
|
||||||
return THUMBNAIL_TYPE_TITLE_SCREEN;
|
return THUMBNAIL_TYPE_TITLE_SCREEN;
|
||||||
|
else if (thumbnailType == "logo")
|
||||||
|
return THUMBNAIL_TYPE_LOGO;
|
||||||
|
|
||||||
return THUMBNAIL_TYPE_BOXART;
|
return THUMBNAIL_TYPE_BOXART;
|
||||||
}
|
}
|
||||||
@ -4559,6 +4601,7 @@ static void* ui_companion_qt_init(void)
|
|||||||
QDockWidget *thumbnailDock = NULL;
|
QDockWidget *thumbnailDock = NULL;
|
||||||
QDockWidget *thumbnail2Dock = NULL;
|
QDockWidget *thumbnail2Dock = NULL;
|
||||||
QDockWidget *thumbnail3Dock = NULL;
|
QDockWidget *thumbnail3Dock = NULL;
|
||||||
|
QDockWidget *thumbnail4Dock = NULL;
|
||||||
QDockWidget *browserAndPlaylistTabDock = NULL;
|
QDockWidget *browserAndPlaylistTabDock = NULL;
|
||||||
QDockWidget *coreSelectionDock = NULL;
|
QDockWidget *coreSelectionDock = NULL;
|
||||||
QTabWidget *browserAndPlaylistTabWidget = NULL;
|
QTabWidget *browserAndPlaylistTabWidget = NULL;
|
||||||
@ -4571,12 +4614,14 @@ static void* ui_companion_qt_init(void)
|
|||||||
ThumbnailWidget *thumbnailWidget = NULL;
|
ThumbnailWidget *thumbnailWidget = NULL;
|
||||||
ThumbnailWidget *thumbnail2Widget = NULL;
|
ThumbnailWidget *thumbnail2Widget = NULL;
|
||||||
ThumbnailWidget *thumbnail3Widget = NULL;
|
ThumbnailWidget *thumbnail3Widget = NULL;
|
||||||
|
ThumbnailWidget *thumbnail4Widget = NULL;
|
||||||
QPushButton *browserDownloadsButton = NULL;
|
QPushButton *browserDownloadsButton = NULL;
|
||||||
QPushButton *browserUpButton = NULL;
|
QPushButton *browserUpButton = NULL;
|
||||||
QPushButton *browserStartButton = NULL;
|
QPushButton *browserStartButton = NULL;
|
||||||
ThumbnailLabel *thumbnail = NULL;
|
ThumbnailLabel *thumbnail = NULL;
|
||||||
ThumbnailLabel *thumbnail2 = NULL;
|
ThumbnailLabel *thumbnail2 = NULL;
|
||||||
ThumbnailLabel *thumbnail3 = NULL;
|
ThumbnailLabel *thumbnail3 = NULL;
|
||||||
|
ThumbnailLabel *thumbnail4 = NULL;
|
||||||
QAction *editSearchAction = NULL;
|
QAction *editSearchAction = NULL;
|
||||||
QAction *loadCoreAction = NULL;
|
QAction *loadCoreAction = NULL;
|
||||||
QAction *unloadCoreAction = NULL;
|
QAction *unloadCoreAction = NULL;
|
||||||
@ -4726,9 +4771,13 @@ static void* ui_companion_qt_init(void)
|
|||||||
thumbnail3Widget = new ThumbnailWidget(THUMBNAIL_TYPE_SCREENSHOT);
|
thumbnail3Widget = new ThumbnailWidget(THUMBNAIL_TYPE_SCREENSHOT);
|
||||||
thumbnail3Widget->setObjectName("thumbnail3");
|
thumbnail3Widget->setObjectName("thumbnail3");
|
||||||
|
|
||||||
|
thumbnail4Widget = new ThumbnailWidget(THUMBNAIL_TYPE_LOGO);
|
||||||
|
thumbnail4Widget->setObjectName("thumbnail4");
|
||||||
|
|
||||||
QObject::connect(thumbnailWidget, SIGNAL(filesDropped(const QImage&, ThumbnailType)), mainwindow, SLOT(onThumbnailDropped(const QImage&, ThumbnailType)));
|
QObject::connect(thumbnailWidget, SIGNAL(filesDropped(const QImage&, ThumbnailType)), mainwindow, SLOT(onThumbnailDropped(const QImage&, ThumbnailType)));
|
||||||
QObject::connect(thumbnail2Widget, SIGNAL(filesDropped(const QImage&, ThumbnailType)), mainwindow, SLOT(onThumbnailDropped(const QImage&, ThumbnailType)));
|
QObject::connect(thumbnail2Widget, SIGNAL(filesDropped(const QImage&, ThumbnailType)), mainwindow, SLOT(onThumbnailDropped(const QImage&, ThumbnailType)));
|
||||||
QObject::connect(thumbnail3Widget, SIGNAL(filesDropped(const QImage&, ThumbnailType)), mainwindow, SLOT(onThumbnailDropped(const QImage&, ThumbnailType)));
|
QObject::connect(thumbnail3Widget, SIGNAL(filesDropped(const QImage&, ThumbnailType)), mainwindow, SLOT(onThumbnailDropped(const QImage&, ThumbnailType)));
|
||||||
|
QObject::connect(thumbnail4Widget, SIGNAL(filesDropped(const QImage&, ThumbnailType)), mainwindow, SLOT(onThumbnailDropped(const QImage&, ThumbnailType)));
|
||||||
|
|
||||||
thumbnailDock = new QDockWidget(msg_hash_to_str(MENU_ENUM_LABEL_VALUE_QT_THUMBNAIL_BOXART), mainwindow);
|
thumbnailDock = new QDockWidget(msg_hash_to_str(MENU_ENUM_LABEL_VALUE_QT_THUMBNAIL_BOXART), mainwindow);
|
||||||
thumbnailDock->setObjectName("thumbnailDock");
|
thumbnailDock->setObjectName("thumbnailDock");
|
||||||
@ -4754,8 +4803,17 @@ static void* ui_companion_qt_init(void)
|
|||||||
|
|
||||||
mainwindow->addDockWidget(static_cast<Qt::DockWidgetArea>(thumbnail3Dock->property("default_area").toInt()), thumbnail3Dock);
|
mainwindow->addDockWidget(static_cast<Qt::DockWidgetArea>(thumbnail3Dock->property("default_area").toInt()), thumbnail3Dock);
|
||||||
|
|
||||||
|
thumbnail4Dock = new QDockWidget(msg_hash_to_str(MENU_ENUM_LABEL_VALUE_QT_THUMBNAIL_LOGO), mainwindow);
|
||||||
|
thumbnail4Dock->setObjectName("thumbnail4Dock");
|
||||||
|
thumbnail4Dock->setProperty("default_area", Qt::RightDockWidgetArea);
|
||||||
|
thumbnail4Dock->setProperty("menu_text", msg_hash_to_str(MENU_ENUM_LABEL_VALUE_QT_THUMBNAIL_LOGO));
|
||||||
|
thumbnail4Dock->setWidget(thumbnail4Widget);
|
||||||
|
|
||||||
|
mainwindow->addDockWidget(static_cast<Qt::DockWidgetArea>(thumbnail4Dock->property("default_area").toInt()), thumbnail4Dock);
|
||||||
|
|
||||||
mainwindow->tabifyDockWidget(thumbnailDock, thumbnail2Dock);
|
mainwindow->tabifyDockWidget(thumbnailDock, thumbnail2Dock);
|
||||||
mainwindow->tabifyDockWidget(thumbnailDock, thumbnail3Dock);
|
mainwindow->tabifyDockWidget(thumbnailDock, thumbnail3Dock);
|
||||||
|
mainwindow->tabifyDockWidget(thumbnailDock, thumbnail4Dock);
|
||||||
|
|
||||||
/* when tabifying the dock widgets, the last tab added is selected by default, so we need to re-select the first tab */
|
/* when tabifying the dock widgets, the last tab added is selected by default, so we need to re-select the first tab */
|
||||||
thumbnailDock->raise();
|
thumbnailDock->raise();
|
||||||
@ -4878,6 +4936,8 @@ static void* ui_companion_qt_init(void)
|
|||||||
mainwindow->setCurrentThumbnailType(THUMBNAIL_TYPE_SCREENSHOT);
|
mainwindow->setCurrentThumbnailType(THUMBNAIL_TYPE_SCREENSHOT);
|
||||||
else if (thumbnailType == "title")
|
else if (thumbnailType == "title")
|
||||||
mainwindow->setCurrentThumbnailType(THUMBNAIL_TYPE_TITLE_SCREEN);
|
mainwindow->setCurrentThumbnailType(THUMBNAIL_TYPE_TITLE_SCREEN);
|
||||||
|
else if (thumbnailType == "logo")
|
||||||
|
mainwindow->setCurrentThumbnailType(THUMBNAIL_TYPE_LOGO);
|
||||||
else
|
else
|
||||||
mainwindow->setCurrentThumbnailType(THUMBNAIL_TYPE_BOXART);
|
mainwindow->setCurrentThumbnailType(THUMBNAIL_TYPE_BOXART);
|
||||||
}
|
}
|
||||||
|
@ -68,6 +68,7 @@ extern "C" {
|
|||||||
#define THUMBNAIL_BOXART "Named_Boxarts"
|
#define THUMBNAIL_BOXART "Named_Boxarts"
|
||||||
#define THUMBNAIL_SCREENSHOT "Named_Snaps"
|
#define THUMBNAIL_SCREENSHOT "Named_Snaps"
|
||||||
#define THUMBNAIL_TITLE "Named_Titles"
|
#define THUMBNAIL_TITLE "Named_Titles"
|
||||||
|
#define THUMBNAIL_LOGO "Named_Logos"
|
||||||
|
|
||||||
class QApplication;
|
class QApplication;
|
||||||
class QCloseEvent;
|
class QCloseEvent;
|
||||||
@ -117,6 +118,7 @@ enum ThumbnailType
|
|||||||
THUMBNAIL_TYPE_BOXART,
|
THUMBNAIL_TYPE_BOXART,
|
||||||
THUMBNAIL_TYPE_SCREENSHOT,
|
THUMBNAIL_TYPE_SCREENSHOT,
|
||||||
THUMBNAIL_TYPE_TITLE_SCREEN,
|
THUMBNAIL_TYPE_TITLE_SCREEN,
|
||||||
|
THUMBNAIL_TYPE_LOGO,
|
||||||
};
|
};
|
||||||
|
|
||||||
static inline double lerp(double x, double y, double a, double b, double d)
|
static inline double lerp(double x, double y, double a, double b, double d)
|
||||||
@ -411,6 +413,7 @@ signals:
|
|||||||
void thumbnailChanged(const QPixmap &pixmap);
|
void thumbnailChanged(const QPixmap &pixmap);
|
||||||
void thumbnail2Changed(const QPixmap &pixmap);
|
void thumbnail2Changed(const QPixmap &pixmap);
|
||||||
void thumbnail3Changed(const QPixmap &pixmap);
|
void thumbnail3Changed(const QPixmap &pixmap);
|
||||||
|
void thumbnail4Changed(const QPixmap &pixmap);
|
||||||
void gotLogMessage(const QString &msg);
|
void gotLogMessage(const QString &msg);
|
||||||
void gotStatusMessage(QString msg, unsigned priority, unsigned duration, bool flush);
|
void gotStatusMessage(QString msg, unsigned priority, unsigned duration, bool flush);
|
||||||
void gotReloadPlaylists();
|
void gotReloadPlaylists();
|
||||||
@ -443,6 +446,7 @@ public slots:
|
|||||||
void onResizeThumbnailOne(QPixmap &pixmap, bool acceptDrop);
|
void onResizeThumbnailOne(QPixmap &pixmap, bool acceptDrop);
|
||||||
void onResizeThumbnailTwo(QPixmap &pixmap, bool acceptDrop);
|
void onResizeThumbnailTwo(QPixmap &pixmap, bool acceptDrop);
|
||||||
void onResizeThumbnailThree(QPixmap &pixmap, bool acceptDrop);
|
void onResizeThumbnailThree(QPixmap &pixmap, bool acceptDrop);
|
||||||
|
void onResizeThumbnailFour(QPixmap &pixmap, bool acceptDrop);
|
||||||
void appendLogMessage(const QString &msg);
|
void appendLogMessage(const QString &msg);
|
||||||
void onGotLogMessage(const QString &msg);
|
void onGotLogMessage(const QString &msg);
|
||||||
void onGotStatusMessage(QString msg, unsigned priority, unsigned duration, bool flush);
|
void onGotStatusMessage(QString msg, unsigned priority, unsigned duration, bool flush);
|
||||||
@ -457,6 +461,7 @@ public slots:
|
|||||||
void onBoxartThumbnailClicked();
|
void onBoxartThumbnailClicked();
|
||||||
void onScreenshotThumbnailClicked();
|
void onScreenshotThumbnailClicked();
|
||||||
void onTitleThumbnailClicked();
|
void onTitleThumbnailClicked();
|
||||||
|
void onLogoThumbnailClicked();
|
||||||
void onTabWidgetIndexChanged(int index);
|
void onTabWidgetIndexChanged(int index);
|
||||||
void deleteCurrentPlaylistItem();
|
void deleteCurrentPlaylistItem();
|
||||||
void onFileDropWidgetContextMenuRequested(const QPoint &pos);
|
void onFileDropWidgetContextMenuRequested(const QPoint &pos);
|
||||||
@ -574,6 +579,7 @@ private:
|
|||||||
QPixmap *m_thumbnailPixmap;
|
QPixmap *m_thumbnailPixmap;
|
||||||
QPixmap *m_thumbnailPixmap2;
|
QPixmap *m_thumbnailPixmap2;
|
||||||
QPixmap *m_thumbnailPixmap3;
|
QPixmap *m_thumbnailPixmap3;
|
||||||
|
QPixmap *m_thumbnailPixmap4;
|
||||||
QSettings *m_settings;
|
QSettings *m_settings;
|
||||||
ViewOptionsDialog *m_viewOptionsDialog;
|
ViewOptionsDialog *m_viewOptionsDialog;
|
||||||
CoreInfoDialog *m_coreInfoDialog;
|
CoreInfoDialog *m_coreInfoDialog;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user