Ticket #1657: ignoreincomplete.patch
File ignoreincomplete.patch, 7.0 KB (added by , 18 years ago) |
---|
-
libs/libmythtv/scheduledrecording.h
28 28 class SRAutoUserJob3; 29 29 class SRAutoUserJob4; 30 30 class SRAutoExpire; 31 class SRIgnoreIncomplete; 31 32 class SRStartOffset; 32 33 class SREndOffset; 33 34 class SRMaxEpisodes; … … 76 77 int GetAutoExpire(void) const; 77 78 void SetAutoExpire(int expire); 78 79 80 int GetIgnoreIncomplete(void) const; 81 void SetIgnoreIncomplete(int expire); 82 79 83 int GetMaxEpisodes(void) const; 80 84 bool GetMaxNewest(void) const; 81 85 … … 143 147 void setAutoUserJob3Obj(SRAutoUserJob3* val) {autouserjob3 = val;} 144 148 void setAutoUserJob4Obj(SRAutoUserJob4* val) {autouserjob4 = val;} 145 149 void setAutoExpireObj(SRAutoExpire* val) {autoexpire = val;} 150 void setIgnoreIncompleteObj(SRIgnoreIncomplete* val) {ignoreincomplete = val;} 146 151 void setStartOffsetObj(SRStartOffset* val) {startoffset = val;} 147 152 void setEndOffsetObj(SREndOffset* val) {endoffset = val;} 148 153 void setMaxEpisodesObj(SRMaxEpisodes* val) {maxepisodes = val;} … … 211 216 class SRAutoUserJob3* autouserjob3; 212 217 class SRAutoUserJob4* autouserjob4; 213 218 class SRAutoExpire* autoexpire; 219 class SRIgnoreIncomplete* ignoreincomplete; 214 220 class SRStartOffset* startoffset; 215 221 class SREndOffset* endoffset; 216 222 class SRMaxEpisodes* maxepisodes; -
libs/libmythtv/sr_items.cpp
28 28 addItem(dupLocItem->getItem(), -1); 29 29 connect(dupMethItem->getItem(), SIGNAL(changed(ManagedListItem*)), this, SLOT(itemChanged(ManagedListItem*))); 30 30 31 ignoreIncomplete = new SRIgnoreIncomplete(_rec, this, parentList); 32 addItem(ignoreIncomplete->getItem(), -1); 33 31 34 inactive = new SRInactive(_rec, this, _parentList); 32 35 addItem(inactive->getItem(), -1); 33 36 } -
libs/libmythtv/sr_items.h
336 336 class SREndOffset* endOffset; 337 337 class SRDupMethod* dupMethItem; 338 338 class SRDupIn* dupLocItem; 339 class SRIgnoreIncomplete* ignoreIncomplete; 339 340 340 341 ScheduledRecording *schedRec; 341 342 }; … … 687 688 } 688 689 }; 689 690 691 class SRIgnoreIncomplete: public SRBoolSetting 692 { 693 public: 694 SRIgnoreIncomplete(ScheduledRecording *_parent, ManagedListGroup* _group, ManagedList* _list) 695 : SRBoolSetting(_parent, QObject::tr("Ignore generic episodes"), 696 QObject::tr("Record generic episodes"), 697 "ignoreIncompleteItem", "ignoreincomplete", _group, _list ) 698 { 699 _parent->setIgnoreIncompleteObj(this); 700 } 701 }; 702 690 703 class SRInactive: public SRBoolSetting 691 704 { 692 705 public: -
libs/libmythtv/scheduledrecording.cpp
29 29 dupin = NULL; 30 30 dupmethod = NULL; 31 31 autoexpire = NULL; 32 ignoreincomplete = NULL; 32 33 autotranscode = NULL; 33 34 transcoder = NULL; 34 35 autocommflag = NULL; … … 398 399 autoexpire->setValue(expire); 399 400 } 400 401 402 int ScheduledRecording::GetIgnoreIncomplete(void) const { 403 return(ignoreincomplete->getValue().toInt()); 404 } 405 406 void ScheduledRecording::SetIgnoreIncomplete(int expire) { 407 ignoreincomplete->setValue(expire); 408 } 409 401 410 int ScheduledRecording::GetTranscoder(void) const { 402 411 return transcoder->getValue().toInt(); 403 412 } … … 450 459 MSqlQuery query(MSqlQuery::InitCon()); 451 460 query.prepare( 452 461 "UPDATE recorded " 453 "SET recpriority = :RECPRIORITY, recgroup = :RECGROUP, " 462 "SET recpriority = :RECPRIORITY, " 463 // "recgroup = :RECGROUP, " 454 464 "transcoder = :TRANSCODER, playgroup = :PLAYGROUP " 455 465 "WHERE recordid = :RECORDID ;"); 456 466 query.bindValue(":RECPRIORITY", getRecPriority()); 457 query.bindValue(":RECGROUP", recgroup->getValue());467 // query.bindValue(":RECGROUP", recgroup->getValue()); 458 468 query.bindValue(":TRANSCODER", transcoder->getValue().toInt()); 459 469 query.bindValue(":PLAYGROUP", playgroup->getValue()); 460 470 query.bindValue(":RECORDID", getRecordID()); … … 788 798 recpriority->setValue(0); 789 799 790 800 autoexpire->setValue(gContext->GetNumSetting("AutoExpireDefault", 0)); 801 ignoreincomplete->setValue(gContext->GetNumSetting("IgnoreIncompleteDefault", 0)); 791 802 792 803 autotranscode->setValue(gContext->GetNumSetting("AutoTranscode", 0)); 793 804 transcoder->fillSelections(); … … 873 884 dupin->setChanged(); 874 885 dupmethod->setChanged(); 875 886 autoexpire->setChanged(); 887 ignoreincomplete->setChanged(); 876 888 autotranscode->setChanged(); 877 889 autocommflag->setChanged(); 878 890 autouserjob1->setChanged(); -
programs/mythbackend/scheduler.cpp
2006 2005 "program.airdate, program.stars, program.originalairdate, RECTABLE.inactive, " 2007 2006 "RECTABLE.parentid, ") + progfindid + ", RECTABLE.playgroup, " 2008 2007 "oldrecstatus.recstatus, oldrecstatus.reactivate, " 2009 "channel.recpriority + cardinput.preference " 2008 "channel.recpriority + cardinput.preference, " 2009 "RECTABLE.ignoreincomplete, program.generic " 2010 2010 + QString( 2011 2011 "FROM recordmatch " 2012 2012 … … 2102 2102 } 2103 2103 2104 2104 VERBOSE(VB_SCHEDULE, QString(" |-- %1 results in %2 sec. Processing...") 2105 .arg( result.size())2105 .arg((unsigned long)result.size()) 2106 2106 .arg(((dbend.tv_sec - dbstart.tv_sec) * 1000000 + 2107 2107 (dbend.tv_usec - dbstart.tv_usec)) / 1000000.0)); 2108 2108 … … 2223 2223 !p->reactivate && 2224 2224 !(p->dupmethod & kDupCheckNone)) 2225 2225 { 2226 if (p->dupin == kDupsNewEpi && p->repeat) 2226 QRegExp exp(".*0000"); 2227 QString series("series"); 2228 2229 if (p->dupin == kDupsNewEpi && p->repeat) 2227 2230 p->recstatus = rsRepeat; 2231 2232 // If we want to ignore episodes in series with bogus data. 2233 // Unfortunately the 'generic' flag doesn't seem to work, 2234 // perhaps because of generic descriptions 2235 if (result.value(40).toInt() && p->category.compare(series) && p->programid.contains(exp)) { 2236 if( (p->dupmethod & 0x2 && p->subtitle.isEmpty()) || 2237 (p->dupmethod & 0x4 && p->description.isEmpty()) ) 2238 p->recstatus = rsRepeat; 2239 } 2228 2240 2241 /* findduplicate */ 2229 2242 if (((p->dupin & kDupsInOldRecorded) || (p->dupin == kDupsNewEpi)) && 2230 2243 result.value(10).toInt()) 2231 2244 p->recstatus = rsPreviousRecording;