Skip to content

Commit

Permalink
have show parent dir (for dirs and files) and filter extension (for f…
Browse files Browse the repository at this point in the history
…iles) options visible all the time
  • Loading branch information
Brad Parker committed Sep 26, 2016
1 parent 95406cb commit 6826ec7
Showing 1 changed file with 111 additions and 117 deletions.
228 changes: 111 additions & 117 deletions menu/menu_displaylist.c
Original file line number Diff line number Diff line change
Expand Up @@ -3417,142 +3417,138 @@ static int menu_displaylist_parse_generic(

if (list_size == 0)
{
menu_entries_append_enum(info->list,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_ITEMS),
msg_hash_to_str(MENU_ENUM_LABEL_NO_ITEMS),
MENU_ENUM_LABEL_NO_ITEMS,
MENU_SETTING_NO_ITEM, 0, 0);

string_list_free(str_list);

return 0;
str_list = NULL;
}

for (i = 0; i < list_size; i++)
else
{
bool is_dir;
char label[PATH_MAX_LENGTH] = {0};
const char *path = NULL;
enum msg_hash_enums enum_idx = MSG_UNKNOWN;
enum msg_file_type file_type = FILE_TYPE_NONE;

switch (str_list->elems[i].attr.i)
for (i = 0; i < list_size; i++)
{
case RARCH_DIRECTORY:
file_type = FILE_TYPE_DIRECTORY;
break;
case RARCH_COMPRESSED_ARCHIVE:
file_type = FILE_TYPE_CARCHIVE;
break;
case RARCH_COMPRESSED_FILE_IN_ARCHIVE:
file_type = FILE_TYPE_IN_CARCHIVE;
break;
case RARCH_PLAIN_FILE:
default:
file_type = (enum msg_file_type)info->type_default;
switch (type)
{
case DISPLAYLIST_CORES_DETECTED:
/* in case of deferred_core_list we have to interpret
* every archive as an archive to disallow instant loading
*/
if (path_is_compressed_file(str_list->elems[i].data))
file_type = FILE_TYPE_CARCHIVE;
break;
default:
break;
}
break;
}
bool is_dir;
char label[PATH_MAX_LENGTH] = {0};
const char *path = NULL;
enum msg_hash_enums enum_idx = MSG_UNKNOWN;
enum msg_file_type file_type = FILE_TYPE_NONE;

is_dir = (file_type == FILE_TYPE_DIRECTORY);
switch (str_list->elems[i].attr.i)
{
case RARCH_DIRECTORY:
file_type = FILE_TYPE_DIRECTORY;
break;
case RARCH_COMPRESSED_ARCHIVE:
file_type = FILE_TYPE_CARCHIVE;
break;
case RARCH_COMPRESSED_FILE_IN_ARCHIVE:
file_type = FILE_TYPE_IN_CARCHIVE;
break;
case RARCH_PLAIN_FILE:
default:
file_type = (enum msg_file_type)info->type_default;
switch (type)
{
case DISPLAYLIST_CORES_DETECTED:
/* in case of deferred_core_list we have to interpret
* every archive as an archive to disallow instant loading
*/
if (path_is_compressed_file(str_list->elems[i].data))
file_type = FILE_TYPE_CARCHIVE;
break;
default:
break;
}
break;
}

if (!is_dir)
{
if (BIT32_GET(filebrowser_types, FILEBROWSER_SELECT_DIR))
continue;
if (BIT32_GET(filebrowser_types, FILEBROWSER_SCAN_DIR))
continue;
}
is_dir = (file_type == FILE_TYPE_DIRECTORY);

/* Need to preserve slash first time. */
path = str_list->elems[i].data;
if (!is_dir)
{
if (BIT32_GET(filebrowser_types, FILEBROWSER_SELECT_DIR))
continue;
if (BIT32_GET(filebrowser_types, FILEBROWSER_SCAN_DIR))
continue;
}

if (*info->path && !path_is_compressed)
path = path_basename(path);
/* Need to preserve slash first time. */
path = str_list->elems[i].data;

if (BIT32_GET(filebrowser_types, FILEBROWSER_SELECT_COLLECTION))
{
if (is_dir)
file_type = FILE_TYPE_DIRECTORY;
else
file_type = FILE_TYPE_PLAYLIST_COLLECTION;
}
if (*info->path && !path_is_compressed)
path = path_basename(path);

if (settings->multimedia.builtin_mediaplayer_enable ||
settings->multimedia.builtin_imageviewer_enable)
{
switch (path_is_media_type(path))
if (BIT32_GET(filebrowser_types, FILEBROWSER_SELECT_COLLECTION))
{
case RARCH_CONTENT_MOVIE:
#ifdef HAVE_FFMPEG
if (settings->multimedia.builtin_mediaplayer_enable)
file_type = FILE_TYPE_MOVIE;
#endif
if (is_dir)
file_type = FILE_TYPE_DIRECTORY;
else
file_type = FILE_TYPE_PLAYLIST_COLLECTION;
}

if (settings->multimedia.builtin_mediaplayer_enable ||
settings->multimedia.builtin_imageviewer_enable)
{
switch (path_is_media_type(path))
{
case RARCH_CONTENT_MOVIE:
#ifdef HAVE_FFMPEG
if (settings->multimedia.builtin_mediaplayer_enable)
file_type = FILE_TYPE_MOVIE;
#endif
break;
case RARCH_CONTENT_MUSIC:
#ifdef HAVE_FFMPEG
if (settings->multimedia.builtin_mediaplayer_enable)
file_type = FILE_TYPE_MUSIC;
#endif
break;
case RARCH_CONTENT_IMAGE:
#ifdef HAVE_IMAGEVIEWER
if (settings->multimedia.builtin_imageviewer_enable
&& type != DISPLAYLIST_IMAGES)
file_type = FILE_TYPE_IMAGEVIEWER;
else
file_type = FILE_TYPE_IMAGE;
#endif
break;
default:
break;
}
}

switch (file_type)
{
case FILE_TYPE_PLAIN:
#if 0
enum_idx = MENU_ENUM_LABEL_FILE_BROWSER_PLAIN_FILE;
#endif
break;
case RARCH_CONTENT_MUSIC:
#ifdef HAVE_FFMPEG
if (settings->multimedia.builtin_mediaplayer_enable)
file_type = FILE_TYPE_MUSIC;
#endif
case FILE_TYPE_MOVIE:
enum_idx = MENU_ENUM_LABEL_FILE_BROWSER_MOVIE_OPEN;
break;
case RARCH_CONTENT_IMAGE:
#ifdef HAVE_IMAGEVIEWER
if (settings->multimedia.builtin_imageviewer_enable
&& type != DISPLAYLIST_IMAGES)
file_type = FILE_TYPE_IMAGEVIEWER;
else
file_type = FILE_TYPE_IMAGE;
#endif
case FILE_TYPE_MUSIC:
enum_idx = MENU_ENUM_LABEL_FILE_BROWSER_MUSIC_OPEN;
break;
case FILE_TYPE_IMAGE:
enum_idx = MENU_ENUM_LABEL_FILE_BROWSER_IMAGE;
break;
case FILE_TYPE_IMAGEVIEWER:
enum_idx = MENU_ENUM_LABEL_FILE_BROWSER_IMAGE_OPEN_WITH_VIEWER;
break;
case FILE_TYPE_DIRECTORY:
enum_idx = MENU_ENUM_LABEL_FILE_BROWSER_DIRECTORY;
break;
default:
break;
}
}

switch (file_type)
{
case FILE_TYPE_PLAIN:
#if 0
enum_idx = MENU_ENUM_LABEL_FILE_BROWSER_PLAIN_FILE;
#endif
break;
case FILE_TYPE_MOVIE:
enum_idx = MENU_ENUM_LABEL_FILE_BROWSER_MOVIE_OPEN;
break;
case FILE_TYPE_MUSIC:
enum_idx = MENU_ENUM_LABEL_FILE_BROWSER_MUSIC_OPEN;
break;
case FILE_TYPE_IMAGE:
enum_idx = MENU_ENUM_LABEL_FILE_BROWSER_IMAGE;
break;
case FILE_TYPE_IMAGEVIEWER:
enum_idx = MENU_ENUM_LABEL_FILE_BROWSER_IMAGE_OPEN_WITH_VIEWER;
break;
case FILE_TYPE_DIRECTORY:
enum_idx = MENU_ENUM_LABEL_FILE_BROWSER_DIRECTORY;
break;
default:
break;
items_found++;
menu_entries_append_enum(info->list, path, label,
enum_idx,
file_type, 0, 0);
}

items_found++;
menu_entries_append_enum(info->list, path, label,
enum_idx,
file_type, 0, 0);
}

string_list_free(str_list);
if (str_list && str_list->size > 0)
string_list_free(str_list);

if (items_found == 0)
{
Expand All @@ -3561,8 +3557,6 @@ static int menu_displaylist_parse_generic(
msg_hash_to_str(MENU_ENUM_LABEL_NO_ITEMS),
MENU_ENUM_LABEL_NO_ITEMS,
MENU_SETTING_NO_ITEM, 0, 0);

goto end;
}

/* We don't want to show 'filter by extension' for this. */
Expand Down

0 comments on commit 6826ec7

Please sign in to comment.