summaryrefslogtreecommitdiff
path: root/menu_recsdone.c
diff options
context:
space:
mode:
authorChristian Wieninger <cwieninger@gmx.de>2012-03-15 20:06:57 +0100
committerChristian Wieninger <cwieninger@gmx.de>2012-03-15 20:06:57 +0100
commit687e33f04245d4d63b717e5080e8e7f49ae82e59 (patch)
treee164b81726bd27684a7d3a27b9caea52248fa32b /menu_recsdone.c
parentfd11aaec42e3da40be0f20ceb8ac862bb64371b0 (diff)
downloadvdr-plugin-epgsearch-687e33f04245d4d63b717e5080e8e7f49ae82e59.tar.gz
vdr-plugin-epgsearch-687e33f04245d4d63b717e5080e8e7f49ae82e59.tar.bz2
show orphaned 'recordings done'
Diffstat (limited to 'menu_recsdone.c')
-rw-r--r--menu_recsdone.c28
1 files changed, 22 insertions, 6 deletions
diff --git a/menu_recsdone.c b/menu_recsdone.c
index 00833cb..21209fc 100644
--- a/menu_recsdone.c
+++ b/menu_recsdone.c
@@ -64,30 +64,46 @@ int cMenuRecDoneItem::Compare(const cListObject &ListObject) const
}
// --- cMenuRecsDone ----------------------------------------------------------
+#define SHOW_RECDONE_SEARCH 0
+#define SHOW_RECDONE_ALL 1
+#define SHOW_RECDONE_ORPHANED 2
+
cMenuRecsDone::cMenuRecsDone(cSearchExt* Search)
:cOsdMenu("", 16)
{
search = Search;
- showAll = true;
+ showMode = SHOW_RECDONE_ALL;
showEpisodeOnly = false;
sortModeRecDone = 0;
- if (search) showAll = false;
+ if (search) showMode = SHOW_RECDONE_SEARCH;
Set();
Display();
}
+const char* cMenuRecsDone::ButtonBlue(cSearchExt* Search)
+{
+ if (showMode==SHOW_RECDONE_SEARCH && Search)
+ return tr("Button$Show all");
+ else if (showMode==SHOW_RECDONE_ALL)
+ return tr("Button$Orphaned");
+ else
+ return Search->search;
+}
+
void cMenuRecsDone::Set()
{
Clear();
cMutexLock RecsDoneLock(&RecsDone);
cRecDone* recDone = RecsDone.First();
while (recDone) {
- if (showAll || (!showAll && search && recDone->searchID == search->ID))
+ if (showMode == SHOW_RECDONE_ALL ||
+ (showMode == SHOW_RECDONE_SEARCH && search && recDone->searchID == search->ID) ||
+ (showMode == SHOW_RECDONE_ORPHANED && recDone->searchID == -1))
Add(new cMenuRecDoneItem(recDone, showEpisodeOnly));
recDone = RecsDone.Next(recDone);
}
UpdateTitle();
- SetHelp(sortModeRecDone==0?tr("Button$by name"):tr("Button$by date"), tr("Button$Delete all"), trVDR("Button$Delete"), showAll?search->search:tr("Button$Show all"));
+ SetHelp(sortModeRecDone==0?tr("Button$by name"):tr("Button$by date"), tr("Button$Delete all"), trVDR("Button$Delete"), ButtonBlue(search));
Sort();
}
@@ -99,7 +115,7 @@ cRecDone *cMenuRecsDone::CurrentRecDone(void)
void cMenuRecsDone::UpdateTitle()
{
- cString buffer = cString::sprintf("%d %s%s%s", Count(), tr("Recordings"), showAll?"":" ", showAll?"":search->search);
+ cString buffer = cString::sprintf("%d %s%s%s", Count(), tr("Recordings"), showMode == SHOW_RECDONE_ALL?"":" ", showMode != SHOW_RECDONE_SEARCH ? "":search->search);
SetTitle(buffer);
Display();
}
@@ -166,7 +182,7 @@ eOSState cMenuRecsDone::ProcessKey(eKeys Key)
state = Delete();
break;
case kBlue:
- showAll = !showAll;
+ showMode = (showMode+1)%3;
Set();
Display();
break;