summaryrefslogtreecommitdiff
path: root/menu_blacklists.c
diff options
context:
space:
mode:
Diffstat (limited to 'menu_blacklists.c')
-rw-r--r--menu_blacklists.c201
1 files changed, 100 insertions, 101 deletions
diff --git a/menu_blacklists.c b/menu_blacklists.c
index 5290484..b0567a9 100644
--- a/menu_blacklists.c
+++ b/menu_blacklists.c
@@ -35,14 +35,15 @@ The project's page is at http://winni.vdr-developer.org/epgsearch
using namespace std;
// --- cMenuBlacklistsItem ----------------------------------------------------------
-class cMenuBlacklistsItem : public cOsdItem {
- private:
+class cMenuBlacklistsItem : public cOsdItem
+{
+private:
public:
- cBlacklist* blacklist;
- cMenuBlacklistsItem(cBlacklist* Blacklist);
- int Compare(const cListObject &ListObject) const;
- void Set(void);
- };
+ cBlacklist* blacklist;
+ cMenuBlacklistsItem(cBlacklist* Blacklist);
+ int Compare(const cListObject &ListObject) const;
+ void Set(void);
+};
cMenuBlacklistsItem::cMenuBlacklistsItem(cBlacklist* Blacklist)
{
@@ -52,59 +53,55 @@ cMenuBlacklistsItem::cMenuBlacklistsItem(cBlacklist* Blacklist)
void cMenuBlacklistsItem::Set(void)
{
- ostringstream line;
-
- if (blacklist->isGlobal != 0)
- line << setiosflags(ios::left) << "G";
- line << "\t";
-
- if (blacklist->search && strlen(blacklist->search) > 0)
- line << setiosflags(ios::left) << string(blacklist->search);
- else
- line << setiosflags(ios::left) << "*";
-
- line << "\t";
- if (blacklist->useChannel == 1)
- {
- if (blacklist->channelMin != blacklist->channelMax)
- line << setiosflags(ios::left) << blacklist->channelMin->Number() << " - " << blacklist->channelMax->Number();
- else
- line << setiosflags(ios::left) << setw(11) << (blacklist->useChannel?CHANNELNAME(blacklist->channelMin):"");
- }
- else if (blacklist->useChannel == 2)
- line << setiosflags(ios::left) << setw(11) << blacklist->channelGroup;
-
- line << "\t";
- if (blacklist->useTime)
- {
- ostringstream timeline;
- timeline << setfill('0') << setw(2) << blacklist->startTime / 100 << ":" << setw(2) << blacklist->startTime % 100;
- timeline << "\t";
- timeline << setfill('0') << setw(2) << blacklist->stopTime / 100 << ":" << setw(2) << blacklist->stopTime % 100;
- line << timeline.str();
- }
- else
- line << "--:--\t--:--";
-
- SetText(strdup(line.str().c_str()), false);
+ ostringstream line;
+
+ if (blacklist->isGlobal != 0)
+ line << setiosflags(ios::left) << "G";
+ line << "\t";
+
+ if (blacklist->search && strlen(blacklist->search) > 0)
+ line << setiosflags(ios::left) << string(blacklist->search);
+ else
+ line << setiosflags(ios::left) << "*";
+
+ line << "\t";
+ if (blacklist->useChannel == 1) {
+ if (blacklist->channelMin != blacklist->channelMax)
+ line << setiosflags(ios::left) << blacklist->channelMin->Number() << " - " << blacklist->channelMax->Number();
+ else
+ line << setiosflags(ios::left) << setw(11) << (blacklist->useChannel ? CHANNELNAME(blacklist->channelMin) : "");
+ } else if (blacklist->useChannel == 2)
+ line << setiosflags(ios::left) << setw(11) << blacklist->channelGroup;
+
+ line << "\t";
+ if (blacklist->useTime) {
+ ostringstream timeline;
+ timeline << setfill('0') << setw(2) << blacklist->startTime / 100 << ":" << setw(2) << blacklist->startTime % 100;
+ timeline << "\t";
+ timeline << setfill('0') << setw(2) << blacklist->stopTime / 100 << ":" << setw(2) << blacklist->stopTime % 100;
+ line << timeline.str();
+ } else
+ line << "--:--\t--:--";
+
+ SetText(strdup(line.str().c_str()), false);
}
int cMenuBlacklistsItem::Compare(const cListObject &ListObject) const
{
- cMenuBlacklistsItem *p = (cMenuBlacklistsItem *)&ListObject;
- return strcasecmp(blacklist->search, p->blacklist->search);
+ cMenuBlacklistsItem *p = (cMenuBlacklistsItem *)&ListObject;
+ return strcasecmp(blacklist->search, p->blacklist->search);
}
// --- cMenuBlacklists ----------------------------------------------------------
cMenuBlacklists::cMenuBlacklists()
-:cOsdMenu(tr("Blacklists"), 3, 20, 11, 6, 5)
+ : cOsdMenu(tr("Blacklists"), 3, 20, 11, 6, 5)
{
- SetMenuCategory(mcSetupPlugins);
+ SetMenuCategory(mcSetupPlugins);
cMutexLock BlacklistLock(&Blacklists);
cBlacklist *Blacklist = Blacklists.First();
while (Blacklist) {
- Add(new cMenuBlacklistsItem(Blacklist));
- Blacklist = Blacklists.Next(Blacklist);
+ Add(new cMenuBlacklistsItem(Blacklist));
+ Blacklist = Blacklists.Next(Blacklist);
}
SetHelp(trVDR("Button$Edit"), trVDR("Button$New"), trVDR("Button$Delete"), NULL);
Sort();
@@ -116,14 +113,14 @@ cBlacklist *cMenuBlacklists::CurrentBlacklist(void)
{
cMenuBlacklistsItem *item = (cMenuBlacklistsItem *)Get(Current());
if (item && Blacklists.Exists(item->blacklist))
- return item->blacklist;
+ return item->blacklist;
return NULL;
}
eOSState cMenuBlacklists::New(void)
{
if (HasSubMenu())
- return osContinue;
+ return osContinue;
return AddSubMenu(new cMenuBlacklistEdit(new cBlacklist, true));
}
@@ -131,61 +128,63 @@ eOSState cMenuBlacklists::Delete(void)
{
cBlacklist *curBlacklist = CurrentBlacklist();
if (curBlacklist) {
- if (Interface->Confirm(tr("Edit$Delete blacklist?"))) {
- LogFile.Log(1,"blacklist %s (%d) deleted", curBlacklist->search, curBlacklist->ID);
- SearchExts.RemoveBlacklistID(curBlacklist->ID);
- cMutexLock BlacklistLock(&Blacklists);
- Blacklists.Del(curBlacklist);
- Blacklists.Save();
- cOsdMenu::Del(Current());
- Display();
- }
+ if (Interface->Confirm(tr("Edit$Delete blacklist?"))) {
+ LogFile.Log(1, "blacklist %s (%d) deleted", curBlacklist->search, curBlacklist->ID);
+ SearchExts.RemoveBlacklistID(curBlacklist->ID);
+ cMutexLock BlacklistLock(&Blacklists);
+ Blacklists.Del(curBlacklist);
+ Blacklists.Save();
+ cOsdMenu::Del(Current());
+ Display();
+ }
}
return osContinue;
}
eOSState cMenuBlacklists::ProcessKey(eKeys Key)
{
- int BlacklistNumber = HasSubMenu() ? Count() : -1;
- eOSState state = cOsdMenu::ProcessKey(Key);
- if (state == osUnknown) {
- if (HasSubMenu())
- return osContinue;
- switch (Key) {
- case kOk:
- return AddSubMenu(new cMenuSearchResultsForBlacklist(CurrentBlacklist()));
- break;
- case kRed:
- if (CurrentBlacklist())
- state = AddSubMenu(new cMenuBlacklistEdit(CurrentBlacklist()));
- else
- state = osContinue;
- break;
- case kGreen: state = New(); break;
- case kYellow: state = Delete(); break;
- default: break;
- }
- }
- if (BlacklistNumber >= 0 && !HasSubMenu())
- {
- cMutexLock BlacklistLock(&Blacklists);
- cBlacklist* Blacklist = Blacklists.Get(BlacklistNumber);
- if (Blacklist) // a newly created search was confirmed with Ok
- Add(new cMenuBlacklistsItem(Blacklist));
- // always update all entries, since channel group names may have changed and affect other searches
- Sort();
- for(int i=0; i<Count(); i++)
- {
- cMenuBlacklistsItem *item = (cMenuBlacklistsItem *)Get(i);
- if (item)
- {
- item->Set();
- if (item->blacklist == Blacklist)
- SetCurrent(item);
- }
- }
- Display();
- }
-
- return state;
+ int BlacklistNumber = HasSubMenu() ? Count() : -1;
+ eOSState state = cOsdMenu::ProcessKey(Key);
+ if (state == osUnknown) {
+ if (HasSubMenu())
+ return osContinue;
+ switch (Key) {
+ case kOk:
+ return AddSubMenu(new cMenuSearchResultsForBlacklist(CurrentBlacklist()));
+ break;
+ case kRed:
+ if (CurrentBlacklist())
+ state = AddSubMenu(new cMenuBlacklistEdit(CurrentBlacklist()));
+ else
+ state = osContinue;
+ break;
+ case kGreen:
+ state = New();
+ break;
+ case kYellow:
+ state = Delete();
+ break;
+ default:
+ break;
+ }
+ }
+ if (BlacklistNumber >= 0 && !HasSubMenu()) {
+ cMutexLock BlacklistLock(&Blacklists);
+ cBlacklist* Blacklist = Blacklists.Get(BlacklistNumber);
+ if (Blacklist) // a newly created search was confirmed with Ok
+ Add(new cMenuBlacklistsItem(Blacklist));
+ // always update all entries, since channel group names may have changed and affect other searches
+ Sort();
+ for (int i = 0; i < Count(); i++) {
+ cMenuBlacklistsItem *item = (cMenuBlacklistsItem *)Get(i);
+ if (item) {
+ item->Set();
+ if (item->blacklist == Blacklist)
+ SetCurrent(item);
+ }
+ }
+ Display();
+ }
+
+ return state;
}