Ticket #3235: livetvgroup.patch

File livetvgroup.patch, 10.2 KB (added by hads, 13 years ago)
  • programs/mythfrontend/playbackbox.cpp

     
    227227      recGroup("All Programs"),
    228228      recGroupPassword(""),             curGroupPassword(""),
    229229      watchGroup(" " + tr("Watch List")),
     230      livetvGroup(" " + tr("Live TV")),
    230231      viewMask(VIEW_TITLES),
    231232      // Theme parsing
    232233      theme(new XMLParse()),
     
    15861587            progsInDB++;
    15871588            p = *i;
    15881589            if ((((p->recgroup == recGroup) ||
    1589                   ((recGroup == "All Programs") &&
    1590                    (p->recgroup != "LiveTV" || LiveTVInAllPrograms))) &&
     1590                  (recGroup == "All Programs")) &&
    15911591                 (recGroupPassword == curGroupPassword)) ||
    15921592                ((recGroupType[recGroup] == "category") &&
    15931593                 (p->category == recGroup ) &&
    15941594                 ( !recGroupPwCache.contains(p->recgroup))))
    15951595            {
    1596                 if (viewMask != VIEW_NONE)
    1597                     progLists[""].prepend(p);
    1598 
    1599                 asKey = p->MakeUniqueKey();
    1600                 if (asCache.contains(asKey))
    1601                     p->availableStatus = asCache[asKey];
    1602                 else
    1603                     p->availableStatus = asAvailable;
    1604 
    1605                 if ((viewMask & VIEW_TITLES)) // Show titles
     1596                if (p->recgroup != "LiveTV" || LiveTVInAllPrograms)
    16061597                {
    1607                     sTitle = sortTitle(p->title, viewMask, titleSort,
    1608                             p->recpriority);
    1609                     sTitle = sTitle.lower();
     1598                    if (viewMask != VIEW_NONE)
     1599                        progLists[""].prepend(p);
    16101600
    1611                     if (!sortedList.contains(sTitle))
    1612                         sortedList[sTitle] = p->title;
    1613                     progLists[sortedList[sTitle]].prepend(p);
    1614                     progLists[sortedList[sTitle]].setAutoDelete(false);
    1615                 }
     1601                    asKey = p->MakeUniqueKey();
     1602                    if (asCache.contains(asKey))
     1603                        p->availableStatus = asCache[asKey];
     1604                    else
     1605                        p->availableStatus = asAvailable;
    16161606
    1617                 if ((viewMask & VIEW_RECGROUPS) &&
    1618                     p->recgroup != "") // Show recording groups
    1619                 {
    1620                     sortedList[p->recgroup.lower()] = p->recgroup;
    1621                     progLists[p->recgroup].prepend(p);
    1622                     progLists[p->recgroup].setAutoDelete(false);
    1623                 }
     1607                    if ((viewMask & VIEW_TITLES)) // Show titles
     1608                    {
     1609                        sTitle = sortTitle(p->title, viewMask, titleSort,
     1610                                p->recpriority);
     1611                        sTitle = sTitle.lower();
    16241612
    1625                 if ((viewMask & VIEW_CATEGORIES) &&
    1626                     p->category != "") // Show categories
    1627                 {
    1628                     sortedList[p->category.lower()] = p->category;
    1629                     progLists[p->category].prepend(p);
    1630                     progLists[p->category].setAutoDelete(false);
    1631                 }
     1613                        if (!sortedList.contains(sTitle))
     1614                            sortedList[sTitle] = p->title;
     1615                        progLists[sortedList[sTitle]].prepend(p);
     1616                        progLists[sortedList[sTitle]].setAutoDelete(false);
     1617                    }
    16321618
    1633                 if ((viewMask & VIEW_SEARCHES) &&
    1634                     searchRule[p->recordid] != "" &&
    1635                     p->title != searchRule[p->recordid]) // Show search rules
    1636                 {
    1637                     QString tmpTitle = QString("(%1)")
    1638                                                .arg(searchRule[p->recordid]);
    1639                     sortedList[tmpTitle] = tmpTitle;
    1640                     progLists[tmpTitle].prepend(p);
    1641                     progLists[tmpTitle].setAutoDelete(false);
    1642                 }
     1619                    if ((viewMask & VIEW_RECGROUPS) &&
     1620                        p->recgroup != "") // Show recording groups
     1621                    {
     1622                        sortedList[p->recgroup.lower()] = p->recgroup;
     1623                        progLists[p->recgroup].prepend(p);
     1624                        progLists[p->recgroup].setAutoDelete(false);
     1625                    }
    16431626
    1644                 if ((viewMask & VIEW_WATCHLIST))
    1645                 {
    1646                     if (watchListAutoExpire && !p->GetAutoExpireFromRecorded())
     1627                    if ((viewMask & VIEW_CATEGORIES) &&
     1628                        p->category != "") // Show categories
    16471629                    {
    1648                         p->recpriority2 = wlExpireOff;
    1649                         VERBOSE(VB_FILE, QString("Auto-expire off:  %1")
    1650                                                  .arg(p->title));
     1630                        sortedList[p->category.lower()] = p->category;
     1631                        progLists[p->category].prepend(p);
     1632                        progLists[p->category].setAutoDelete(false);
    16511633                    }
    1652                     else if (p->programflags & FL_WATCHED)
     1634
     1635                    if ((viewMask & VIEW_SEARCHES) &&
     1636                        searchRule[p->recordid] != "" &&
     1637                        p->title != searchRule[p->recordid]) // Show search rules
    16531638                    {
    1654                         p->recpriority2 = wlWatched;
    1655                         VERBOSE(VB_FILE, QString("Marked as 'watched':  %1")
    1656                                                  .arg(p->title));
     1639                        QString tmpTitle = QString("(%1)")
     1640                                                .arg(searchRule[p->recordid]);
     1641                        sortedList[tmpTitle] = tmpTitle;
     1642                        progLists[tmpTitle].prepend(p);
     1643                        progLists[tmpTitle].setAutoDelete(false);
    16571644                    }
    1658                     else
     1645
     1646                    if ((viewMask & VIEW_WATCHLIST))
    16591647                    {
    1660                         if (p->recordid > 0)
    1661                             recidEpisodes[p->recordid] += 1;
    1662                         if (recidEpisodes[p->recordid] == 1 ||
    1663                             p->recordid == 0 )
     1648                        if (watchListAutoExpire && !p->GetAutoExpireFromRecorded())
    16641649                        {
    1665                             sortedList[watchGroup] = watchGroup;
    1666                             progLists[watchGroup].prepend(p);
    1667                             progLists[watchGroup].setAutoDelete(false);
     1650                            p->recpriority2 = wlExpireOff;
     1651                            VERBOSE(VB_FILE, QString("Auto-expire off:  %1")
     1652                                                    .arg(p->title));
    16681653                        }
     1654                        else if (p->programflags & FL_WATCHED)
     1655                        {
     1656                            p->recpriority2 = wlWatched;
     1657                            VERBOSE(VB_FILE, QString("Marked as 'watched':  %1")
     1658                                                    .arg(p->title));
     1659                        }
    16691660                        else
    16701661                        {
    1671                             p->recpriority2 = wlEarlier;
    1672                             VERBOSE(VB_FILE, QString("Not the earliest:  %1")
    1673                                                      .arg(p->title));
     1662                            if (p->recordid > 0)
     1663                                recidEpisodes[p->recordid] += 1;
     1664                            if (recidEpisodes[p->recordid] == 1 ||
     1665                                p->recordid == 0 )
     1666                            {
     1667                                sortedList[watchGroup] = watchGroup;
     1668                                progLists[watchGroup].prepend(p);
     1669                                progLists[watchGroup].setAutoDelete(false);
     1670                            }
     1671                            else
     1672                            {
     1673                                p->recpriority2 = wlEarlier;
     1674                                VERBOSE(VB_FILE, QString("Not the earliest:  %1")
     1675                                                        .arg(p->title));
     1676                            }
    16741677                        }
    16751678                    }
     1679                    else
     1680                    {
     1681                        watchListStart = 0;
     1682                    }
    16761683                }
    1677                 else
     1684                if ((viewMask & VIEW_LIVETV) && p->recgroup == "LiveTV") // Show LiveTV group
    16781685                {
    1679                     watchListStart = 0;
     1686                    sortedList[livetvGroup] = livetvGroup;
     1687                    progLists[livetvGroup].prepend(p);
     1688                    progLists[livetvGroup].setAutoDelete(false);
    16801689                }
    16811690            }
    16821691        }
     
    44224431            SLOT(toggleSearchView(bool)));
    44234432    recGroupPopup->addWidget(checkBox, false);
    44244433
     4434    checkBox = new MythCheckBox(tr("Show Live TV Group"), recGroupPopup);
     4435    checkBox->setChecked(viewMask & VIEW_LIVETV);
     4436    connect(checkBox, SIGNAL(toggled(bool)), this,
     4437            SLOT(toggleLiveTVView(bool)));
     4438    recGroupPopup->addWidget(checkBox, false);
     4439
    44254440    MythPushButton *okbutton = new MythPushButton(recGroupPopup);
    44264441    okbutton->setText(tr("Save Current View"));
    44274442    recGroupPopup->addWidget(okbutton);
  • programs/mythfrontend/playbackbox.h

     
    7070        VIEW_RECGROUPS  =  0x04,
    7171        VIEW_WATCHLIST  =  0x08,
    7272        VIEW_SEARCHES   =  0x10,
     73        VIEW_LIVETV     =  0x20,
    7374    } ViewMask;
    7475
    7576    typedef enum
     
    177178    void toggleRecGroupView(bool setOn)  { toggleView(VIEW_RECGROUPS, setOn); }
    178179    void toggleWatchListView(bool setOn) { toggleView(VIEW_WATCHLIST, setOn); }
    179180    void toggleSearchView(bool setOn)    { toggleView(VIEW_SEARCHES, setOn); }
     181    void toggleLiveTVView(bool setOn)    { toggleView(VIEW_LIVETV, setOn); }
    180182
    181183    void exitWin();
    182184
     
    343345    QString             recGroupPassword;
    344346    QString             curGroupPassword;
    345347    QString             watchGroup;
     348    QString             livetvGroup;
    346349    ViewMask            viewMask;
    347350
    348351    // Theme parsing variables