diff --git a/apps/fileop.c b/apps/fileop.c index 5c123e2f99..a42cffa8a8 100644 --- a/apps/fileop.c +++ b/apps/fileop.c @@ -510,7 +510,9 @@ int copy_move_fileobject(const char *src_path, const char *dst_path, unsigned in int rc; if (file_exists(dst.path)) { /* If user chooses not to overwrite, cancel */ - if (!yesno_pop(ID2P(LANG_REALLY_OVERWRITE))) { + if (!yesno_pop(ID2P(LANG_REALLY_OVERWRITE))) + { + splash(HZ, ID2P(LANG_CANCEL)); return FORC_NOOVERWRT; } diff --git a/apps/gui/yesno.c b/apps/gui/yesno.c index 7232b315ec..0487a100d8 100644 --- a/apps/gui/yesno.c +++ b/apps/gui/yesno.c @@ -368,14 +368,35 @@ enum yesno_res gui_syncyesno_run(const struct text_message * main_message, main_message, yes_message, no_message); } -/* Function to manipulate all yesno dialogues. - This function needs the prompt text as an argument. */ -bool yesno_pop(const char* text) +static bool yesno_pop_lines(const char *lines[], int line_cnt) { - const char *lines[]={text}; - const struct text_message message={lines, 1}; + const struct text_message message={lines, line_cnt}; bool ret = (gui_syncyesno_run(&message,NULL,NULL)== YESNO_YES); FOR_NB_SCREENS(i) screens[i].clear_viewport(); return ret; } + +/* YES/NO dialog, uses text parameter as prompt */ +bool yesno_pop(const char* text) +{ + const char *lines[]= {text}; + return yesno_pop_lines(lines, 1); +} + +/* YES/NO dialog, asks "Are you sure?", displays + text parameter on second line. + + Says "Cancelled" if answered negatively. +*/ +bool yesno_pop_confirm(const char* text) +{ + bool confirmed; + const char *lines[] = {ID2P(LANG_ARE_YOU_SURE), text}; + confirmed = yesno_pop_lines(lines, 2); + + if (!confirmed) + splash(HZ, ID2P(LANG_CANCEL)); + + return confirmed; +} diff --git a/apps/gui/yesno.h b/apps/gui/yesno.h index 5f67733d79..3c3876238b 100644 --- a/apps/gui/yesno.h +++ b/apps/gui/yesno.h @@ -57,5 +57,6 @@ extern enum yesno_res gui_syncyesno_run_w_tmo( const struct text_message * no_message); bool yesno_pop(const char* text); +bool yesno_pop_confirm(const char* text); #endif /* _GUI_YESNO_H_ */ diff --git a/apps/hosted/android/yesno.c b/apps/hosted/android/yesno.c index af7f5a5c7b..417cbb0fcc 100644 --- a/apps/hosted/android/yesno.c +++ b/apps/hosted/android/yesno.c @@ -130,14 +130,35 @@ enum yesno_res gui_syncyesno_run_w_tmo(int ticks, enum yesno_res tmo_default_res #endif -/* Function to manipulate all yesno dialogues. - This function needs the output text as an argument. */ -bool yesno_pop(const char* text) +static bool yesno_pop_lines(const char *lines[], int line_cnt) { - const char *lines[]={text}; - const struct text_message message={lines, 1}; + const struct text_message message={lines, line_cnt}; bool ret = (gui_syncyesno_run(&message,NULL,NULL)== YESNO_YES); FOR_NB_SCREENS(i) screens[i].clear_viewport(); return ret; } + +/* YES/NO dialog, uses text parameter as prompt */ +bool yesno_pop(const char* text) +{ + const char *lines[]= {text}; + return yesno_pop_lines(lines, 1); +} + +/* YES/NO dialog, asks "Are you sure?", displays + text parameter on second line. + + Says "Cancelled" if answered negatively. +*/ +bool yesno_pop_confirm(const char* text) +{ + bool confirmed; + const char *lines[] = {ID2P(LANG_ARE_YOU_SURE), text}; + confirmed = yesno_pop_lines(lines, 2); + + if (!confirmed) + splash(HZ, ID2P(LANG_CANCEL)); + + return confirmed; +} diff --git a/apps/lang/arabic.lang b/apps/lang/arabic.lang index b240fe9f73..79ec0625a9 100644 --- a/apps/lang/arabic.lang +++ b/apps/lang/arabic.lang @@ -3194,8 +3194,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/basque.lang b/apps/lang/basque.lang index eecaab6512..32298fda24 100644 --- a/apps/lang/basque.lang +++ b/apps/lang/basque.lang @@ -227,8 +227,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/bulgarian.lang b/apps/lang/bulgarian.lang index 967b4361e2..4b251b9cc8 100644 --- a/apps/lang/bulgarian.lang +++ b/apps/lang/bulgarian.lang @@ -231,8 +231,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/catala.lang b/apps/lang/catala.lang index 3e1c44cead..86b0c1408b 100644 --- a/apps/lang/catala.lang +++ b/apps/lang/catala.lang @@ -229,8 +229,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/chinese-simp.lang b/apps/lang/chinese-simp.lang index ca3b40f898..c58ad7cc5c 100644 --- a/apps/lang/chinese-simp.lang +++ b/apps/lang/chinese-simp.lang @@ -8757,8 +8757,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/chinese-trad.lang b/apps/lang/chinese-trad.lang index 1cd5059b8e..2965e0901a 100644 --- a/apps/lang/chinese-trad.lang +++ b/apps/lang/chinese-trad.lang @@ -8944,8 +8944,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/czech.lang b/apps/lang/czech.lang index 4c7873e761..6d8a58d7a0 100644 --- a/apps/lang/czech.lang +++ b/apps/lang/czech.lang @@ -231,8 +231,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/dansk.lang b/apps/lang/dansk.lang index dbb4ed85ea..7daa131241 100644 --- a/apps/lang/dansk.lang +++ b/apps/lang/dansk.lang @@ -9785,8 +9785,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/deutsch.lang b/apps/lang/deutsch.lang index 40d4f56aa2..bf8e22f966 100644 --- a/apps/lang/deutsch.lang +++ b/apps/lang/deutsch.lang @@ -248,8 +248,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/english-us.lang b/apps/lang/english-us.lang index 4755860b82..55ca745900 100644 --- a/apps/lang/english-us.lang +++ b/apps/lang/english-us.lang @@ -225,8 +225,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/english.lang b/apps/lang/english.lang index 6e5179bbf0..64eea420f1 100644 --- a/apps/lang/english.lang +++ b/apps/lang/english.lang @@ -310,8 +310,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/espanol.lang b/apps/lang/espanol.lang index a868b8abf5..3750219c8c 100644 --- a/apps/lang/espanol.lang +++ b/apps/lang/espanol.lang @@ -9156,8 +9156,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/finnish.lang b/apps/lang/finnish.lang index c91e4e0f97..c2ca288949 100644 --- a/apps/lang/finnish.lang +++ b/apps/lang/finnish.lang @@ -9675,8 +9675,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/francais.lang b/apps/lang/francais.lang index eb8c68a8f8..d45916dad8 100644 --- a/apps/lang/francais.lang +++ b/apps/lang/francais.lang @@ -258,8 +258,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/galego.lang b/apps/lang/galego.lang index 39fd44a255..22f68a2321 100644 --- a/apps/lang/galego.lang +++ b/apps/lang/galego.lang @@ -11934,8 +11934,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/greek.lang b/apps/lang/greek.lang index 356bfb4660..191d202c14 100644 --- a/apps/lang/greek.lang +++ b/apps/lang/greek.lang @@ -231,8 +231,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/hebrew.lang b/apps/lang/hebrew.lang index 50ac35dba2..1b68720dcd 100644 --- a/apps/lang/hebrew.lang +++ b/apps/lang/hebrew.lang @@ -233,8 +233,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/hrvatski.lang b/apps/lang/hrvatski.lang index 95157dbd74..92e170ea64 100644 --- a/apps/lang/hrvatski.lang +++ b/apps/lang/hrvatski.lang @@ -227,8 +227,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/italiano.lang b/apps/lang/italiano.lang index 81d7b88dfa..4761b29998 100644 --- a/apps/lang/italiano.lang +++ b/apps/lang/italiano.lang @@ -229,8 +229,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/japanese.lang b/apps/lang/japanese.lang index 42526bff30..c4505a68b3 100644 --- a/apps/lang/japanese.lang +++ b/apps/lang/japanese.lang @@ -234,8 +234,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/korean.lang b/apps/lang/korean.lang index 6c33bf7b98..b92d83f94c 100644 --- a/apps/lang/korean.lang +++ b/apps/lang/korean.lang @@ -242,8 +242,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/latviesu.lang b/apps/lang/latviesu.lang index 3666e7e624..be3fb51b6e 100644 --- a/apps/lang/latviesu.lang +++ b/apps/lang/latviesu.lang @@ -228,8 +228,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/lietuviu.lang b/apps/lang/lietuviu.lang index 44fd386d4a..29702d487b 100644 --- a/apps/lang/lietuviu.lang +++ b/apps/lang/lietuviu.lang @@ -298,8 +298,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/magyar.lang b/apps/lang/magyar.lang index 933a291e5d..1d0eaadc14 100644 --- a/apps/lang/magyar.lang +++ b/apps/lang/magyar.lang @@ -228,8 +228,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/moldoveneste.lang b/apps/lang/moldoveneste.lang index 29ed734254..94f274f51e 100644 --- a/apps/lang/moldoveneste.lang +++ b/apps/lang/moldoveneste.lang @@ -9004,8 +9004,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/nederlands.lang b/apps/lang/nederlands.lang index 69ea427de0..373bd3fb05 100644 --- a/apps/lang/nederlands.lang +++ b/apps/lang/nederlands.lang @@ -8965,8 +8965,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/norsk-nynorsk.lang b/apps/lang/norsk-nynorsk.lang index 084bec9f96..5bbee471ab 100644 --- a/apps/lang/norsk-nynorsk.lang +++ b/apps/lang/norsk-nynorsk.lang @@ -9779,8 +9779,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/norsk.lang b/apps/lang/norsk.lang index afd9898684..0a33aa1003 100644 --- a/apps/lang/norsk.lang +++ b/apps/lang/norsk.lang @@ -10042,8 +10042,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/polski.lang b/apps/lang/polski.lang index 4c9b05e47d..dc927ba47d 100644 --- a/apps/lang/polski.lang +++ b/apps/lang/polski.lang @@ -235,8 +235,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/portugues-brasileiro.lang b/apps/lang/portugues-brasileiro.lang index e9375dfbbe..f4d0e1d221 100644 --- a/apps/lang/portugues-brasileiro.lang +++ b/apps/lang/portugues-brasileiro.lang @@ -230,8 +230,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/portugues.lang b/apps/lang/portugues.lang index 0f8226f90b..f6ef08abd5 100644 --- a/apps/lang/portugues.lang +++ b/apps/lang/portugues.lang @@ -9203,8 +9203,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/romaneste.lang b/apps/lang/romaneste.lang index 45ff06ec4f..120b89e0ac 100644 --- a/apps/lang/romaneste.lang +++ b/apps/lang/romaneste.lang @@ -9004,8 +9004,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/russian.lang b/apps/lang/russian.lang index 50d21b091e..7e14c4ba5e 100644 --- a/apps/lang/russian.lang +++ b/apps/lang/russian.lang @@ -9103,8 +9103,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/slovak.lang b/apps/lang/slovak.lang index 28e5fc159d..2d85cb8ba2 100644 --- a/apps/lang/slovak.lang +++ b/apps/lang/slovak.lang @@ -227,8 +227,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/slovenscina.lang b/apps/lang/slovenscina.lang index 32a5345ce8..7d13456719 100644 --- a/apps/lang/slovenscina.lang +++ b/apps/lang/slovenscina.lang @@ -11553,8 +11553,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/srpski.lang b/apps/lang/srpski.lang index 949b6db840..a030641b13 100644 --- a/apps/lang/srpski.lang +++ b/apps/lang/srpski.lang @@ -241,8 +241,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/svenska.lang b/apps/lang/svenska.lang index dd2c35a4ed..02093cfff9 100644 --- a/apps/lang/svenska.lang +++ b/apps/lang/svenska.lang @@ -234,8 +234,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/tagalog.lang b/apps/lang/tagalog.lang index 72cbf01aa3..9ce6359ad0 100644 --- a/apps/lang/tagalog.lang +++ b/apps/lang/tagalog.lang @@ -227,8 +227,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/thai.lang b/apps/lang/thai.lang index bcaa4b1490..8b6ac990d2 100644 --- a/apps/lang/thai.lang +++ b/apps/lang/thai.lang @@ -228,8 +228,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/turkce.lang b/apps/lang/turkce.lang index 449f723392..a2b1d3b13b 100644 --- a/apps/lang/turkce.lang +++ b/apps/lang/turkce.lang @@ -217,8 +217,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/ukrainian.lang b/apps/lang/ukrainian.lang index 058e36f4f4..26e97209f4 100644 --- a/apps/lang/ukrainian.lang +++ b/apps/lang/ukrainian.lang @@ -228,8 +228,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/vlaams.lang b/apps/lang/vlaams.lang index c9158cc0a9..f54e171dbf 100644 --- a/apps/lang/vlaams.lang +++ b/apps/lang/vlaams.lang @@ -9651,8 +9651,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/lang/walon.lang b/apps/lang/walon.lang index 06b1b623ad..7318d88de0 100644 --- a/apps/lang/walon.lang +++ b/apps/lang/walon.lang @@ -232,8 +232,8 @@ - id: LANG_RESET_ASK - desc: confirm to reset settings + id: LANG_ARE_YOU_SURE + desc: confirm action user: core *: "Are You Sure?" diff --git a/apps/menus/main_menu.c b/apps/menus/main_menu.c index 8805b52944..4a0b8f2eb5 100644 --- a/apps/menus/main_menu.c +++ b/apps/menus/main_menu.c @@ -57,7 +57,7 @@ static int show_info(void); static int reset_settings(void) { - static const char *lines[]={ID2P(LANG_RESET_ASK)}; + static const char *lines[]={ID2P(LANG_ARE_YOU_SURE), ID2P(LANG_RESET)}; static const char *yes_lines[]={ ID2P(LANG_SETTINGS), ID2P(LANG_RESET_DONE_CLEAR) @@ -66,7 +66,7 @@ static int reset_settings(void) ID2P(LANG_SETTINGS), ID2P(LANG_CANCEL) }; - static const struct text_message message={lines, 1}; + static const struct text_message message={lines, 2}; static const struct text_message yes_message={yes_lines, 2}; static const struct text_message no_message={no_lines, 2}; diff --git a/apps/misc.c b/apps/misc.c index 7cc2d5fcf6..82aec68b47 100644 --- a/apps/misc.c +++ b/apps/misc.c @@ -196,7 +196,13 @@ bool warn_on_pl_erase(void) {ID2P(LANG_WARN_ERASEDYNPLAYLIST_PROMPT)}; static const struct text_message message={lines, 1}; - return (gui_syncyesno_run(&message, NULL, NULL) == YESNO_YES); + if (gui_syncyesno_run(&message, NULL, NULL) == YESNO_YES) + return true; + else + { + splash(HZ, ID2P(LANG_CANCEL)); + return false; + } } else return true; diff --git a/apps/onplay.c b/apps/onplay.c index 8a1d676eb6..f149aae63a 100644 --- a/apps/onplay.c +++ b/apps/onplay.c @@ -183,7 +183,7 @@ static int bookmark_menu_callback(int action, /* CONTEXT_WPS playlist options */ static bool shuffle_playlist(void) { - if (!warn_on_pl_erase()) + if (!yesno_pop_confirm(ID2P(LANG_SHUFFLE))) return false; playlist_sort(NULL, true); playlist_randomise(NULL, current_tick, true); diff --git a/apps/playlist_viewer.c b/apps/playlist_viewer.c index f51fdf3def..e5ed132c57 100644 --- a/apps/playlist_viewer.c +++ b/apps/playlist_viewer.c @@ -774,6 +774,8 @@ static enum pv_context_result context_menu(int index) return show_track_info(current_track); case 5: /* shuffle */ + if (!yesno_pop_confirm(ID2P(LANG_SHUFFLE))) + return PV_CONTEXT_UNCHANGED; playlist_sort(viewer.playlist, !viewer.playlist); playlist_randomise(viewer.playlist, current_tick, !viewer.playlist); viewer.selected_track = 0; diff --git a/apps/plugin.c b/apps/plugin.c index dd92791622..9233cc7bb5 100644 --- a/apps/plugin.c +++ b/apps/plugin.c @@ -844,6 +844,7 @@ static const struct plugin_api rockbox_api = { the API gets incompatible */ add_playbacklog, &device_battery_tables, + yesno_pop_confirm, }; static int plugin_buffer_handle; diff --git a/apps/plugin.h b/apps/plugin.h index 9739533a0a..5be1147cab 100644 --- a/apps/plugin.h +++ b/apps/plugin.h @@ -993,6 +993,7 @@ struct plugin_api { the API gets incompatible */ void (*add_playbacklog)(struct mp3entry *id3); struct battery_tables_t *device_battery_tables; + bool (*yesno_pop_confirm)(const char* text); }; /* plugin header */ diff --git a/apps/plugins/main_menu_config.c b/apps/plugins/main_menu_config.c index 53b4c826d2..78a1578b8a 100644 --- a/apps/plugins/main_menu_config.c +++ b/apps/plugins/main_menu_config.c @@ -234,20 +234,11 @@ enum plugin_status plugin_start(const void* parameter) rb->gui_synclist_select_item(&list, cur_sel + 1); /* speaks */ changed = true; break; - case 2:; - static const char *lines[] = - {ID2P(LANG_RESET_ASK), ID2P(LANG_LOAD_DEFAULT_CONFIGURATION)}; - static const struct text_message message={lines, 2}; - - switch(rb->gui_syncyesno_run(&message, NULL, NULL)) + case 2: + if (rb->yesno_pop_confirm(ID2P(LANG_LOAD_DEFAULT_CONFIGURATION))) { - case YESNO_YES: - rb->root_menu_set_default(&rb->global_settings->root_menu_customized, NULL); - load_from_cfg(); - break; - default: - rb->splash(HZ, ID2P(LANG_CANCEL)); - break; + rb->root_menu_set_default(&rb->global_settings->root_menu_customized, NULL); + load_from_cfg(); } /* fall-through */ default: diff --git a/apps/plugins/pictureflow/pictureflow.c b/apps/plugins/pictureflow/pictureflow.c index 61fe43c274..c50725d30f 100644 --- a/apps/plugins/pictureflow/pictureflow.c +++ b/apps/plugins/pictureflow/pictureflow.c @@ -3590,6 +3590,11 @@ static int display_settings_menu(void) rb->set_bool(rb->str(LANG_RESIZE_COVERS), &pf_cfg.resize); if (old_val == pf_cfg.resize) /* changed? */ break; + else if (!rb->yesno_pop_confirm(ID2P(LANG_RESIZE_COVERS))) + { + pf_cfg.resize = old_val; + break; + } pf_cfg.update_albumart = false; pf_cfg.cache_version = CACHE_REBUILD; @@ -3766,6 +3771,8 @@ static int main_menu(void) break; #endif case PF_REBUILD_CACHE: + if (!rb->yesno_pop_confirm(ID2P(LANG_REBUILD_CACHE))) + break; pf_cfg.update_albumart = false; pf_cfg.cache_version = CACHE_REBUILD; rb->remove(EMPTY_SLIDE); @@ -3773,6 +3780,8 @@ static int main_menu(void) CONFIG_NUM_ITEMS, CONFIG_VERSION); return -3; /* re-init */ case PF_UPDATE_CACHE: + if (!rb->yesno_pop_confirm(ID2P(LANG_UPDATE_CACHE))) + break; pf_cfg.update_albumart = true; pf_cfg.cache_version = CACHE_REBUILD; rb->remove(EMPTY_SLIDE);