diff options
Diffstat (limited to 'src/ui_act.c')
-rw-r--r-- | src/ui_act.c | 28 |
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); |