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 "libmythtv/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 void ShowMenu(void) override; // MythScreenType
59 bool keyPressEvent(QKeyEvent *event) override; // MythScreenType
60
61 public slots:
62 void Close(void) override; // MythScreenType
63
64 protected:
65 void customEvent(QEvent *event) override; // ScheduleCommon
66 void Load(void) override; // MythScreenType
67 ProgramInfo *GetCurrentProgram(void) const override; // ScheduleCommon
68
69 protected slots:
72
73 void DeleteOldEpisode(bool ok);
74 void DeleteOldSeries(bool ok);
75
76 void SetViewFromList(const QString& item);
77 void SetViewFromTime(QDateTime searchTime);
78
79 void ShowDeleteRuleMenu(void);
80 void ShowDeleteOldEpisodeMenu(void);
81 void ShowChooseViewMenu(void);
82 void ShowOldRecordedMenu(void);
83
84 private:
85 void FillViewList(const QString &view);
86 void FillItemList(bool restorePosition, bool updateDisp = true);
87
88 void ClearCurrentProgramInfo(void);
89 void UpdateDisplay(const ProgramInfo *selected = nullptr);
90 void RestoreSelection(const ProgramInfo *selected, int selectedOffset);
91 void UpdateButtonList(void);
92 void UpdateKeywordInDB(const QString &text, const QString &oldValue);
93
94 void ShowDeleteItemMenu(void);
95 void ShowDeleteOldSeriesMenu(void);
96
97 void SwitchToPreviousView(void);
98 void SwitchToNextView(void);
99
100 enum SortBy : std::uint8_t { kTimeSort, kPrevTitleSort, kTitleSort, };
101 SortBy GetSortBy(void) const;
102 void SortList(SortBy sortby, bool reverseSort);
103
104 static bool PowerStringToSQL(
105 const QString &qphrase, QString &output, MSqlBindings &bindings) ;
106
107 private:
110 QString m_title;
111 QString m_extraArg;
112 QDateTime m_startTime;
113 QDateTime m_searchTime;
114 QDateTime m_selectedTime;
116
118
119 QString m_view;
120 int m_curView {-1};
121 QStringList m_viewList;
122 QStringList m_viewTextList;
123
127
128 QStringList m_typeList;
129 QStringList m_genreList;
130 QStringList m_stationList;
131
132 bool m_allowEvents {true};
133 bool m_titleSort {false};
134 bool m_reverseSort {false};
135 bool m_useGenres {false};
136
143
144 bool m_allowViewDialog {true};
145
146 TV *m_player {nullptr};
147};
148
149#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:1585
void ShowChooseViewMenu(void)
Definition: proglist.cpp:492
MythUIText * m_groupByText
Definition: proglist.h:142
void SortList(SortBy sortby, bool reverseSort)
Definition: proglist.cpp:1476
QDateTime m_selectedTime
Definition: proglist.h:114
ProgramList m_schedList
Definition: proglist.h:126
QStringList m_viewTextList
Definition: proglist.h:122
MythUIButtonList * m_progList
Definition: proglist.h:140
SortBy GetSortBy(void) const
Definition: proglist.cpp:1467
bool m_allowEvents
Definition: proglist.h:132
void SwitchToNextView(void)
Definition: proglist.cpp:423
void customEvent(QEvent *event) override
Definition: proglist.cpp:1672
bool m_reverseSort
Definition: proglist.h:134
TV * m_player
Definition: proglist.h:146
ProgListType m_type
Definition: proglist.h:108
void DeleteOldSeries(bool ok)
Definition: proglist.cpp:757
MythUIText * m_positionText
Definition: proglist.h:139
QString m_title
Definition: proglist.h:110
void SetViewFromList(const QString &item)
Definition: proglist.cpp:608
static void * RunProgramList(void *player, ProgListType pltype, const QString &extraArg)
Definition: proglist.cpp:38
QString m_view
Definition: proglist.h:119
void FillItemList(bool restorePosition, bool updateDisp=true)
Definition: proglist.cpp:1137
void ShowDeleteOldEpisodeMenu(void)
Definition: proglist.cpp:712
friend class TimePopup
Definition: proglist.h:38
void HandleSelected(MythUIButtonListItem *item)
Definition: proglist.cpp:1634
void FillViewList(const QString &view)
Definition: proglist.cpp:813
void UpdateButtonList(void)
Definition: proglist.cpp:1618
void ShowOldRecordedMenu(void)
Definition: proglist.cpp:778
void RestoreSelection(const ProgramInfo *selected, int selectedOffset)
Definition: proglist.cpp:1558
MythUIText * m_curviewText
Definition: proglist.h:138
static bool PowerStringToSQL(const QString &qphrase, QString &output, MSqlBindings &bindings)
Definition: proglist.cpp:615
void SetViewFromTime(QDateTime searchTime)
Definition: proglist.cpp:594
QStringList m_stationList
Definition: proglist.h:130
int m_curView
Definition: proglist.h:120
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:238
ProgLister(MythScreenStack *parent, ProgListType pltype, QString view, QString extraArg, QDateTime selectedTime=QDateTime())
Definition: proglist.cpp:53
~ProgLister(void) override
Definition: proglist.cpp:138
MythUIText * m_messageText
Definition: proglist.h:141
void ShowDeleteItemMenu(void)
Definition: proglist.cpp:673
QDateTime m_searchTime
Definition: proglist.h:113
QString m_channelOrdering
Definition: proglist.h:115
void Close(void) override
Definition: proglist.cpp:152
bool keyPressEvent(QKeyEvent *event) override
Key event handler.
Definition: proglist.cpp:249
@ kPrevTitleSort
Definition: proglist.h:100
@ kTitleSort
Definition: proglist.h:100
bool Create(void) override
Definition: proglist.cpp:161
bool m_useGenres
Definition: proglist.h:135
RecSearchType m_searchType
Definition: proglist.h:117
QStringList m_viewList
Definition: proglist.h:121
uint m_recid
Definition: proglist.h:109
void UpdateKeywordInDB(const QString &text, const QString &oldValue)
Definition: proglist.cpp:447
ProgramList m_itemListSave
Definition: proglist.h:125
void ShowDeleteOldSeriesMenu(void)
Definition: proglist.cpp:745
void ShowDeleteRuleMenu(void)
Definition: proglist.cpp:681
QString m_extraArg
Definition: proglist.h:111
void UpdateDisplay(const ProgramInfo *selected=nullptr)
Definition: proglist.cpp:1522
ProgramInfo * GetCurrentProgram(void) const override
Definition: proglist.cpp:665
void ShowMenu(void) override
Definition: proglist.cpp:338
QStringList m_typeList
Definition: proglist.h:128
MythUIText * m_schedText
Definition: proglist.h:137
void DeleteOldEpisode(bool ok)
Definition: proglist.cpp:724
QStringList m_genreList
Definition: proglist.h:129
void ClearCurrentProgramInfo(void)
Definition: proglist.cpp:1511
bool m_titleSort
Definition: proglist.h:133
ProgramList m_itemList
Definition: proglist.h:124
void SwitchToPreviousView(void)
Definition: proglist.cpp:400
QDateTime m_startTime
Definition: proglist.h:112
bool m_allowViewDialog
Definition: proglist.h:144
Holds information on recordings and videos.
Definition: programinfo.h:74
Control TV playback.
Definition: tv_play.h:157
unsigned int uint
Definition: compat.h:60
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