Skip to content

Commit 0606f08

Browse files
committed
Plugins tree browsing restriction
Don't leave the subtree and show only appropriate files.
1 parent 643987e commit 0606f08

File tree

4 files changed

+12
-5
lines changed

4 files changed

+12
-5
lines changed

apps/filetree.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -355,6 +355,10 @@ int ft_load(struct tree_context* c, const char* tempdir)
355355
file_attr != FILE_ATTR_M3U) ||
356356
((*c->dirfilter == SHOW_MUSIC && file_attr != FILE_ATTR_AUDIO) &&
357357
file_attr != FILE_ATTR_M3U) ||
358+
(*c->dirfilter == SHOW_PLUGINS_TREE &&
359+
(dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_ROCK &&
360+
(dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_LUA &&
361+
(dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_OPX) ||
358362
(*c->dirfilter == SHOW_SUPPORTED && !filetype_supported(dptr->attr)))) ||
359363
(*c->dirfilter == SHOW_WPS && file_attr != FILE_ATTR_WPS) ||
360364
(*c->dirfilter == SHOW_FONT && file_attr != FILE_ATTR_FONT) ||

apps/open_plugin.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -387,7 +387,7 @@ void open_plugin_browse(const char *key)
387387
strcpy(op_entry->path, PLUGIN_DIR"/");
388388

389389
struct browse_context browse = {
390-
.dirfilter = SHOW_ALL,
390+
.dirfilter = SHOW_PLUGINS_TREE,
391391
.flags = BROWSE_SELECTONLY | BROWSE_NO_CONTEXT_MENU | BROWSE_DIRFILTER,
392392
.title = str(LANG_OPEN_PLUGIN),
393393
.icon = Icon_Plugin,

apps/settings.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ enum
147147
enum { SHOW_ALL, SHOW_SUPPORTED, SHOW_MUSIC, SHOW_PLAYLIST, SHOW_ID3DB,
148148
NUM_FILTER_MODES,
149149
SHOW_WPS, SHOW_RWPS, SHOW_FMS, SHOW_RFMS, SHOW_SBS, SHOW_RSBS, SHOW_FMR, SHOW_CFG,
150-
SHOW_LNG, SHOW_MOD, SHOW_FONT, SHOW_PLUGINS, SHOW_M3U};
150+
SHOW_LNG, SHOW_MOD, SHOW_FONT, SHOW_PLUGINS, SHOW_M3U, SHOW_PLUGINS_TREE};
151151

152152
/* file and dir sort options */
153153
enum { SORT_ALPHA, SORT_DATE, SORT_DATE_REVERSED, SORT_TYPE, /* available as settings */

apps/tree.c

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -987,7 +987,7 @@ int rockbox_browse(struct browse_context *browse)
987987
tc.sort_dir = global_settings.sort_dir;
988988

989989
reload_dir = true;
990-
if (*tc.dirfilter >= NUM_FILTER_MODES)
990+
if (*tc.dirfilter >= NUM_FILTER_MODES && *tc.dirfilter != SHOW_PLUGINS_TREE)
991991
{
992992
int last_context;
993993
/* don't reset if its the same browse already loaded */
@@ -1018,11 +1018,14 @@ int rockbox_browse(struct browse_context *browse)
10181018
}
10191019
else
10201020
{
1021-
if (dirfilter != SHOW_ID3DB && (browse->flags & BROWSE_DIRFILTER) == 0)
1022-
tc.dirfilter = &global_settings.dirfilter;
10231021
tc.browse = browse;
10241022
strmemccpy(current, browse->root, MAX_PATH);
10251023
set_current_file(current);
1024+
if (dirfilter == SHOW_PLUGINS_TREE)
1025+
tc.dirlevel = 0;
1026+
else if (dirfilter != SHOW_ID3DB)
1027+
tc.dirfilter = &global_settings.dirfilter;
1028+
10261029
if (browse->flags&BROWSE_RUNFILE)
10271030
ret_val = ft_enter(&tc);
10281031
else

0 commit comments

Comments
 (0)