From a7e0aacdf182a33b380165ea5563340e0158a03e Mon Sep 17 00:00:00 2001 From: kamel5 Date: Sat, 9 Nov 2019 15:17:41 +0100 Subject: [PATCH] Refactor cRecMenuRecordingSearch --- recmenus.c | 153 +++++++++++++++++++++++++++-------------------------- 1 file changed, 77 insertions(+), 76 deletions(-) diff --git a/recmenus.c b/recmenus.c index 80b696c..5cdeeae 100644 --- a/recmenus.c +++ b/recmenus.c @@ -1285,82 +1285,6 @@ cRecMenuSearchConfirmTimer::cRecMenuSearchConfirmTimer(const cEvent *event, eRec Arrange(); } -/****************************************************************************************** -* Recording Search Menus -******************************************************************************************/ - -// --- cRecMenuRecordingSearch --------------------------------------------------------- -cRecMenuRecordingSearch::cRecMenuRecordingSearch(std::string search) { - strncpy(searchString, search.c_str(), TEXTINPUTLENGTH); - SetWidthPercent(60); - cString infoText = tr("Search in Recordings"); - cRecMenuItemInfo *infoItem = new cRecMenuItemInfo(*infoText, true); - infoItem->CalculateHeight(width - 2 * border); - SetHeader(infoItem); - - AddMenuItem(new cRecMenuItemText(tr("Search Expression:"), TEXTINPUTLENGTH, false, searchString)); - AddMenuItem(new cRecMenuItemButtonYesNo(tr("Perform Search"), tr("Cancel"), rmsRecordingSearchResult, rmsClose, true)); - CalculateHeight(); - CreatePixmap(); - Arrange(); -} - -// --- cRecMenuRecordingSearchResults --------------------------------------------------------- -cRecMenuRecordingSearchResults::cRecMenuRecordingSearchResults(std::string searchString, const cRecording **searchResults, int numResults) { - this->searchString = searchString; - this->searchResults = searchResults; - SetWidthPercent(80); - cString message1 = tr("Found"); - cString message2 = tr("recording"); - cString message3 = tr("recordings"); - cString message4 = tr("for"); - this->numResults = numResults; - cString infoText = cString::sprintf("%s %d %s %s:\n\"%s\"", *message1, numResults, (numResults>1)?(*message3):(*message2), *message4, searchString.c_str()); - cRecMenuItem *infoItem = new cRecMenuItemInfo(*infoText, true); - infoItem->CalculateHeight(width - 2 * border); - SetHeader(infoItem); - - cRecMenuItem *buttons = new cRecMenuItemButtonYesNo(tr("Adapt Search"), tr("Close"), rmsRecordingSearch, rmsClose, false); - SetFooter(buttons); - if (searchResults && (numResults > 0)) { - for (int i = 0; i < numResults; i++) { - if (!AddMenuItemInitial(new cRecMenuItemRecording(searchResults[i], (i == 0) ? true : false))) - break; - } - } - CalculateHeight(); - CreatePixmap(); - Arrange(); -} - -cRecMenuItem *cRecMenuRecordingSearchResults::GetMenuItem(int number) { - if ((number >= 0) && (number < numResults)) { - cRecMenuItem *result = new cRecMenuItemRecording(searchResults[number], false); - return result; - } - return NULL; -} - -int cRecMenuRecordingSearchResults::GetTotalNumMenuItems(void) { - return numResults; -} - -// --- cRecMenuRecordingSearchNotFound --------------------------------------------------------- -cRecMenuRecordingSearchNotFound::cRecMenuRecordingSearchNotFound(std::string searchString) { - SetWidthPercent(50); - cString message = tr("No recordings found for"); - cString text = cString::sprintf("%s\n\"%s\"", - *message, - searchString.c_str()); - cRecMenuItemInfo *infoItem = new cRecMenuItemInfo(*text); - infoItem->CalculateHeight(width - 2 * border); - AddMenuItem(infoItem); - AddMenuItem(new cRecMenuItemButton(tr("OK"), rmsClose, true, true)); - CalculateHeight(); - CreatePixmap(); - Arrange(); -} - /****************************************************************************************** * Timeline ******************************************************************************************/ @@ -1498,6 +1422,83 @@ eRecMenuState cRecMenuTimeline::ProcessKey(eKeys Key) { return state; } +/****************************************************************************************** +* Recording Search Menus +******************************************************************************************/ + +// --- cRecMenuRecordingSearch --------------------------------------------------------- // OK +cRecMenuRecordingSearch::cRecMenuRecordingSearch(std::string search) { + SetWidthPercent(60); + + const cString line1 = tr("Search in Recordings"); + + AddHeader(new cRecMenuItemInfo(*line1, 1, "", "", "", width - 2 * border, true)); + AddFooter(new cRecMenuItemButtonYesNo(tr("Perform Search"), tr("Cancel"), rmsRecordingSearchResult, rmsClose, true)); + + strncpy(searchString, search.c_str(), TEXTINPUTLENGTH); + AddMenuItem(new cRecMenuItemText(tr("Search Expression:"), TEXTINPUTLENGTH, false, searchString)); + + CalculateHeight(); + CreatePixmap(); + Arrange(); +} + +// --- cRecMenuRecordingSearchResults --------------------------------------------------------- +cRecMenuRecordingSearchResults::cRecMenuRecordingSearchResults(std::string searchString, const cRecording **searchResults, int numResults) { + this->searchString = searchString; + this->searchResults = searchResults; + SetWidthPercent(80); + cString message1 = tr("Found"); + cString message2 = tr("recording"); + cString message3 = tr("recordings"); + cString message4 = tr("for"); + this->numResults = numResults; + cString infoText = cString::sprintf("%s %d %s %s:\n\"%s\"", *message1, numResults, (numResults>1)?(*message3):(*message2), *message4, searchString.c_str()); + cRecMenuItem *infoItem = new cRecMenuItemInfo(*infoText, true); + infoItem->CalculateHeight(width - 2 * border); + SetHeader(infoItem); + + cRecMenuItem *buttons = new cRecMenuItemButtonYesNo(tr("Adapt Search"), tr("Close"), rmsRecordingSearch, rmsClose, false); + SetFooter(buttons); + if (searchResults && (numResults > 0)) { + for (int i = 0; i < numResults; i++) { + if (!AddMenuItemInitial(new cRecMenuItemRecording(searchResults[i], (i == 0) ? true : false))) + break; + } + } + CalculateHeight(); + CreatePixmap(); + Arrange(); +} + +cRecMenuItem *cRecMenuRecordingSearchResults::GetMenuItem(int number) { + if ((number >= 0) && (number < numResults)) { + cRecMenuItem *result = new cRecMenuItemRecording(searchResults[number], false); + return result; + } + return NULL; +} + +int cRecMenuRecordingSearchResults::GetTotalNumMenuItems(void) { + return numResults; +} + +// --- cRecMenuRecordingSearchNotFound --------------------------------------------------------- +cRecMenuRecordingSearchNotFound::cRecMenuRecordingSearchNotFound(std::string searchString) { + SetWidthPercent(50); + cString message = tr("No recordings found for"); + cString text = cString::sprintf("%s\n\"%s\"", + *message, + searchString.c_str()); + cRecMenuItemInfo *infoItem = new cRecMenuItemInfo(*text); + infoItem->CalculateHeight(width - 2 * border); + AddMenuItem(infoItem); + AddMenuItem(new cRecMenuItemButton(tr("OK"), rmsClose, true, true)); + CalculateHeight(); + CreatePixmap(); + Arrange(); +} + /****************************************************************************************** * Favorites ******************************************************************************************/