Skip to content

Commit c745dc7

Browse files
committed
Plugins tree browsing restriction
Don't leave the subtree and show only appropriate files.
1 parent 9926249 commit c745dc7

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
@@ -361,6 +361,10 @@ int ft_load(struct tree_context* c, const char* tempdir)
361361
file_attr != FILE_ATTR_M3U) ||
362362
((*c->dirfilter == SHOW_MUSIC && file_attr != FILE_ATTR_AUDIO) &&
363363
file_attr != FILE_ATTR_M3U) ||
364+
(*c->dirfilter == SHOW_PLUGINS_TREE &&
365+
(dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_ROCK &&
366+
(dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_LUA &&
367+
(dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_OPX) ||
364368
(*c->dirfilter == SHOW_SUPPORTED && !filetype_supported(dptr->attr)))) ||
365369
(*c->dirfilter == SHOW_WPS && file_attr != FILE_ATTR_WPS) ||
366370
(*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
@@ -1028,7 +1028,7 @@ int rockbox_browse(struct browse_context *browse)
10281028
}
10291029
else
10301030
{
1031-
if (*tc.dirfilter >= NUM_FILTER_MODES)
1031+
if (*tc.dirfilter >= NUM_FILTER_MODES && *tc.dirfilter != SHOW_PLUGINS_TREE)
10321032
{
10331033
int last_context;
10341034
/* don't reset if its the same browse already loaded */
@@ -1057,10 +1057,13 @@ int rockbox_browse(struct browse_context *browse)
10571057
}
10581058
else
10591059
{
1060-
if (dirfilter != SHOW_ID3DB && (browse->flags & BROWSE_DIRFILTER) == 0)
1061-
tc.dirfilter = &global_settings.dirfilter;
10621060
tc.browse = browse;
10631061
set_current_file(browse->root);
1062+
if (dirfilter == SHOW_PLUGINS_TREE)
1063+
tc.dirlevel = 0;
1064+
else if (dirfilter != SHOW_ID3DB)
1065+
tc.dirfilter = &global_settings.dirfilter;
1066+
10641067
if (browse->flags&BROWSE_RUNFILE)
10651068
ret_val = ft_enter(&tc);
10661069
else

0 commit comments

Comments
 (0)