diff options
author | Christian Wieninger <cwieninger (at) gmx (dot) de> | 2009-06-23 20:31:56 +0200 |
---|---|---|
committer | Christian Wieninger <cwieninger (at) gmx (dot) de> | 2009-06-23 20:31:56 +0200 |
commit | 236d130b574d7a2559c448d061c64d034e93a94e (patch) | |
tree | b1c389148ed3dc2829a4f8a1463b596e91168571 | |
parent | 29fb44c898ff29e7f195e3744bd081c5db2548be (diff) | |
download | vdr-plugin-epgsearch-236d130b574d7a2559c448d061c64d034e93a94e.tar.gz vdr-plugin-epgsearch-236d130b574d7a2559c448d061c64d034e93a94e.tar.bz2 |
- made some destructors virtual
- when creating search timers directly from EPG their default 'use channel' is now the corresponding channel of the event instead of the current channel
-rw-r--r-- | epgsearchext.c | 26 | ||||
-rw-r--r-- | epgsearchext.h | 2 | ||||
-rw-r--r-- | epgsearchtools.h | 2 | ||||
-rw-r--r-- | menu_commands.c | 3 | ||||
-rw-r--r-- | menu_searchedit.c | 10 | ||||
-rw-r--r-- | menu_searchedit.h | 2 | ||||
-rw-r--r-- | menu_searchresults.h | 1 |
7 files changed, 26 insertions, 20 deletions
diff --git a/epgsearchext.c b/epgsearchext.c index 79bfd70..a2b30a2 100644 --- a/epgsearchext.c +++ b/epgsearchext.c @@ -163,13 +163,14 @@ cSearchExt& cSearchExt::operator= (const cSearchExt &SearchExt) return *this; } -void cSearchExt::CopyFromTemplate(const cSearchExt* templ) + void cSearchExt::CopyFromTemplate(const cSearchExt* templ, bool ignoreChannelSettings) { options = templ->options; useTime = templ->useTime; startTime = templ->startTime; stopTime = templ->stopTime; - useChannel = templ->useChannel; + if (!ignoreChannelSettings) + useChannel = templ->useChannel; useCase = templ->useCase; mode = templ->mode; useTitle = templ->useTitle; @@ -202,15 +203,18 @@ void cSearchExt::CopyFromTemplate(const cSearchExt* templ) index++; } - channelMin = templ->channelMin; - channelMax = templ->channelMax; - if (channelGroup) - { - free(channelGroup); - channelGroup = NULL; - } - if (templ->channelGroup) - channelGroup = strdup(templ->channelGroup); + if (!ignoreChannelSettings) + { + channelMin = templ->channelMin; + channelMax = templ->channelMax; + if (channelGroup) + { + free(channelGroup); + channelGroup = NULL; + } + if (templ->channelGroup) + channelGroup = strdup(templ->channelGroup); + } avoidRepeats = templ->avoidRepeats; compareTitle = templ->compareTitle; compareSubtitle = templ->compareSubtitle; diff --git a/epgsearchext.h b/epgsearchext.h index 40015ba..b0927d1 100644 --- a/epgsearchext.h +++ b/epgsearchext.h @@ -192,7 +192,7 @@ public: cSearchResults* Run(int PayTVMode = -1, bool inspectTimerMargin = false, int evalLimitMins = 0, cSearchResults* pPrevResults = NULL, bool suppressRepeatCheck = false); void CheckRepeatTimers(cSearchResults* pResults); void CheckExistingRecordings(cSearchResults* pResults); - void CopyFromTemplate(const cSearchExt* templ); + void CopyFromTemplate(const cSearchExt* templ, bool ignoreChannelSettings = false); cSearchResults* GetBlacklistEvents(int MarginStop = 0); void OnOffTimers(bool); void DeleteAllTimers(); diff --git a/epgsearchtools.h b/epgsearchtools.h index 426156c..d55d5e3 100644 --- a/epgsearchtools.h +++ b/epgsearchtools.h @@ -192,7 +192,7 @@ class cTimerObj : public cListObject { public: cTimer* timer; cTimerObj(cTimer* Timer) : timer(Timer) {} - ~cTimerObj() { timer = NULL; } // do not delete anything! + virtual ~cTimerObj() { timer = NULL; } // do not delete anything! }; // --- cTimerObjList -------------------------------------------------------- diff --git a/menu_commands.c b/menu_commands.c index bf1b38d..a1aae6e 100644 --- a/menu_commands.c +++ b/menu_commands.c @@ -232,7 +232,8 @@ eOSState cMenuSearchCommands::CreateSearchTimer(void) cSearchExt* pNew = new cSearchExt; strcpy(pNew->search, event->Title()); - return AddSubMenu(new cMenuEditSearchExt(pNew, true)); + pNew->channelMin = pNew->channelMax = Channels.GetByChannelID(event->ChannelID()); + return AddSubMenu(new cMenuEditSearchExt(pNew, true, false, true)); } eOSState cMenuSearchCommands::CreateBlacklist(void) diff --git a/menu_searchedit.c b/menu_searchedit.c index e7af17a..84b0e22 100644 --- a/menu_searchedit.c +++ b/menu_searchedit.c @@ -45,7 +45,7 @@ cChannelGroups ChannelGroups; cSearchExtCats SearchExtCats; // --- cMenuEditSearchExt -------------------------------------------------------- -cMenuEditSearchExt::cMenuEditSearchExt(cSearchExt *SearchExt, bool New, bool Template) +cMenuEditSearchExt::cMenuEditSearchExt(cSearchExt *SearchExt, bool New, bool Template, bool FromEPG) :cOsdMenu(tr("Edit search"),32) { templateMode = Template; @@ -104,7 +104,7 @@ cMenuEditSearchExt::cMenuEditSearchExt(cSearchExt *SearchExt, bool New, bool Tem SearchExtTempl = SearchTemplates.Next(SearchExtTempl); } if (SearchTempl) - SearchExt->CopyFromTemplate(SearchTempl); + SearchExt->CopyFromTemplate(SearchTempl, FromEPG); } searchExt = SearchExt; @@ -127,11 +127,11 @@ cMenuEditSearchExt::cMenuEditSearchExt(cSearchExt *SearchExt, bool New, bool Tem channelMin = channelMax = cDevice::CurrentChannel(); channelGroupNr = 0; - if (data.useChannel==1) - { + if (data.channelMin) channelMin = data.channelMin->Number(); + if (data.channelMax) channelMax = data.channelMax->Number(); - } + if (data.useChannel==2) { channelGroupNr = ChannelGroups.GetIndex(data.channelGroup); diff --git a/menu_searchedit.h b/menu_searchedit.h index 7ae867c..0bba2e5 100644 --- a/menu_searchedit.h +++ b/menu_searchedit.h @@ -59,7 +59,7 @@ protected: void AddHelp(const char* helpText); public: - cMenuEditSearchExt(cSearchExt *SearchExt, bool New = false, bool Template = false); + cMenuEditSearchExt(cSearchExt *SearchExt, bool New = false, bool Template = false, bool FromEPG = false); virtual ~cMenuEditSearchExt(); virtual void Set(); virtual eOSState ProcessKey(eKeys Key); diff --git a/menu_searchresults.h b/menu_searchresults.h index 7eb2888..fc75abd 100644 --- a/menu_searchresults.h +++ b/menu_searchresults.h @@ -102,6 +102,7 @@ class cMenuSearchResultsForSearch : public cMenuSearchResults { eOSState ProcessKey(eKeys Key); public: cMenuSearchResultsForSearch(cSearchExt*, cMenuTemplate* MenuTemplate); + virtual ~cMenuSearchResultsForSearch() {} }; class cBlacklist; |