From 4c60bf1235a0e68e896d9fcd93c493658075200c Mon Sep 17 00:00:00 2001 From: satbaby Date: Fri, 11 May 2012 09:42:50 +0200 Subject: [PATCH 1/2] eventlist.cpp:-fix select timer in search mode --- src/gui/eventlist.cpp | 35 ++++++++++++++++------------------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/src/gui/eventlist.cpp b/src/gui/eventlist.cpp index 5b39242d0..d80e39493 100644 --- a/src/gui/eventlist.cpp +++ b/src/gui/eventlist.cpp @@ -431,14 +431,14 @@ int CNeutrinoEventList::exec(const t_channel_id channel_id, const std::string& c if (g_settings.recording_type != CNeutrinoApp::RECORDING_OFF) { int tID = -1; - CTimerd::CTimerEventTypes etype = isScheduled(channel_id, &evtlist[selected], &tID); + CTimerd::CTimerEventTypes etype = isScheduled(evtlist[selected].channelID, &evtlist[selected], &tID); if(etype == CTimerd::TIMER_RECORD) //remove timer event { g_Timerd->removeTimerEvent(tID); timerlist.clear(); g_Timerd->getTimerList (timerlist); - paint(channel_id); - showFunctionBar(true, channel_id); + paint(evtlist[selected].channelID); + showFunctionBar(true, evtlist[selected].channelID); continue; } char *recDir = g_settings.network_nfs_recordingdir; @@ -450,7 +450,7 @@ int CNeutrinoEventList::exec(const t_channel_id channel_id, const std::string& c { hide(); recDirs.exec(NULL,""); - paint(channel_id); + paint(evtlist[selected].channelID); timeoutEnd = CRCInput::calcTimeoutEnd(g_settings.timing[SNeutrinoSettings::TIMING_EPG]); } else @@ -465,8 +465,7 @@ int CNeutrinoEventList::exec(const t_channel_id channel_id, const std::string& c } if (recDir != NULL) //add/remove recording timer events and check/warn for conflicts { - //FIXME: bad ?if (g_Timerd->addRecordTimerEvent(evtlist[selected].sub ? GET_CHANNEL_ID_FROM_EVENT_ID(evtlist[selected].eventID) : channel_id, - if (g_Timerd->addRecordTimerEvent(channel_id, + if (g_Timerd->addRecordTimerEvent(evtlist[selected].channelID , evtlist[selected].startTime, evtlist[selected].startTime + evtlist[selected].duration, evtlist[selected].eventID, evtlist[selected].startTime, @@ -475,8 +474,7 @@ int CNeutrinoEventList::exec(const t_channel_id channel_id, const std::string& c { if(askUserOnTimerConflict(evtlist[selected].startTime - (ANNOUNCETIME + 120), evtlist[selected].startTime + evtlist[selected].duration)) //check for timer conflict { - //g_Timerd->addRecordTimerEvent(evtlist[selected].sub ? GET_CHANNEL_ID_FROM_EVENT_ID(evtlist[selected].eventID) : channel_id, - g_Timerd->addRecordTimerEvent(channel_id, + g_Timerd->addRecordTimerEvent(evtlist[selected].channelID , evtlist[selected].startTime, evtlist[selected].startTime + evtlist[selected].duration, evtlist[selected].eventID, evtlist[selected].startTime, @@ -496,33 +494,32 @@ int CNeutrinoEventList::exec(const t_channel_id channel_id, const std::string& c } timerlist.clear(); g_Timerd->getTimerList (timerlist); - paint(channel_id); - showFunctionBar(true, channel_id); + paint(evtlist[selected].channelID ); + showFunctionBar(true, evtlist[selected].channelID ); } } else if ( msg == (neutrino_msg_t) g_settings.key_channelList_addremind )//add/remove zapto timer event { int tID = -1; - CTimerd::CTimerEventTypes etype = isScheduled(channel_id, &evtlist[selected], &tID); + CTimerd::CTimerEventTypes etype = isScheduled(evtlist[selected].channelID, &evtlist[selected], &tID); if(etype == CTimerd::TIMER_ZAPTO) { g_Timerd->removeTimerEvent(tID); timerlist.clear(); g_Timerd->getTimerList (timerlist); - paint(channel_id); - showFunctionBar(true, channel_id); + paint(evtlist[selected].channelID); + showFunctionBar(true, evtlist[selected].channelID); continue; } - // FIXME g_Timerd->addZaptoTimerEvent(evtlist[selected].sub ? GET_CHANNEL_ID_FROM_EVENT_ID(evtlist[selected].eventID) : channel_id, - g_Timerd->addZaptoTimerEvent(channel_id, + g_Timerd->addZaptoTimerEvent(evtlist[selected].channelID , evtlist[selected].startTime - (g_settings.zapto_pre_time * 60), evtlist[selected].startTime - ANNOUNCETIME - (g_settings.zapto_pre_time * 60), 0, evtlist[selected].eventID, evtlist[selected].startTime, 0); //ShowLocalizedMessage(LOCALE_TIMER_EVENTTIMED_TITLE, LOCALE_TIMER_EVENTTIMED_MSG, CMessageBox::mbrBack, CMessageBox::mbBack, NEUTRINO_ICON_INFO); timerlist.clear(); g_Timerd->getTimerList (timerlist); - paint(channel_id); - showFunctionBar(true, channel_id); + paint(evtlist[selected].channelID ); + showFunctionBar(true, evtlist[selected].channelID ); timeoutEnd = CRCInput::calcTimeoutEnd(g_settings.timing[SNeutrinoSettings::TIMING_EPG]); } else if (msg == (neutrino_msg_t)g_settings.key_channelList_cancel) @@ -759,7 +756,7 @@ void CNeutrinoEventList::paintItem(unsigned int pos, t_channel_id channel_idI) // 2nd line // set status icons - CTimerd::CTimerEventTypes etype = isScheduled(channel_idI, &evtlist[curpos]); + CTimerd::CTimerEventTypes etype = isScheduled(m_showChannel ? evtlist[curpos].channelID : channel_idI, &evtlist[curpos]); icontype = etype == CTimerd::TIMER_ZAPTO ? NEUTRINO_ICON_ZAP : etype == CTimerd::TIMER_RECORD ? NEUTRINO_ICON_RECORDING_EVENT_MARKER : 0; int iw = 0, ih; @@ -783,7 +780,7 @@ void CNeutrinoEventList::paintItem(unsigned int pos, t_channel_id channel_idI) } // paint 2nd line text - g_Font[SNeutrinoSettings::FONT_TYPE_EVENTLIST_ITEMLARGE]->RenderString(x+10+iw, ypos+ fheight, width- 25- 20, evtlist[curpos].description, color, 0, true); + g_Font[SNeutrinoSettings::FONT_TYPE_EVENTLIST_ITEMLARGE]->RenderString(x+10+iw, ypos+ fheight, width- 25- 20 -iw, evtlist[curpos].description, color, 0, true); } From 61c596a6b9bdc0d4c001b8843a3676bed21f7413 Mon Sep 17 00:00:00 2001 From: satbaby Date: Fri, 11 May 2012 10:25:04 +0200 Subject: [PATCH 2/2] eventlist.cpp:-fix possible segfault --- src/gui/eventlist.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/gui/eventlist.cpp b/src/gui/eventlist.cpp index d80e39493..80011f60a 100644 --- a/src/gui/eventlist.cpp +++ b/src/gui/eventlist.cpp @@ -1243,11 +1243,17 @@ int CEventFinderMenu::showMenu(void) } else if(*m_search_list == CNeutrinoEventList::SEARCH_LIST_BOUQUET) { - m_search_channelname = bouquetList->Bouquets[*m_search_bouquet_id]->channelList->getName(); + if(bouquetList->Bouquets.size()<*m_search_bouquet_id ){ + *m_search_bouquet_id = bouquetList->getActiveBouquetNumber();; + } + if(!bouquetList->Bouquets.empty()) + m_search_channelname = bouquetList->Bouquets[*m_search_bouquet_id]->channelList->getName(); + else + m_search_channelname =""; } else if(*m_search_list == CNeutrinoEventList::SEARCH_LIST_ALL) { - m_search_channelname ==""; + m_search_channelname =""; } CStringInputSMS stringInput(LOCALE_EVENTFINDER_KEYWORD,m_search_keyword, 20, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "abcdefghijklmnopqrstuvwxyz0123456789 -_/()<>=+.,:!?\\'");