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

Reply via email to