summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Wieninger <cwieninger (at) gmx (dot) de>2009-06-23 20:31:56 +0200
committerChristian Wieninger <cwieninger (at) gmx (dot) de>2009-06-23 20:31:56 +0200
commit236d130b574d7a2559c448d061c64d034e93a94e (patch)
treeb1c389148ed3dc2829a4f8a1463b596e91168571
parent29fb44c898ff29e7f195e3744bd081c5db2548be (diff)
downloadvdr-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.c26
-rw-r--r--epgsearchext.h2
-rw-r--r--epgsearchtools.h2
-rw-r--r--menu_commands.c3
-rw-r--r--menu_searchedit.c10
-rw-r--r--menu_searchedit.h2
-rw-r--r--menu_searchresults.h1
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;