MythTV  master
progfind.h
Go to the documentation of this file.
1 #ifndef PROGFIND_H_
2 #define PROGFIND_H_
3 
4 // Qt
5 #include <QDateTime>
6 #include <QEvent>
7 
8 // MythTV
13 
14 // MythFrontend
15 #include "schedulecommon.h"
16 
17 class TV;
18 class MythUIText;
19 class MythUIButtonList;
20 
21 void RunProgramFinder(TV *player = nullptr, bool embedVideo = false, bool allowEPG = true);
22 
23 class ProgFinder : public ScheduleCommon
24 {
25  Q_OBJECT
26  public:
27  explicit ProgFinder(MythScreenStack *parentStack, bool allowEPG = true,
28  TV *player = nullptr, bool embedVideo = false);
29  ~ProgFinder() override;
30 
31  bool Create(void) override; // MythScreenType
32  bool keyPressEvent(QKeyEvent *event) override; // MythScreenType
33 
34  private slots:
36  void showListTakeFocus(void);
37  void timesListTakeFocus(void);
38  void timesListLosingFocus(void);
39 
40  void ShowGuide() const override; // ScheduleCommon
41  void select();
42 
43  void customEvent(QEvent *e) override; // ScheduleCommon
44  void updateInfo(void);
45 
46  protected:
47  using ShowName = QMap<QString,QString>;
48 
49  void Init(void) override; // MythScreenType
50 
51  virtual void initAlphabetList(void);
52  virtual bool formatSelectedData(QString &data);
53  virtual bool formatSelectedData(QString &data, int charNum);
54  virtual void restoreSelectedData(QString &data);
55  virtual void whereClauseGetSearchData(QString &where, MSqlBindings &bindings);
56  ProgramInfo *GetCurrentProgram(void) const override; // ScheduleCommon
57 
58  void ShowMenu(void) override; // MythScreenType
59  void getShowNames(void);
60  void updateShowList();
61  void updateTimesList();
62  void selectShowData(QString progTitle, int newCurShow);
63 
65 
66  QString m_searchStr;
67  QString m_currentLetter;
68 
69  TV *m_player {nullptr};
70  bool m_embedVideo {false};
71  bool m_allowEPG {true};
72  bool m_allowKeypress {true};
73 
76 
78 
82 
85  MythUIText *m_help1Text {nullptr};
86  MythUIText *m_help2Text {nullptr};
87 };
88 
89 class JaProgFinder : public ProgFinder
90 {
91  public:
92  explicit JaProgFinder(MythScreenStack *parentStack, bool gg = false,
93  TV *player = nullptr, bool embedVideo = false)
94  : ProgFinder(parentStack, gg, player, embedVideo) {}
95 
96  protected:
97  void initAlphabetList() override; // ProgFinder
98  bool formatSelectedData(QString &data) override; // ProgFinder
99  bool formatSelectedData(QString &data, int charNum) override; // ProgFinder
100  void restoreSelectedData(QString &data) override; // ProgFinder
101  void whereClauseGetSearchData(QString &where, MSqlBindings &bindings) override; // ProgFinder
102 
103  private:
104  static const std::vector<QChar> kSearchChars;
105 };
106 
107 class HeProgFinder : public ProgFinder
108 {
109  public:
110  explicit HeProgFinder(MythScreenStack *parentStack, bool gg = false,
111  TV *player = nullptr, bool embedVideo = false)
112  : ProgFinder(parentStack, gg, player, embedVideo) {}
113 
114  protected:
115  void initAlphabetList() override; // ProgFinder
116  bool formatSelectedData(QString &data) override; // ProgFinder
117  bool formatSelectedData(QString &data, int charNum) override; // ProgFinder
118  void restoreSelectedData(QString &data) override; // ProgFinder
119  void whereClauseGetSearchData(QString &where, MSqlBindings &bindings) override; // ProgFinder
120 
121  private:
122  static const std::vector<QChar> kSearchChars;
123 };
125 class RuProgFinder : public ProgFinder
126 {
127  public:
128  explicit RuProgFinder(MythScreenStack *parentStack, bool gg = false,
129  TV *player = nullptr, bool embedVideo = false)
130  : ProgFinder(parentStack, gg, player, embedVideo) {}
131 
132  protected:
133  void initAlphabetList() override; // ProgFinder
134  bool formatSelectedData(QString &data) override; // ProgFinder
135  bool formatSelectedData(QString &data, int charNum) override; // ProgFinder
136  void restoreSelectedData(QString &data) override; // ProgFinder
137  void whereClauseGetSearchData(QString &where, MSqlBindings &bindings) override; // ProgFinder
138 
139  private:
140  static const std::vector<QChar> kSearchChars;
141 };
143 
145 {
146  Q_OBJECT
147 
148  public:
149  SearchInputDialog(MythScreenStack *parent, const QString &defaultValue)
150  : MythTextInputDialog(parent, "", FilterNone, false, defaultValue) {}
151 
152  bool Create(void) override; // MythTextInputDialog
153 
154  signals:
155  void valueChanged(QString);
156 
157  private slots:
158  void editChanged(void);
159 };
160 
161 #endif
MSqlBindings
QMap< QString, QVariant > MSqlBindings
typedef for a map of string -> string bindings for generic queries.
Definition: mythdbcon.h:100
ProgFinder::ShowGuide
void ShowGuide() const override
Definition: progfind.cpp:416
ProgFinder::m_help1Text
MythUIText * m_help1Text
Definition: progfind.h:85
false
VERBOSE_PREAMBLE false
Definition: verbosedefs.h:89
HeProgFinder::restoreSelectedData
void restoreSelectedData(QString &data) override
Definition: progfind.cpp:912
ProgFinder::~ProgFinder
~ProgFinder() override
Definition: progfind.cpp:123
ProgFinder::alphabetListItemSelected
void alphabetListItemSelected(MythUIButtonListItem *item)
Definition: progfind.cpp:137
ProgFinder::m_schedList
ProgramList m_schedList
Definition: progfind.h:75
JaProgFinder::initAlphabetList
void initAlphabetList() override
Definition: progfind.cpp:743
ProgFinder::formatSelectedData
virtual bool formatSelectedData(QString &data)
Definition: progfind.cpp:622
RuProgFinder::kSearchChars
static const std::vector< QChar > kSearchChars
Definition: progfind.h:140
mythdialogbox.h
MythScreenStack
Definition: mythscreenstack.h:16
ProgFinder::m_searchStr
QString m_searchStr
Definition: progfind.h:66
schedulecommon.h
ProgFinder::updateShowList
void updateShowList()
Definition: progfind.cpp:505
ProgFinder::keyPressEvent
bool keyPressEvent(QKeyEvent *event) override
Key event handler.
Definition: progfind.cpp:164
ProgFinder
Definition: progfind.h:23
ProgFinder::m_timesList
MythUIButtonList * m_timesList
Definition: progfind.h:81
ProgFinder::select
void select()
Definition: progfind.cpp:439
ProgFinder::m_player
TV * m_player
Definition: progfind.h:69
InfoMap
QHash< QString, QString > InfoMap
Definition: mythtypes.h:15
ProgFinder::m_alphabetList
MythUIButtonList * m_alphabetList
Definition: progfind.h:79
ProgFinder::ProgFinder
ProgFinder(MythScreenStack *parentStack, bool allowEPG=true, TV *player=nullptr, bool embedVideo=false)
Definition: progfind.cpp:51
MythUIButtonListItem
Definition: mythuibuttonlist.h:41
JaProgFinder::JaProgFinder
JaProgFinder(MythScreenStack *parentStack, bool gg=false, TV *player=nullptr, bool embedVideo=false)
Definition: progfind.h:92
ProgFinder::timesListTakeFocus
void timesListTakeFocus(void)
Definition: progfind.cpp:158
ProgFinder::initAlphabetList
virtual void initAlphabetList(void)
Definition: progfind.cpp:547
programinfo.h
JaProgFinder::kSearchChars
static const std::vector< QChar > kSearchChars
Definition: progfind.h:104
ProgFinder::showListTakeFocus
void showListTakeFocus(void)
Definition: progfind.cpp:153
ProgFinder::m_allowEPG
bool m_allowEPG
Definition: progfind.h:71
ProgFinder::Create
bool Create(void) override
Definition: progfind.cpp:62
ProgFinder::updateTimesList
void updateTimesList()
Definition: progfind.cpp:449
HeProgFinder::formatSelectedData
bool formatSelectedData(QString &data) override
HeProgFinder::whereClauseGetSearchData
void whereClauseGetSearchData(QString &where, MSqlBindings &bindings) override
Definition: progfind.cpp:861
ProgFinder::m_help2Text
MythUIText * m_help2Text
Definition: progfind.h:86
ProgFinder::m_showNames
ShowName m_showNames
Definition: progfind.h:64
SearchInputDialog::SearchInputDialog
SearchInputDialog(MythScreenStack *parent, const QString &defaultValue)
Definition: progfind.h:149
ProgFinder::updateInfo
void updateInfo(void)
Definition: progfind.cpp:351
ProgFinder::m_infoMap
InfoMap m_infoMap
Definition: progfind.h:77
ScheduleCommon
Definition: schedulecommon.h:16
ProgFinder::m_showList
MythUIButtonList * m_showList
Definition: progfind.h:80
SearchInputDialog::editChanged
void editChanged(void)
Definition: progfind.cpp:1087
JaProgFinder::whereClauseGetSearchData
void whereClauseGetSearchData(QString &where, MSqlBindings &bindings) override
Definition: progfind.cpp:755
ProgFinder::Init
void Init(void) override
Used after calling Load() to assign data to widgets and other UI initilisation which is prohibited in...
Definition: progfind.cpp:96
SearchInputDialog
Definition: progfind.h:144
ProgFinder::m_searchText
MythUIText * m_searchText
Definition: progfind.h:83
FilterNone
@ FilterNone
Definition: mythuitextedit.h:21
SearchInputDialog::valueChanged
void valueChanged(QString)
HeProgFinder::kSearchChars
static const std::vector< QChar > kSearchChars
Definition: progfind.h:122
ProgFinder::ShowName
QMap< QString, QString > ShowName
Definition: progfind.h:47
JaProgFinder::restoreSelectedData
void restoreSelectedData(QString &data) override
Definition: progfind.cpp:828
RuProgFinder::initAlphabetList
void initAlphabetList() override
Definition: progfind.cpp:951
ProgFinder::ShowMenu
void ShowMenu(void) override
Definition: progfind.cpp:223
AutoDeleteDeque< ProgramInfo * >
JaProgFinder::formatSelectedData
bool formatSelectedData(QString &data) override
ProgFinder::whereClauseGetSearchData
virtual void whereClauseGetSearchData(QString &where, MSqlBindings &bindings)
Definition: progfind.cpp:560
ProgramInfo
Holds information on recordings and videos.
Definition: programinfo.h:67
MythUIText
All purpose text widget, displays a text string.
Definition: mythuitext.h:28
RuProgFinder::restoreSelectedData
void restoreSelectedData(QString &data) override
Definition: progfind.cpp:1040
ProgFinder::m_currentLetter
QString m_currentLetter
Definition: progfind.h:67
ProgFinder::timesListLosingFocus
void timesListLosingFocus(void)
Definition: progfind.cpp:148
playercontext.h
HeProgFinder
Definition: progfind.h:107
ProgFinder::m_groupByText
MythUIText * m_groupByText
Definition: progfind.h:84
ProgFinder::selectShowData
void selectShowData(QString progTitle, int newCurShow)
Definition: progfind.cpp:523
RuProgFinder
Definition: progfind.h:125
ProgFinder::customEvent
void customEvent(QEvent *e) override
Definition: progfind.cpp:257
HeProgFinder::initAlphabetList
void initAlphabetList() override
Definition: progfind.cpp:851
RunProgramFinder
void RunProgramFinder(TV *player=nullptr, bool embedVideo=false, bool allowEPG=true)
Definition: progfind.cpp:31
HeProgFinder::HeProgFinder
HeProgFinder(MythScreenStack *parentStack, bool gg=false, TV *player=nullptr, bool embedVideo=false)
Definition: progfind.h:110
ProgFinder::GetCurrentProgram
ProgramInfo * GetCurrentProgram(void) const override
Definition: progfind.cpp:1044
RuProgFinder::RuProgFinder
RuProgFinder(MythScreenStack *parentStack, bool gg=false, TV *player=nullptr, bool embedVideo=false)
Definition: progfind.h:128
RuProgFinder::formatSelectedData
bool formatSelectedData(QString &data) override
MythTextInputDialog
Dialog prompting the user to enter a text string.
Definition: mythdialogbox.h:314
SearchInputDialog::Create
bool Create(void) override
Definition: progfind.cpp:1052
ProgFinder::m_embedVideo
bool m_embedVideo
Definition: progfind.h:70
ProgFinder::m_showData
ProgramList m_showData
Definition: progfind.h:74
MythUIButtonList
List widget, displays list items in a variety of themeable arrangements and can trigger signals when ...
Definition: mythuibuttonlist.h:191
JaProgFinder
Definition: progfind.h:89
RuProgFinder::whereClauseGetSearchData
void whereClauseGetSearchData(QString &where, MSqlBindings &bindings) override
Definition: progfind.cpp:961
ProgFinder::m_allowKeypress
bool m_allowKeypress
Definition: progfind.h:72
ProgFinder::getShowNames
void getShowNames(void)
Definition: progfind.cpp:477
mythscreentype.h
ProgFinder::restoreSelectedData
virtual void restoreSelectedData(QString &data)
Definition: progfind.cpp:721
TV
Control TV playback.
Definition: tv_play.h:154