Ticket #12297: Upcoming-Add-Active-filter.patch

File Upcoming-Add-Active-filter.patch, 9.2 KB (added by Roger Siddons <dizygotheca@…>, 7 years ago)
  • mythtv/programs/mythfrontend/viewscheduled.cpp

    From c9545460bbab9d5c3e54ee63fb0ddb7cb6ff087d Mon Sep 17 00:00:00 2001
    From: Roger Siddons <dizygotheca@ntlworld.com>
    Date: Sat, 11 Oct 2014 18:18:47 +0100
    Subject: [PATCH] Upcoming: Add Active filter
    
    
    diff --git a/mythtv/programs/mythfrontend/viewscheduled.cpp b/mythtv/programs/mythfrontend/viewscheduled.cpp
    index 72dbe3c..efd82f4 100644
    a b ViewScheduled::ViewScheduled(MythScreenStack *parent, TV* player, bool showTV) 
    3636               m_conflictDate(QDate()),
    3737               m_schedulesList(NULL),
    3838               m_groupList(NULL),
    39                m_showAll(!gCoreContext->GetNumSetting("ViewSchedShowLevel", 0)),
     39               m_showState(static_cast<ShowStatusType>(gCoreContext->GetNumSetting("ViewSchedShowLevel", 0))),
    4040               m_inEvent(false),
    4141               m_inFill(false),
    4242               m_needFill(false),
    ViewScheduled::ViewScheduled(MythScreenStack *parent, TV* player, bool showTV) 
    5656ViewScheduled::~ViewScheduled()
    5757{
    5858    gCoreContext->removeListener(this);
    59     gCoreContext->SaveSetting("ViewSchedShowLevel", !m_showAll);
     59    gCoreContext->SaveSetting("ViewSchedShowLevel", m_showState);
    6060
    6161    // if we have a player, we need to tell we are done
    6262    if (m_player)
    bool ViewScheduled::keyPressEvent(QKeyEvent *event) 
    178178        else if (action == ACTION_CHANNELSEARCH)
    179179            ShowChannelSearch();
    180180        else if (action == "1")
    181             setShowAll(true);
     181            setShowState(ssShowAll);
    182182        else if (action == "2")
    183             setShowAll(false);
    184         else if (action == "PREVVIEW" || action == "NEXTVIEW")
    185             setShowAll(!m_showAll);
     183            setShowState(ssShowImportant);
     184        else if (action == "3")
     185            setShowState(ssShowActive);
     186        else if (action == "PREVVIEW")
     187            switch (m_showState)
     188            {
     189            case ssShowAll:
     190                setShowState(ssShowActive);
     191                break;
     192            case ssShowActive:
     193                setShowState(ssShowImportant);
     194                break;
     195            case ssShowImportant:
     196            default: // reset invalid states
     197                setShowState(ssShowAll);
     198            }
     199        else if (action == "NEXTVIEW")
     200            switch (m_showState)
     201            {
     202            case ssShowAll:
     203                setShowState(ssShowImportant);
     204                break;
     205            case ssShowImportant:
     206                setShowState(ssShowActive);
     207                break;
     208            case ssShowActive:
     209            default: // reset invalid states
     210                setShowState(ssShowAll);
     211            }
    186212        else if (action == "VIEWCARD")
    187213            viewCards();
    188214        else if (action == "VIEWINPUT")
    bool ViewScheduled::keyPressEvent(QKeyEvent *event) 
    204230
    205231void ViewScheduled::ShowMenu(void)
    206232{
    207     QString label = tr("Options");
     233    MythMenu *showmenu = new MythMenu(tr("Show"), this, "showmenu");
     234    showmenu->AddItem(tr("All"));
     235    showmenu->AddItem(tr("Important"));
     236    showmenu->AddItem(tr("Active"));
     237
     238    MythMenu *menu = new MythMenu(tr("Options"), this, "menu");
     239
     240    menu->AddItem(tr("Show"), NULL, showmenu);
     241    menu->AddItem(tr("Program Details"));
     242    menu->AddItem(tr("Program Guide"));
     243    menu->AddItem(tr("Channel Search"));
     244    menu->AddItem(tr("Upcoming by Title"));
     245    menu->AddItem(tr("Upcoming Scheduled"));
     246    menu->AddItem(tr("Previously Recorded"));
     247    menu->AddItem(tr("Custom Edit"));
     248    menu->AddItem(tr("Delete Rule"));
     249    menu->AddItem(tr("Show Cards"));
     250    menu->AddItem(tr("Show Inputs"));
    208251
    209252    MythScreenStack *popupStack = GetMythMainWindow()->GetStack("popup stack");
    210     MythDialogBox *menuPopup = new MythDialogBox(label, popupStack,
    211                                                  "menuPopup");
     253    MythDialogBox *menuPopup = new MythDialogBox(menu, popupStack, "menuPopup");
    212254
    213255    if (menuPopup->Create())
    214     {
    215         menuPopup->SetReturnEvent(this, "menu");
    216 
    217         if (m_showAll)
    218             menuPopup->AddButton(tr("Show Important"));
    219         else
    220             menuPopup->AddButton(tr("Show All"));
    221         menuPopup->AddButton(tr("Program Details"));
    222         menuPopup->AddButton(tr("Program Guide"));
    223         menuPopup->AddButton(tr("Channel Search"));
    224         menuPopup->AddButton(tr("Upcoming by title"));
    225         menuPopup->AddButton(tr("Upcoming scheduled"));
    226         menuPopup->AddButton(tr("Previously Recorded"));
    227         menuPopup->AddButton(tr("Custom Edit"));
    228         menuPopup->AddButton(tr("Delete Rule"));
    229         menuPopup->AddButton(tr("Show Cards"));
    230         menuPopup->AddButton(tr("Show Inputs"));
    231 
    232256        popupStack->AddScreen(menuPopup);
    233     }
    234257    else
    235     {
    236258        delete menuPopup;
    237     }
    238259}
    239260
    240261void ViewScheduled::LoadList(bool useExistingData)
    void ViewScheduled::LoadList(bool useExistingData) 
    288309             recstatus == rsRecording ||
    289310             recstatus == rsTuning ||
    290311             recstatus == rsFailing) &&
    291             (m_showAll ||
     312            (m_showState == ssShowAll ||
    292313             (recstatus >= rsFailing &&
    293314              recstatus <= rsWillRecord) ||
    294              recstatus == rsDontRecord ||
    295              (recstatus == rsTooManyRecordings &&
    296               ++toomanycounts[pginfo->GetRecordingRuleID()] <= 1) ||
    297              (recstatus > rsTooManyRecordings &&
    298               recstatus != rsRepeat &&
    299               recstatus != rsNeverRecord)))
     315             (m_showState == ssShowImportant &&
     316              (recstatus == rsDontRecord ||
     317               (recstatus == rsTooManyRecordings &&
     318                ++toomanycounts[pginfo->GetRecordingRuleID()] <= 1) ||
     319              (recstatus > rsTooManyRecordings &&
     320               recstatus != rsRepeat &&
     321               recstatus != rsNeverRecord)))))
    300322        {
    301323            m_cardref[pginfo->GetCardID()]++;
    302324            if (pginfo->GetCardID() > m_maxcard)
    void ViewScheduled::FillList() 
    502524    MythUIText *filterText = dynamic_cast<MythUIText*>(GetChild("filter"));
    503525    if (filterText)
    504526    {
    505         if (m_showAll)
     527        switch (m_showState) {
     528        case ssShowAll:
    506529            filterText->SetText(tr("All"));
    507         else
     530            break;
     531        case ssShowImportant:
    508532            filterText->SetText(tr("Important"));
     533            break;
     534        case ssShowActive:
     535            filterText->SetText(tr("Active"));
     536            break;
     537        default:
     538            filterText->SetText("");
     539        }
    509540    }
    510541}
    511542
    void ViewScheduled::deleteRule() 
    566597        delete okPopup;
    567598}
    568599
    569 void ViewScheduled::setShowAll(bool all)
     600void ViewScheduled::setShowState(ShowStatusType state)
    570601{
    571     m_showAll = all;
     602    m_showState = state;
    572603    m_needFill = true;
    573604}
    574605
    void ViewScheduled::customEvent(QEvent *event) 
    654685
    655686            EmbedTVWindow();
    656687        }
    657         else if (resultid == "menu")
     688        else if (resultid == "showmenu")
    658689        {
    659             if (resulttext == tr("Show Important"))
     690            if (resulttext == tr("All"))
     691            {
     692                setShowState(ssShowAll);
     693            }
     694            else if (resulttext == tr("Important"))
    660695            {
    661                 setShowAll(false);
     696                setShowState(ssShowImportant);
    662697            }
    663             else if (resulttext == tr("Show All"))
     698            else if (resulttext == tr("Active"))
    664699            {
    665                 setShowAll(true);
     700                setShowState(ssShowActive);
    666701            }
    667             else if (resulttext == tr("Program Details"))
     702            if (m_needFill)
     703                LoadList();
     704        }
     705        else if (resultid == "menu")
     706        {
     707                        if (resulttext == tr("Program Details"))
    668708            {
    669709                ShowDetails();
    670710            }
    void ViewScheduled::customEvent(QEvent *event) 
    676716            {
    677717                ShowChannelSearch();
    678718            }
    679             else if (resulttext == tr("Upcoming by title"))
     719            else if (resulttext == tr("Upcoming by Title"))
    680720            {
    681721                ShowUpcoming();
    682722            }
    683             else if (resulttext == tr("Upcoming scheduled"))
     723            else if (resulttext == tr("Upcoming Scheduled"))
    684724            {
    685725                ShowUpcomingScheduled();
    686726            }
  • mythtv/programs/mythfrontend/viewscheduled.h

    diff --git a/mythtv/programs/mythfrontend/viewscheduled.h b/mythtv/programs/mythfrontend/viewscheduled.h
    index 611eb7a..347e072 100644
    a b class ViewScheduled : public ScheduleCommon 
    5252    virtual ProgramInfo *GetCurrentProgram(void) const;
    5353
    5454  private:
     55    typedef enum
     56    {
     57        ssShowAll       = 0,
     58        ssShowImportant = 1,
     59        ssShowActive    = 2,
     60    } ShowStatusType;
     61
    5562    void FillList(void);
    5663    void LoadList(bool useExistingData = false);
    57     void setShowAll(bool all);
     64    void setShowState(ShowStatusType state);
    5865    void viewCards(void);
    5966    void viewInputs(void);
    6067
    class ViewScheduled : public ScheduleCommon 
    6875    MythUIButtonList *m_schedulesList;
    6976    MythUIButtonList *m_groupList;
    7077
    71     bool m_showAll;
     78    ShowStatusType m_showState;
    7279
    7380    bool m_inEvent;
    7481    bool m_inFill;