Ticket #171: mythtv.autoexpire.priority.diff

File mythtv.autoexpire.priority.diff, 4.0 KB (added by Robert Tsai <rtsai1111>, 20 years ago)
  • programs/mythfrontend/globalsettings.cpp

     
    514514    bc->setLabel(QObject::tr("Auto Expire Method"));
    515515    bc->addSelection(QObject::tr("None"), "0");
    516516    bc->addSelection(QObject::tr("Oldest Show First"), "1");
     517    bc->addSelection(QObject::tr("Lowest Priority First"), "2");
    517518    bc->setHelpText(QObject::tr("Method used to determine which recorded "
    518519                                "shows to delete first. Set to 'None' to "
    519520                                "disable Auto Expire (not recommended)."));
  • programs/mythbackend/autoexpire.cpp

     
    467467
    468468    switch(expMethod)
    469469    {
    470         case 1: FillOldestFirst(); break;
     470        case 1:
     471        case 2:
     472            FillOldestFirst(expMethod);
     473            break;
    471474
    472475        // default falls through so list is empty so no AutoExpire
    473476    }
     
    512515/** \fn AutoExpire::FillOldestFirst()
    513516 *  \brief Creates a list of programs to delete, with the oldest file listed first.
    514517 */
    515 void AutoExpire::FillOldestFirst(void)
     518void AutoExpire::FillOldestFirst(int expMethod)
    516519{
    517520    QString fileprefix = gContext->GetFilePrefix();
    518521
    519522    MSqlQuery query(MSqlQuery::InitCon());
    520     QString querystr = QString(
    521                "SELECT recorded.chanid,starttime,endtime,title,subtitle, "
    522                "description,hostname,channum,name,callsign,seriesid,programid "
    523                "FROM recorded "
    524                "LEFT JOIN channel ON recorded.chanid = channel.chanid "
    525                "WHERE autoexpire > 0 "
    526                "ORDER BY autoexpire DESC, starttime ASC");
     523    QString querystr;
     524   
     525    switch (expMethod)
     526    {
     527    default:
     528    case 1: // Oldest first
     529        querystr = QString(
     530                "SELECT recorded.chanid"
     531                "   ,starttime"
     532                "   ,endtime"
     533                "   ,title"
     534                "   ,subtitle"
     535                "   ,description"
     536                "   ,hostname"
     537                "   ,channum"
     538                "   ,name"
     539                "   ,callsign"
     540                "   ,seriesid"
     541                "   ,programid"
     542                " FROM recorded"
     543                " LEFT JOIN channel ON recorded.chanid = channel.chanid"
     544                " WHERE autoexpire > 0"
     545                " ORDER BY autoexpire DESC"
     546                "   ,starttime ASC");
     547        break;
    527548
     549    case 2: // Lowest priority first
     550        querystr = QString(
     551                "SELECT d.chanid"
     552                "   ,d.starttime"
     553                "   ,d.endtime"
     554                "   ,d.title"
     555                "   ,d.subtitle"
     556                "   ,d.description"
     557                "   ,hostname"
     558                "   ,channum"
     559                "   ,name"
     560                "   ,callsign"
     561                "   ,d.seriesid"
     562                "   ,d.programid"
     563                " FROM recorded d"
     564                " LEFT JOIN channel ON d.chanid = channel.chanid"
     565                " LEFT JOIN record r ON d.recordid = r.recordid"
     566                " WHERE d.autoexpire > 0"
     567                " ORDER BY d.autoexpire DESC"
     568                "   ,r.recpriority ASC"
     569                "   ,d.starttime ASC");
     570        break;
     571    }
     572
    528573    query.prepare(querystr);
    529574
    530575    if (!query.exec() || !query.isActive() || !query.size())
  • programs/mythbackend/autoexpire.h

     
    3434  private:
    3535    void ExpireEpisodesOverMax(void);
    3636
    37     void FillOldestFirst(void);
     37    void FillOldestFirst(int expMethod);
    3838    void SendDeleteMessages(size_t, size_t);
    3939    void ClearExpireList(void);
    4040    void Sleep();