MythTV master
proglist.h
Go to the documentation of this file.
1#ifndef PROGLIST_H_
2#define PROGLIST_H_
3
4// Qt headers
5#include <QDateTime>
6#include <QString>
7
8// MythTV headers
9#include "libmythbase/programinfo.h" // for ProgramList
10
11// MythFrontend
12#include "proglist_helpers.h"
13#include "schedulecommon.h"
14
15class TV;
16
17enum ProgListType : std::uint8_t {
29 plTime = 11,
33};
34
36{
37 friend class PhrasePopup;
38 friend class TimePopup;
39 friend class PowerSearchPopup;
41
42 Q_OBJECT
43
44 public:
46 QString view, QString extraArg,
47 QDateTime selectedTime = QDateTime());
48 ProgLister(MythScreenStack *parent, TV* player,
49 ProgListType pltype, const QString & extraArg);
50 explicit ProgLister(MythScreenStack *parent, uint recid = 0,
51 QString title = QString());
52 ~ProgLister(void) override;
53
54 static void * RunProgramList(void *player, ProgListType pltype,
55 const QString & extraArg);
56
57 bool Create(void) override; // MythScreenType
58 bool keyPressEvent(QKeyEvent *event) override; // MythScreenType
59 void customEvent(QEvent *event) override; // ScheduleCommon
60
61 protected slots:
62 void Close(void) override; // MythScreenType
63
66
67 void DeleteOldEpisode(bool ok);
68 void DeleteOldSeries(bool ok);
69
70 void SetViewFromList(const QString& item);
71 void SetViewFromTime(QDateTime searchTime);
72
73 void ShowDeleteRuleMenu(void);
74 void ShowDeleteOldEpisodeMenu(void);
75 void ShowChooseViewMenu(void);
76 void ShowOldRecordedMenu(void);
77
78 private:
79 void Load(void) override; // MythScreenType
80
81 void FillViewList(const QString &view);
82 void FillItemList(bool restorePosition, bool updateDisp = true);
83
84 void ClearCurrentProgramInfo(void);
85 void UpdateDisplay(const ProgramInfo *selected = nullptr);
86 void RestoreSelection(const ProgramInfo *selected, int selectedOffset);
87 void UpdateButtonList(void);
88 void UpdateKeywordInDB(const QString &text, const QString &oldValue);
89
90 void ShowMenu(void) override; // MythScreenType
91 void ShowDeleteItemMenu(void);
92 void ShowDeleteOldSeriesMenu(void);
93
94 void SwitchToPreviousView(void);
95 void SwitchToNextView(void);
96
97 enum SortBy : std::uint8_t { kTimeSort, kPrevTitleSort, kTitleSort, };
98 SortBy GetSortBy(void) const;
99 void SortList(SortBy sortby, bool reverseSort);
100
101 ProgramInfo *GetCurrentProgram(void) const override; // ScheduleCommon
102
103 static bool PowerStringToSQL(
104 const QString &qphrase, QString &output, MSqlBindings &bindings) ;
105
106 private:
109 QString m_title;
110 QString m_extraArg;
111 QDateTime m_startTime;
112 QDateTime m_searchTime;
113 QDateTime m_selectedTime;
115
117
118 QString m_view;
119 int m_curView {-1};
120 QStringList m_viewList;
121 QStringList m_viewTextList;
122
126
127 QStringList m_typeList;
128 QStringList m_genreList;
129 QStringList m_stationList;
130
131 bool m_allowEvents {true};
132 bool m_titleSort {false};
133 bool m_reverseSort {false};
134 bool m_useGenres {false};
135
142
143 bool m_allowViewDialog {true};
144
145 TV *m_player {nullptr};
146};
147
148#endif
List widget, displays list items in a variety of themeable arrangements and can trigger signals when ...
All purpose text widget, displays a text string.
Definition: mythuitext.h:29
void HandleVisible(MythUIButtonListItem *item)
Definition: proglist.cpp:1578
void ShowChooseViewMenu(void)
Definition: proglist.cpp:490
MythUIText * m_groupByText
Definition: proglist.h:141
void SortList(SortBy sortby, bool reverseSort)
Definition: proglist.cpp:1471
QDateTime m_selectedTime
Definition: proglist.h:113
ProgramList m_schedList
Definition: proglist.h:125
QStringList m_viewTextList
Definition: proglist.h:121
MythUIButtonList * m_progList
Definition: proglist.h:139
SortBy GetSortBy(void) const
Definition: proglist.cpp:1462
bool m_allowEvents
Definition: proglist.h:131
void SwitchToNextView(void)
Definition: proglist.cpp:421
void customEvent(QEvent *event) override
Definition: proglist.cpp:1665
bool m_reverseSort
Definition: proglist.h:133
TV * m_player
Definition: proglist.h:145
ProgListType m_type
Definition: proglist.h:107
void DeleteOldSeries(bool ok)
Definition: proglist.cpp:755
MythUIText * m_positionText
Definition: proglist.h:138
QString m_title
Definition: proglist.h:109
void SetViewFromList(const QString &item)
Definition: proglist.cpp:606
static void * RunProgramList(void *player, ProgListType pltype, const QString &extraArg)
Definition: proglist.cpp:37
QString m_view
Definition: proglist.h:118
void FillItemList(bool restorePosition, bool updateDisp=true)
Definition: proglist.cpp:1132
void ShowDeleteOldEpisodeMenu(void)
Definition: proglist.cpp:710
friend class TimePopup
Definition: proglist.h:38
void HandleSelected(MythUIButtonListItem *item)
Definition: proglist.cpp:1627
void FillViewList(const QString &view)
Definition: proglist.cpp:811
void UpdateButtonList(void)
Definition: proglist.cpp:1611
void ShowOldRecordedMenu(void)
Definition: proglist.cpp:776
void RestoreSelection(const ProgramInfo *selected, int selectedOffset)
Definition: proglist.cpp:1551
MythUIText * m_curviewText
Definition: proglist.h:137
static bool PowerStringToSQL(const QString &qphrase, QString &output, MSqlBindings &bindings)
Definition: proglist.cpp:613
void SetViewFromTime(QDateTime searchTime)
Definition: proglist.cpp:592
QStringList m_stationList
Definition: proglist.h:129
int m_curView
Definition: proglist.h:119
void Load(void) override
Load data which will ultimately be displayed on-screen or used to determine what appears on-screen (S...
Definition: proglist.cpp:237
ProgLister(MythScreenStack *parent, ProgListType pltype, QString view, QString extraArg, QDateTime selectedTime=QDateTime())
Definition: proglist.cpp:52
~ProgLister(void) override
Definition: proglist.cpp:137
MythUIText * m_messageText
Definition: proglist.h:140
void ShowDeleteItemMenu(void)
Definition: proglist.cpp:671
QDateTime m_searchTime
Definition: proglist.h:112
QString m_channelOrdering
Definition: proglist.h:114
void Close(void) override
Definition: proglist.cpp:151
bool keyPressEvent(QKeyEvent *event) override
Key event handler.
Definition: proglist.cpp:248
@ kTimeSort
Definition: proglist.h:97
@ kPrevTitleSort
Definition: proglist.h:97
@ kTitleSort
Definition: proglist.h:97
bool Create(void) override
Definition: proglist.cpp:160
bool m_useGenres
Definition: proglist.h:134
RecSearchType m_searchType
Definition: proglist.h:116
QStringList m_viewList
Definition: proglist.h:120
uint m_recid
Definition: proglist.h:108
void UpdateKeywordInDB(const QString &text, const QString &oldValue)
Definition: proglist.cpp:445
ProgramList m_itemListSave
Definition: proglist.h:124
void ShowDeleteOldSeriesMenu(void)
Definition: proglist.cpp:743
void ShowDeleteRuleMenu(void)
Definition: proglist.cpp:679
QString m_extraArg
Definition: proglist.h:110
void UpdateDisplay(const ProgramInfo *selected=nullptr)
Definition: proglist.cpp:1517
ProgramInfo * GetCurrentProgram(void) const override
Definition: proglist.cpp:663
void ShowMenu(void) override
Definition: proglist.cpp:336
QStringList m_typeList
Definition: proglist.h:127
MythUIText * m_schedText
Definition: proglist.h:136
void DeleteOldEpisode(bool ok)
Definition: proglist.cpp:722
QStringList m_genreList
Definition: proglist.h:128
void ClearCurrentProgramInfo(void)
Definition: proglist.cpp:1506
bool m_titleSort
Definition: proglist.h:132
ProgramList m_itemList
Definition: proglist.h:123
void SwitchToPreviousView(void)
Definition: proglist.cpp:398
QDateTime m_startTime
Definition: proglist.h:111
bool m_allowViewDialog
Definition: proglist.h:143
Holds information on recordings and videos.
Definition: programinfo.h:68
Control TV playback.
Definition: tv_play.h:156
unsigned int uint
Definition: freesurround.h:24
QMap< QString, QVariant > MSqlBindings
typedef for a map of string -> string bindings for generic queries.
Definition: mythdbcon.h:100
ProgListType
Definition: proglist.h:17
@ plKeywordSearch
Definition: proglist.h:21
@ plTime
Definition: proglist.h:29
@ plChannel
Definition: proglist.h:28
@ plTitleSearch
Definition: proglist.h:20
@ plPreviouslyRecorded
Definition: proglist.h:32
@ plUnknown
Definition: proglist.h:18
@ plPowerSearch
Definition: proglist.h:23
@ plMovies
Definition: proglist.h:26
@ plSQLSearch
Definition: proglist.h:24
@ plCategory
Definition: proglist.h:27
@ plRecordid
Definition: proglist.h:30
@ plTitle
Definition: proglist.h:19
@ plPeopleSearch
Definition: proglist.h:22
@ plNewListings
Definition: proglist.h:25
@ plStoredSearch
Definition: proglist.h:31
RecSearchType
@ kNoSearch
#define output