diff options
-rw-r--r-- | apps/gui/quickscreen.c | 25 | ||||
-rw-r--r-- | apps/gui/quickscreen.h | 7 | ||||
-rw-r--r-- | apps/gui/wps.c | 20 | ||||
-rw-r--r-- | apps/keymaps/keymap-agptekrocker.c | 19 | ||||
-rw-r--r-- | apps/keymaps/keymap-clip.c | 2 | ||||
-rw-r--r-- | apps/keymaps/keymap-erosq.c | 1 | ||||
-rw-r--r-- | apps/keymaps/keymap-fiiom3k.c | 3 | ||||
-rw-r--r-- | apps/keymaps/keymap-fuzeplus.c | 3 | ||||
-rw-r--r-- | apps/keymaps/keymap-ipod.c | 2 | ||||
-rw-r--r-- | apps/keymaps/keymap-nwz.c | 3 | ||||
-rw-r--r-- | apps/keymaps/keymap-nwza860.c | 3 | ||||
-rw-r--r-- | apps/keymaps/keymap-zen.c | 3 | ||||
-rw-r--r-- | apps/menu.c | 7 | ||||
-rw-r--r-- | apps/tree.c | 28 | ||||
-rw-r--r-- | manual/main_menu/main.tex | 3 |
15 files changed, 86 insertions, 43 deletions
diff --git a/apps/gui/quickscreen.c b/apps/gui/quickscreen.c index e403e13e6c..141eb1a16b 100644 --- a/apps/gui/quickscreen.c +++ b/apps/gui/quickscreen.c | |||
@@ -320,13 +320,13 @@ static int quickscreen_touchscreen_button(void) | |||
320 | } | 320 | } |
321 | #endif | 321 | #endif |
322 | 322 | ||
323 | static bool gui_syncquickscreen_run(struct gui_quickscreen * qs, int button_enter, bool *usb) | 323 | static int gui_syncquickscreen_run(struct gui_quickscreen * qs, int button_enter, bool *usb) |
324 | { | 324 | { |
325 | int button; | 325 | int button; |
326 | struct viewport parent[NB_SCREENS]; | 326 | struct viewport parent[NB_SCREENS]; |
327 | struct viewport vps[NB_SCREENS][QUICKSCREEN_ITEM_COUNT]; | 327 | struct viewport vps[NB_SCREENS][QUICKSCREEN_ITEM_COUNT]; |
328 | struct viewport vp_icons[NB_SCREENS]; | 328 | struct viewport vp_icons[NB_SCREENS]; |
329 | bool changed = false; | 329 | int ret = QUICKSCREEN_OK; |
330 | /* To quit we need either : | 330 | /* To quit we need either : |
331 | * - a second press on the button that made us enter | 331 | * - a second press on the button that made us enter |
332 | * - an action taken while pressing the enter button, | 332 | * - an action taken while pressing the enter button, |
@@ -367,7 +367,7 @@ static bool gui_syncquickscreen_run(struct gui_quickscreen * qs, int button_ente | |||
367 | } | 367 | } |
368 | if (gui_quickscreen_do_button(qs, button)) | 368 | if (gui_quickscreen_do_button(qs, button)) |
369 | { | 369 | { |
370 | changed = true; | 370 | ret |= QUICKSCREEN_CHANGED; |
371 | can_quit = true; | 371 | can_quit = true; |
372 | FOR_NB_SCREENS(i) | 372 | FOR_NB_SCREENS(i) |
373 | gui_quickscreen_draw(qs, &screens[i], &parent[i], | 373 | gui_quickscreen_draw(qs, &screens[i], &parent[i], |
@@ -389,6 +389,11 @@ static bool gui_syncquickscreen_run(struct gui_quickscreen * qs, int button_ente | |||
389 | FOR_NB_SCREENS(i) | 389 | FOR_NB_SCREENS(i) |
390 | skin_update(CUSTOM_STATUSBAR, i, SKIN_REFRESH_NON_STATIC); | 390 | skin_update(CUSTOM_STATUSBAR, i, SKIN_REFRESH_NON_STATIC); |
391 | } | 391 | } |
392 | else if (button == ACTION_STD_CONTEXT) | ||
393 | { | ||
394 | ret |= QUICKSCREEN_GOTO_SHORTCUTS_MENU; | ||
395 | break; | ||
396 | } | ||
392 | if ((button == button_enter) && can_quit) | 397 | if ((button == button_enter) && can_quit) |
393 | break; | 398 | break; |
394 | 399 | ||
@@ -405,7 +410,8 @@ static bool gui_syncquickscreen_run(struct gui_quickscreen * qs, int button_ente | |||
405 | } | 410 | } |
406 | 411 | ||
407 | pop_current_activity(); | 412 | pop_current_activity(); |
408 | return changed; | 413 | |
414 | return ret; | ||
409 | } | 415 | } |
410 | 416 | ||
411 | static const struct settings_list *get_setting(int gs_value, | 417 | static const struct settings_list *get_setting(int gs_value, |
@@ -427,9 +433,6 @@ int quick_screen_quick(int button_enter) | |||
427 | #endif | 433 | #endif |
428 | bool usb = false; | 434 | bool usb = false; |
429 | 435 | ||
430 | if (global_settings.shortcuts_replaces_qs) | ||
431 | return do_shortcut_menu(NULL); | ||
432 | |||
433 | qs.items[QUICKSCREEN_TOP] = | 436 | qs.items[QUICKSCREEN_TOP] = |
434 | get_setting(global_settings.qs_items[QUICKSCREEN_TOP], NULL); | 437 | get_setting(global_settings.qs_items[QUICKSCREEN_TOP], NULL); |
435 | qs.items[QUICKSCREEN_LEFT] = | 438 | qs.items[QUICKSCREEN_LEFT] = |
@@ -442,7 +445,8 @@ int quick_screen_quick(int button_enter) | |||
442 | get_setting(global_settings.qs_items[QUICKSCREEN_BOTTOM], NULL); | 445 | get_setting(global_settings.qs_items[QUICKSCREEN_BOTTOM], NULL); |
443 | 446 | ||
444 | qs.callback = NULL; | 447 | qs.callback = NULL; |
445 | if (gui_syncquickscreen_run(&qs, button_enter, &usb)) | 448 | int ret = gui_syncquickscreen_run(&qs, button_enter, &usb); |
449 | if (ret & QUICKSCREEN_CHANGED) | ||
446 | { | 450 | { |
447 | settings_save(); | 451 | settings_save(); |
448 | /* make sure repeat/shuffle/any other nasty ones get updated */ | 452 | /* make sure repeat/shuffle/any other nasty ones get updated */ |
@@ -465,7 +469,10 @@ int quick_screen_quick(int button_enter) | |||
465 | set_albumart_mode(global_settings.album_art); | 469 | set_albumart_mode(global_settings.album_art); |
466 | #endif | 470 | #endif |
467 | } | 471 | } |
468 | return (usb ? 1:0); | 472 | if (usb) |
473 | return QUICKSCREEN_IN_USB; | ||
474 | return ret & QUICKSCREEN_GOTO_SHORTCUTS_MENU ? QUICKSCREEN_GOTO_SHORTCUTS_MENU : | ||
475 | QUICKSCREEN_OK; | ||
469 | } | 476 | } |
470 | 477 | ||
471 | /* stuff to make the quickscreen configurable */ | 478 | /* stuff to make the quickscreen configurable */ |
diff --git a/apps/gui/quickscreen.h b/apps/gui/quickscreen.h index 015928ee8a..6082b5a883 100644 --- a/apps/gui/quickscreen.h +++ b/apps/gui/quickscreen.h | |||
@@ -36,6 +36,13 @@ enum quickscreen_item { | |||
36 | QUICKSCREEN_ITEM_COUNT, | 36 | QUICKSCREEN_ITEM_COUNT, |
37 | }; | 37 | }; |
38 | 38 | ||
39 | enum quickscreen_return { | ||
40 | QUICKSCREEN_OK = 0, | ||
41 | QUICKSCREEN_IN_USB = 0x1, | ||
42 | QUICKSCREEN_GOTO_SHORTCUTS_MENU = 0x2, | ||
43 | QUICKSCREEN_CHANGED = 0x4, | ||
44 | }; | ||
45 | |||
39 | struct gui_quickscreen | 46 | struct gui_quickscreen |
40 | { | 47 | { |
41 | const struct settings_list *items[QUICKSCREEN_ITEM_COUNT]; | 48 | const struct settings_list *items[QUICKSCREEN_ITEM_COUNT]; |
diff --git a/apps/gui/wps.c b/apps/gui/wps.c index 2587542b00..5b973a2199 100644 --- a/apps/gui/wps.c +++ b/apps/gui/wps.c | |||
@@ -53,6 +53,7 @@ | |||
53 | #include "root_menu.h" | 53 | #include "root_menu.h" |
54 | #include "backdrop.h" | 54 | #include "backdrop.h" |
55 | #include "quickscreen.h" | 55 | #include "quickscreen.h" |
56 | #include "shortcuts.h" | ||
56 | #include "pitchscreen.h" | 57 | #include "pitchscreen.h" |
57 | #include "appevents.h" | 58 | #include "appevents.h" |
58 | #include "viewport.h" | 59 | #include "viewport.h" |
@@ -839,15 +840,24 @@ long gui_wps_show(void) | |||
839 | case ACTION_WPS_QUICKSCREEN: | 840 | case ACTION_WPS_QUICKSCREEN: |
840 | { | 841 | { |
841 | gwps_leave_wps(); | 842 | gwps_leave_wps(); |
842 | if (global_settings.shortcuts_replaces_qs) | 843 | bool enter_shortcuts_menu = global_settings.shortcuts_replaces_qs; |
844 | if (!enter_shortcuts_menu) | ||
843 | { | 845 | { |
844 | global_status.last_screen = GO_TO_SHORTCUTMENU; | ||
845 | int ret = quick_screen_quick(button); | 846 | int ret = quick_screen_quick(button); |
847 | if (ret == QUICKSCREEN_IN_USB) | ||
848 | return GO_TO_ROOT; | ||
849 | else if (ret == QUICKSCREEN_GOTO_SHORTCUTS_MENU) | ||
850 | enter_shortcuts_menu = true; | ||
851 | else | ||
852 | restore = true; | ||
853 | } | ||
854 | |||
855 | if (enter_shortcuts_menu) | ||
856 | { | ||
857 | global_status.last_screen = GO_TO_SHORTCUTMENU; | ||
858 | int ret = do_shortcut_menu(NULL); | ||
846 | return (ret == GO_TO_PREVIOUS ? GO_TO_WPS : ret); | 859 | return (ret == GO_TO_PREVIOUS ? GO_TO_WPS : ret); |
847 | } | 860 | } |
848 | else if (quick_screen_quick(button) > 0) | ||
849 | return GO_TO_ROOT; | ||
850 | restore = true; | ||
851 | } | 861 | } |
852 | break; | 862 | break; |
853 | #endif /* HAVE_QUICKSCREEN */ | 863 | #endif /* HAVE_QUICKSCREEN */ |
diff --git a/apps/keymaps/keymap-agptekrocker.c b/apps/keymaps/keymap-agptekrocker.c index 1fb8465b0a..d016b3b323 100644 --- a/apps/keymaps/keymap-agptekrocker.c +++ b/apps/keymaps/keymap-agptekrocker.c | |||
@@ -139,15 +139,16 @@ static const struct button_mapping button_context_yesno[] = { | |||
139 | }; /* button_context_settings_yesno */ | 139 | }; /* button_context_settings_yesno */ |
140 | 140 | ||
141 | static const struct button_mapping button_context_quickscreen[] = { | 141 | static const struct button_mapping button_context_quickscreen[] = { |
142 | { ACTION_QS_TOP, BUTTON_UP|BUTTON_REL, BUTTON_NONE }, | 142 | { ACTION_QS_TOP, BUTTON_UP|BUTTON_REL, BUTTON_NONE }, |
143 | { ACTION_QS_TOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | 143 | { ACTION_QS_TOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, |
144 | { ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REL, BUTTON_NONE }, | 144 | { ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REL, BUTTON_NONE }, |
145 | { ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | 145 | { ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, |
146 | { ACTION_QS_LEFT, BUTTON_LEFT|BUTTON_REL, BUTTON_NONE }, | 146 | { ACTION_QS_LEFT, BUTTON_LEFT|BUTTON_REL, BUTTON_NONE }, |
147 | { ACTION_QS_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | 147 | { ACTION_QS_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, |
148 | { ACTION_QS_RIGHT, BUTTON_RIGHT|BUTTON_REL, BUTTON_NONE }, | 148 | { ACTION_QS_RIGHT, BUTTON_RIGHT|BUTTON_REL, BUTTON_NONE }, |
149 | { ACTION_QS_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | 149 | { ACTION_QS_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, |
150 | { ACTION_STD_CANCEL, BUTTON_SELECT, BUTTON_NONE }, | 150 | { ACTION_STD_CONTEXT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT }, |
151 | { ACTION_STD_CANCEL, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT }, | ||
151 | 152 | ||
152 | LAST_ITEM_IN_LIST | 153 | LAST_ITEM_IN_LIST |
153 | }; /* button_context_quickscreen */ | 154 | }; /* button_context_quickscreen */ |
diff --git a/apps/keymaps/keymap-clip.c b/apps/keymaps/keymap-clip.c index 3c92f03a07..917f769890 100644 --- a/apps/keymaps/keymap-clip.c +++ b/apps/keymaps/keymap-clip.c | |||
@@ -179,7 +179,7 @@ static const struct button_mapping button_context_quickscreen[] = { | |||
179 | { ACTION_NONE, BUTTON_LEFT, BUTTON_NONE }, | 179 | { ACTION_NONE, BUTTON_LEFT, BUTTON_NONE }, |
180 | { ACTION_STD_CANCEL, BUTTON_POWER|BUTTON_REL, BUTTON_NONE }, | 180 | { ACTION_STD_CANCEL, BUTTON_POWER|BUTTON_REL, BUTTON_NONE }, |
181 | { ACTION_STD_CANCEL, BUTTON_HOME, BUTTON_NONE }, | 181 | { ACTION_STD_CANCEL, BUTTON_HOME, BUTTON_NONE }, |
182 | { ACTION_STD_CANCEL, BUTTON_SELECT, BUTTON_NONE }, | 182 | { ACTION_STD_CANCEL, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT }, |
183 | { ACTION_QS_TOP, BUTTON_UP|BUTTON_REL, BUTTON_NONE }, | 183 | { ACTION_QS_TOP, BUTTON_UP|BUTTON_REL, BUTTON_NONE }, |
184 | { ACTION_QS_TOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | 184 | { ACTION_QS_TOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, |
185 | { ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REL, BUTTON_NONE }, | 185 | { ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REL, BUTTON_NONE }, |
diff --git a/apps/keymaps/keymap-erosq.c b/apps/keymaps/keymap-erosq.c index d486423a53..c69e4babdb 100644 --- a/apps/keymaps/keymap-erosq.c +++ b/apps/keymaps/keymap-erosq.c | |||
@@ -130,6 +130,7 @@ static const struct button_mapping button_context_quickscreen[] = { | |||
130 | { ACTION_QS_DOWN, BUTTON_NEXT|BUTTON_REL, BUTTON_NONE }, | 130 | { ACTION_QS_DOWN, BUTTON_NEXT|BUTTON_REL, BUTTON_NONE }, |
131 | { ACTION_QS_DOWN, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE }, | 131 | { ACTION_QS_DOWN, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE }, |
132 | { ACTION_STD_CANCEL, BUTTON_BACK, BUTTON_NONE }, | 132 | { ACTION_STD_CANCEL, BUTTON_BACK, BUTTON_NONE }, |
133 | { ACTION_STD_CONTEXT,BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU }, | ||
133 | 134 | ||
134 | LAST_ITEM_IN_LIST | 135 | LAST_ITEM_IN_LIST |
135 | }; /* button_context_quickscreen */ | 136 | }; /* button_context_quickscreen */ |
diff --git a/apps/keymaps/keymap-fiiom3k.c b/apps/keymaps/keymap-fiiom3k.c index d0fbbb2e98..a9744b908b 100644 --- a/apps/keymaps/keymap-fiiom3k.c +++ b/apps/keymaps/keymap-fiiom3k.c | |||
@@ -175,7 +175,8 @@ static const struct button_mapping button_context_quickscreen[] = { | |||
175 | {ACTION_QS_VOLUP, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE}, | 175 | {ACTION_QS_VOLUP, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE}, |
176 | {ACTION_QS_VOLDOWN, BUTTON_VOL_DOWN, BUTTON_NONE}, | 176 | {ACTION_QS_VOLDOWN, BUTTON_VOL_DOWN, BUTTON_NONE}, |
177 | {ACTION_QS_VOLDOWN, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE}, | 177 | {ACTION_QS_VOLDOWN, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE}, |
178 | {ACTION_STD_CANCEL, BUTTON_SELECT, BUTTON_NONE}, | 178 | {ACTION_STD_CONTEXT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT}, |
179 | {ACTION_STD_CANCEL, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT}, | ||
179 | {ACTION_STD_CANCEL, BUTTON_POWER, BUTTON_NONE}, | 180 | {ACTION_STD_CANCEL, BUTTON_POWER, BUTTON_NONE}, |
180 | {ACTION_STD_CANCEL, BUTTON_BACK, BUTTON_NONE}, | 181 | {ACTION_STD_CANCEL, BUTTON_BACK, BUTTON_NONE}, |
181 | {ACTION_STD_CANCEL, BUTTON_MENU, BUTTON_NONE}, | 182 | {ACTION_STD_CANCEL, BUTTON_MENU, BUTTON_NONE}, |
diff --git a/apps/keymaps/keymap-fuzeplus.c b/apps/keymaps/keymap-fuzeplus.c index 6601316469..9ce5a79fc2 100644 --- a/apps/keymaps/keymap-fuzeplus.c +++ b/apps/keymaps/keymap-fuzeplus.c | |||
@@ -128,7 +128,8 @@ static const struct button_mapping button_context_keyboard[] = { | |||
128 | }; /* button_context_keyboard */ | 128 | }; /* button_context_keyboard */ |
129 | 129 | ||
130 | static const struct button_mapping button_context_quickscreen[] = { | 130 | static const struct button_mapping button_context_quickscreen[] = { |
131 | { ACTION_STD_CANCEL, BUTTON_SELECT, BUTTON_NONE }, | 131 | { ACTION_STD_CONTEXT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT }, |
132 | { ACTION_STD_CANCEL, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT }, | ||
132 | { ACTION_STD_CANCEL, BUTTON_BACK, BUTTON_NONE }, | 133 | { ACTION_STD_CANCEL, BUTTON_BACK, BUTTON_NONE }, |
133 | { ACTION_STD_CANCEL, BUTTON_PLAYPAUSE, BUTTON_NONE }, | 134 | { ACTION_STD_CANCEL, BUTTON_PLAYPAUSE, BUTTON_NONE }, |
134 | { ACTION_STD_CANCEL, BUTTON_BOTTOMRIGHT, BUTTON_NONE }, | 135 | { ACTION_STD_CANCEL, BUTTON_BOTTOMRIGHT, BUTTON_NONE }, |
diff --git a/apps/keymaps/keymap-ipod.c b/apps/keymaps/keymap-ipod.c index e3a17fffba..6d06bd0244 100644 --- a/apps/keymaps/keymap-ipod.c +++ b/apps/keymaps/keymap-ipod.c | |||
@@ -132,7 +132,7 @@ static const struct button_mapping button_context_quickscreen[] = { | |||
132 | { ACTION_QS_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | 132 | { ACTION_QS_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, |
133 | { ACTION_QS_RIGHT, BUTTON_RIGHT, BUTTON_NONE }, | 133 | { ACTION_QS_RIGHT, BUTTON_RIGHT, BUTTON_NONE }, |
134 | { ACTION_QS_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | 134 | { ACTION_QS_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, |
135 | { ACTION_STD_CANCEL, BUTTON_SELECT, BUTTON_NONE }, | 135 | { ACTION_STD_CANCEL, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT }, |
136 | { ACTION_QS_VOLDOWN, BUTTON_SCROLL_BACK, BUTTON_NONE }, | 136 | { ACTION_QS_VOLDOWN, BUTTON_SCROLL_BACK, BUTTON_NONE }, |
137 | { ACTION_QS_VOLDOWN, BUTTON_SCROLL_BACK|BUTTON_REPEAT, BUTTON_NONE }, | 137 | { ACTION_QS_VOLDOWN, BUTTON_SCROLL_BACK|BUTTON_REPEAT, BUTTON_NONE }, |
138 | { ACTION_QS_VOLUP, BUTTON_SCROLL_FWD, BUTTON_NONE }, | 138 | { ACTION_QS_VOLUP, BUTTON_SCROLL_FWD, BUTTON_NONE }, |
diff --git a/apps/keymaps/keymap-nwz.c b/apps/keymaps/keymap-nwz.c index 028fbf1bfd..1fae8d3594 100644 --- a/apps/keymaps/keymap-nwz.c +++ b/apps/keymaps/keymap-nwz.c | |||
@@ -112,7 +112,8 @@ static const struct button_mapping button_context_keyboard[] = { | |||
112 | }; /* button_context_keyboard */ | 112 | }; /* button_context_keyboard */ |
113 | 113 | ||
114 | static const struct button_mapping button_context_quickscreen[] = { | 114 | static const struct button_mapping button_context_quickscreen[] = { |
115 | { ACTION_STD_CANCEL, BUTTON_PLAY, BUTTON_NONE }, | 115 | { ACTION_STD_CONTEXT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY }, |
116 | { ACTION_STD_CANCEL, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY }, | ||
116 | { ACTION_STD_CANCEL, BUTTON_BACK, BUTTON_NONE }, | 117 | { ACTION_STD_CANCEL, BUTTON_BACK, BUTTON_NONE }, |
117 | { ACTION_STD_CANCEL, BUTTON_POWER, BUTTON_NONE }, | 118 | { ACTION_STD_CANCEL, BUTTON_POWER, BUTTON_NONE }, |
118 | { ACTION_QS_TOP, BUTTON_UP, BUTTON_NONE }, | 119 | { ACTION_QS_TOP, BUTTON_UP, BUTTON_NONE }, |
diff --git a/apps/keymaps/keymap-nwza860.c b/apps/keymaps/keymap-nwza860.c index d455e23b62..899796552e 100644 --- a/apps/keymaps/keymap-nwza860.c +++ b/apps/keymaps/keymap-nwza860.c | |||
@@ -74,7 +74,8 @@ static const struct button_mapping button_context_keyboard[] = { | |||
74 | }; /* button_context_keyboard */ | 74 | }; /* button_context_keyboard */ |
75 | 75 | ||
76 | static const struct button_mapping button_context_quickscreen[] = { | 76 | static const struct button_mapping button_context_quickscreen[] = { |
77 | { ACTION_STD_CANCEL, BUTTON_PLAY, BUTTON_NONE }, | 77 | { ACTION_STD_CONTEXT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY }, |
78 | { ACTION_STD_CANCEL, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY }, | ||
78 | { ACTION_STD_CANCEL, BUTTON_BACK, BUTTON_NONE }, | 79 | { ACTION_STD_CANCEL, BUTTON_BACK, BUTTON_NONE }, |
79 | 80 | ||
80 | LAST_ITEM_IN_LIST | 81 | LAST_ITEM_IN_LIST |
diff --git a/apps/keymaps/keymap-zen.c b/apps/keymaps/keymap-zen.c index b0f24af459..04b65b3980 100644 --- a/apps/keymaps/keymap-zen.c +++ b/apps/keymaps/keymap-zen.c | |||
@@ -145,7 +145,8 @@ static const struct button_mapping button_context_keyboard[] = { | |||
145 | }; /* button_context_keyboard */ | 145 | }; /* button_context_keyboard */ |
146 | 146 | ||
147 | static const struct button_mapping button_context_quickscreen[] = { | 147 | static const struct button_mapping button_context_quickscreen[] = { |
148 | { ACTION_STD_CANCEL, BUTTON_SELECT, BUTTON_NONE }, | 148 | { ACTION_STD_CONTEXT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT }, |
149 | { ACTION_STD_CANCEL, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT }, | ||
149 | { ACTION_STD_CANCEL, BUTTON_BACK, BUTTON_NONE }, | 150 | { ACTION_STD_CANCEL, BUTTON_BACK, BUTTON_NONE }, |
150 | { ACTION_STD_CANCEL, BUTTON_PLAYPAUSE, BUTTON_NONE }, | 151 | { ACTION_STD_CANCEL, BUTTON_PLAYPAUSE, BUTTON_NONE }, |
151 | { ACTION_QS_TOP, BUTTON_UP, BUTTON_NONE }, | 152 | { ACTION_QS_TOP, BUTTON_UP, BUTTON_NONE }, |
diff --git a/apps/menu.c b/apps/menu.c index 85dac8a214..c86ada1986 100644 --- a/apps/menu.c +++ b/apps/menu.c | |||
@@ -455,14 +455,13 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected, | |||
455 | #ifdef HAVE_QUICKSCREEN | 455 | #ifdef HAVE_QUICKSCREEN |
456 | else if (action == ACTION_STD_QUICKSCREEN) | 456 | else if (action == ACTION_STD_QUICKSCREEN) |
457 | { | 457 | { |
458 | if (global_settings.shortcuts_replaces_qs) | 458 | if (global_settings.shortcuts_replaces_qs || |
459 | quick_screen_quick(action) == QUICKSCREEN_GOTO_SHORTCUTS_MENU) | ||
459 | { | 460 | { |
460 | global_status.last_screen = GO_TO_SHORTCUTMENU; | 461 | global_status.last_screen = GO_TO_SHORTCUTMENU; |
461 | ret = quick_screen_quick(action); | 462 | ret = do_shortcut_menu(NULL); |
462 | done = true; | 463 | done = true; |
463 | } | 464 | } |
464 | else | ||
465 | quick_screen_quick(action); | ||
466 | redraw_lists = true; | 465 | redraw_lists = true; |
467 | } | 466 | } |
468 | #endif | 467 | #endif |
diff --git a/apps/tree.c b/apps/tree.c index 6622e1c4c2..2bccefa7a1 100644 --- a/apps/tree.c +++ b/apps/tree.c | |||
@@ -72,6 +72,7 @@ | |||
72 | #include "list.h" | 72 | #include "list.h" |
73 | #include "splash.h" | 73 | #include "splash.h" |
74 | #include "quickscreen.h" | 74 | #include "quickscreen.h" |
75 | #include "shortcuts.h" | ||
75 | #include "appevents.h" | 76 | #include "appevents.h" |
76 | 77 | ||
77 | #include "root_menu.h" | 78 | #include "root_menu.h" |
@@ -751,19 +752,28 @@ static int dirbrowse(void) | |||
751 | break; | 752 | break; |
752 | #ifdef HAVE_QUICKSCREEN | 753 | #ifdef HAVE_QUICKSCREEN |
753 | case ACTION_STD_QUICKSCREEN: | 754 | case ACTION_STD_QUICKSCREEN: |
754 | if (global_settings.shortcuts_replaces_qs) | 755 | { |
755 | { | 756 | bool enter_shortcuts_menu = global_settings.shortcuts_replaces_qs; |
756 | if (*tc.dirfilter < NUM_FILTER_MODES) | 757 | if (enter_shortcuts_menu && *tc.dirfilter >= NUM_FILTER_MODES) |
757 | { | ||
758 | global_status.last_screen = GO_TO_SHORTCUTMENU; | ||
759 | return quick_screen_quick(button); | ||
760 | } | ||
761 | break; | 758 | break; |
759 | else if (!enter_shortcuts_menu) | ||
760 | { | ||
761 | int ret = quick_screen_quick(button); | ||
762 | if (ret == QUICKSCREEN_IN_USB) | ||
763 | reload_dir = true; | ||
764 | else if (ret == QUICKSCREEN_GOTO_SHORTCUTS_MENU) | ||
765 | enter_shortcuts_menu = true; | ||
762 | } | 766 | } |
763 | else if (quick_screen_quick(button)) | 767 | |
764 | reload_dir = true; | 768 | if (enter_shortcuts_menu && *tc.dirfilter < NUM_FILTER_MODES) |
769 | { | ||
770 | global_status.last_screen = GO_TO_SHORTCUTMENU; | ||
771 | return do_shortcut_menu(NULL); | ||
772 | } | ||
773 | |||
765 | restore = true; | 774 | restore = true; |
766 | break; | 775 | break; |
776 | } | ||
767 | #endif | 777 | #endif |
768 | 778 | ||
769 | #ifdef HAVE_HOTKEY | 779 | #ifdef HAVE_HOTKEY |
diff --git a/manual/main_menu/main.tex b/manual/main_menu/main.tex index f6f70b1084..0f5a3d26c5 100644 --- a/manual/main_menu/main.tex +++ b/manual/main_menu/main.tex | |||
@@ -270,6 +270,9 @@ utilities. A detailed description of the different plugins is to be found in | |||
270 | To do so, slide your finger around the click wheel as you would on the | 270 | To do so, slide your finger around the click wheel as you would on the |
271 | While Playing Screen.} | 271 | While Playing Screen.} |
272 | } | 272 | } |
273 | |||
274 | Press \ActionStdContext{} to access the \setting{Shortcuts Menu} directly from the | ||
275 | \setting{Quick Screen}. | ||
273 | } | 276 | } |
274 | 277 | ||
275 | \section{\label{ref:MainMenuShortcuts}Shortcuts} | 278 | \section{\label{ref:MainMenuShortcuts}Shortcuts} |