Please ignore my previous attachment. The attached new patch provides
the same feature and also fixes a bug introduced with findid where
programid matching failed.
Index: mythtv/libs/libmythtv/programinfo.cpp
===================================================================
RCS file: /var/lib/mythcvs/mythtv/libs/libmythtv/programinfo.cpp,v
retrieving revision 1.197
diff -u -r1.197 programinfo.cpp
--- mythtv/libs/libmythtv/programinfo.cpp 20 Feb 2005 17:45:32 -0000 1.197
+++ mythtv/libs/libmythtv/programinfo.cpp 21 Feb 2005 03:21:25 -0000
@@ -642,6 +642,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)
{
@@ -2534,10 +2541,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 != "")))
{
@@ -2644,7 +2652,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++;
@@ -2682,6 +2690,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++;
@@ -2717,6 +2748,13 @@
GetProgramRecordingStatus(db);
record->forgetHistory(db, *this);
}
+ else if (ret == addov1)
+ ApplyRecordStateChange(db, kDontRecord);
+ else if (ret == forget1)
+ {
+ GetProgramRecordingStatus(db);
+ record->addHistory(db, *this);
+ }
else if (ret == clearov)
ApplyRecordStateChange(db, kNotRecording);
else if (ret == ednorm)
Index: mythtv/libs/libmythtv/programinfo.h
===================================================================
RCS file: /var/lib/mythcvs/mythtv/libs/libmythtv/programinfo.h,v
retrieving revision 1.98
diff -u -r1.98 programinfo.h
--- mythtv/libs/libmythtv/programinfo.h 6 Feb 2005 23:14:54 -0000 1.98
+++ mythtv/libs/libmythtv/programinfo.h 21 Feb 2005 03:21:25 -0000
@@ -91,6 +91,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);
_______________________________________________
mythtv-dev mailing list
[email protected]
http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev