summaryrefslogtreecommitdiff
path: root/src/ui_act.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui_act.c')
-rw-r--r--src/ui_act.c28
1 files changed, 22 insertions, 6 deletions
diff --git a/src/ui_act.c b/src/ui_act.c
index 43d5b6e..fa5c43b 100644
--- a/src/ui_act.c
+++ b/src/ui_act.c
@@ -271,8 +271,12 @@ BarUiActCallback(BarUiActExplain) {
BarUiMsg (&app->settings, MSG_INFO, "Receiving explanation... ");
if (BarUiActDefaultPianoCall (PIANO_REQUEST_EXPLAIN, &reqData)) {
- BarUiMsg (&app->settings, MSG_INFO, "%s\n", reqData.retExplain);
- free (reqData.retExplain);
+ if (reqData.retExplain == NULL) {
+ BarUiMsg (&app->settings, MSG_ERR, "No explanation provided.\n");
+ } else {
+ BarUiMsg (&app->settings, MSG_INFO, "%s\n", reqData.retExplain);
+ free (reqData.retExplain);
+ }
}
BarUiActDefaultEventcmd ("songexplain");
}
@@ -785,7 +789,12 @@ BarUiActCallback(BarUiActManageStation) {
}
/* enable submenus depending on data availability */
- strcpy (question, "Delete ");
+ if (reqData.info.artistSeeds != NULL ||
+ reqData.info.songSeeds != NULL ||
+ reqData.info.stationSeeds != NULL ||
+ reqData.info.feedback != NULL) {
+ strcpy (question, "Delete ");
+ }
if (reqData.info.artistSeeds != NULL) {
strcat (question, "[a]rtist");
*allowedPos++ = 'a';
@@ -814,15 +823,22 @@ BarUiActCallback(BarUiActManageStation) {
strcat (question, "[f]eedback");
*allowedPos++ = 'f';
}
- /* station mode is always available */
if (allowedPos != allowedActions) {
strcat (question, "? ");
}
- strcat (question, "Manage [m]ode? ");
- *allowedPos++ = 'm';
+ /* station mode is not available for QuickMix. */
+ if (!selStation->isQuickMix) {
+ strcat (question, "Manage [m]ode? ");
+ *allowedPos++ = 'm';
+ }
*allowedPos = '\0';
+ if (allowedPos == allowedActions) {
+ BarUiMsg (&app->settings, MSG_INFO, "No actions available.\n");
+ return;
+ }
+
assert (strlen (question) < sizeof (question) / sizeof (*question));
BarUiMsg (&app->settings, MSG_QUESTION, "%s", question);