From d4dcdd1b39d3bc749de5df6a3160e2997bef982d Mon Sep 17 00:00:00 2001 From: Christian Wieninger Date: Tue, 24 Apr 2007 20:04:53 +0000 Subject: - added deletion of search timers --- epgsearch.cpp | 44 ++++++++++++++++++++++++++++++++------------ 1 file changed, 32 insertions(+), 12 deletions(-) (limited to 'epgsearch.cpp') diff --git a/epgsearch.cpp b/epgsearch.cpp index 8e12e13..9ff5760 100644 --- a/epgsearch.cpp +++ b/epgsearch.cpp @@ -283,6 +283,11 @@ string SearchTimer::StopTimeFormatted() } SearchTimers::SearchTimers() +{ + Reload(); +} + +bool SearchTimers::Reload() { Epgsearch_services_v1_0 service; if ( cPluginManager::CallFirstService("Epgsearch-services-v1.0", &service) == 0 ) @@ -291,7 +296,8 @@ SearchTimers::SearchTimers() ReadLock channelsLock( Channels, 0 ); list< string > timers = service.handler->SearchTimerList(); m_timers.assign( timers.begin(), timers.end() ); - m_timers.sort(); + m_timers.sort(); + return true; } bool SearchTimers::Save(SearchTimer* searchtimer) @@ -300,18 +306,18 @@ bool SearchTimers::Save(SearchTimer* searchtimer) if ( cPluginManager::CallFirstService("Epgsearch-services-v1.0", &service) == 0 ) throw HtmlError( tr("No searchtimers available") ); - if (!searchtimer) return false; + if (!searchtimer) return false; ReadLock channelsLock( Channels, 0 ); - if (searchtimer->Id() >= 0) - return service.handler->ModSearchTimer(searchtimer->ToText()); - else - { - searchtimer->SetId(0); - int id = service.handler->AddSearchTimer(searchtimer->ToText()); - if (id >= 0) - searchtimer->SetId(id); - return (id >= 0); - } + if (searchtimer->Id() >= 0) + return service.handler->ModSearchTimer(searchtimer->ToText()); + else + { + searchtimer->SetId(0); + int id = service.handler->AddSearchTimer(searchtimer->ToText()); + if (id >= 0) + searchtimer->SetId(id); + return (id >= 0); + } } SearchTimer* SearchTimers::GetByTimerId( std::string const& id ) @@ -331,6 +337,20 @@ bool SearchTimers::ToggleActive(std::string const& id) return Save(search); } +bool SearchTimers::Delete(std::string const& id) +{ + SearchTimer* search = GetByTimerId( id ); + if (!search) return false; + + Epgsearch_services_v1_0 service; + if ( cPluginManager::CallFirstService("Epgsearch-services-v1.0", &service) == 0 ) + throw HtmlError( tr("No searchtimers available") ); + + if (service.handler->DelSearchTimer(lexical_cast< int >( id ))) + return Reload(); + return false; +} + bool SearchTimer::BlacklistSelected(int id) const { for(unsigned int i=0; i