Here it is yet again, this time without the db arguments to make it
work with the latest in CVS.
Index: mythtv/libs/libmythtv/programinfo.h
===================================================================
RCS file: /var/lib/mythcvs/mythtv/libs/libmythtv/programinfo.h,v
retrieving revision 1.99
diff -u -r1.99 programinfo.h
--- mythtv/libs/libmythtv/programinfo.h 23 Feb 2005 05:04:36 -0000 1.99
+++ mythtv/libs/libmythtv/programinfo.h 26 Feb 2005 09:30:45 -0000
@@ -90,6 +90,8 @@
ProgramInfo& operator=(const ProgramInfo &other);
ProgramInfo& clone(const ProgramInfo &other);
+
+ bool IsFindApplicable(void) const;
// returns 0 for one-time, 1 for weekdaily, 2 for weekly
int IsProgramRecurring(void);
Index: mythtv/libs/libmythtv/programinfo.cpp
===================================================================
RCS file: /var/lib/mythcvs/mythtv/libs/libmythtv/programinfo.cpp,v
retrieving revision 1.198
diff -u -r1.198 programinfo.cpp
--- mythtv/libs/libmythtv/programinfo.cpp 23 Feb 2005 05:04:36 -0000 1.198
+++ mythtv/libs/libmythtv/programinfo.cpp 26 Feb 2005 09:30:47 -0000
@@ -636,6 +636,13 @@
}
+bool ProgramInfo::IsFindApplicable(void) const
+{
+ return rectype == kFindDailyRecord ||
+ rectype == kFindWeeklyRecord;
+}
+
+
// -1 for no data, 0 for no, 1 for weekdaily, 2 for weekly.
int ProgramInfo::IsProgramRecurring(void)
{
@@ -2490,10 +2497,11 @@
addov = button++;
}
if (rectype != kFindOneRecord &&
- !(findid == 0 && catType == "series" &&
+ !((findid == 0 || !IsFindApplicable()) &&
+ catType == "series" &&
programid.contains(QRegExp("0000$"))) &&
((!(dupmethod & kDupCheckNone) && programid != "" &&
- findid != 0) ||
+ (findid != 0 || !IsFindApplicable())) ||
((dupmethod & kDupCheckSub) && subtitle != "") ||
((dupmethod & kDupCheckDesc) && description != "")))
{
@@ -2600,7 +2608,7 @@
DialogBox diag(gContext->GetMainWindow(), message);
int button = 1, ok = -1, react = -1, addov = -1, clearov = -1,
- ednorm = -1, edcust = -1, forget = -1;
+ ednorm = -1, edcust = -1, forget = -1, addov1 = -1, forget1 = -1;
diag.AddButton(QObject::tr("OK"));
ok = button++;
@@ -2638,6 +2646,29 @@
if (rectype != kOverrideRecord && rectype != kDontRecord)
{
+ if (rectype != kSingleRecord &&
+ recstatus != rsPreviousRecording &&
+ recstatus != rsCurrentRecording)
+ {
+ if (recstartts > now)
+ {
+ diag.AddButton(QObject::tr("Absolutely don't record"));
+ addov1 = button++;
+ }
+ if (rectype != kFindOneRecord &&
+ !((findid == 0 || !IsFindApplicable()) &&
+ catType == "series" &&
+ programid.contains(QRegExp("0000$"))) &&
+ ((!(dupmethod & kDupCheckNone) && programid != "" &&
+ (findid != 0 || !IsFindApplicable())) ||
+ ((dupmethod & kDupCheckSub) && subtitle != "") ||
+ ((dupmethod & kDupCheckDesc) && description != "")))
+ {
+ diag.AddButton(QObject::tr("Never record"));
+ forget1 = button++;
+ }
+ }
+
diag.AddButton(QObject::tr("Edit Options"));
ednorm = button++;
@@ -2673,6 +2704,13 @@
GetProgramRecordingStatus();
record->forgetHistory(*this);
}
+ else if (ret == addov1)
+ ApplyRecordStateChange(kDontRecord);
+ else if (ret == forget1)
+ {
+ GetProgramRecordingStatus();
+ record->addHistory(*this);
+ }
else if (ret == clearov)
ApplyRecordStateChange(kNotRecording);
else if (ret == ednorm)
_______________________________________________
mythtv-dev mailing list
[email protected]
http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev