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);