MythTV master
scheduleeditor.h
Go to the documentation of this file.
1#ifndef SCHEDULERECORDING_H_
2#define SCHEDULERECORDING_H_
3
4// MythTV
10
11// MythFrontend
12#include "schedulecommon.h"
13
14class ProgramInfo;
15class MythUIText;
16class MythUIButton;
19class MythUIStateType;
20class MythUISpinBox;
21class TV;
22
23class ScheduleEditor;
24class SchedEditChild;
25
27{
28 protected:
30 SchedOptMixin *other = nullptr);
31 void SetRule(RecordingRule *rule) { m_rule = rule; };
32 void Create(bool *err);
33 void Load(void);
34 void Save(void);
35 void RuleChanged(void);
37
47
48 private:
52 bool m_loaded {false};
53 bool m_haveRepeats {false};
54};
55
57{
58 protected:
60 StoreOptMixin *other = nullptr)
61 : m_screen(&screen), m_rule(rule), m_other(other) {}
62 void SetRule(RecordingRule *rule) { m_rule = rule; };
63 void Create(bool *err);
64 void Load(void);
65 void Save(void);
66 void RuleChanged(void);
68 void PromptForRecGroup(void);
69 void SetRecGroup(int recgroupID, QString recgroup);
70
71 static int CreateRecordingGroup(const QString &groupName);
72
80
81 private:
85 bool m_loaded {false};
86};
87
89{
90 protected:
92 PostProcMixin *other= nullptr)
93 : m_screen(&screen), m_rule(rule), m_other(other) {}
94 void SetRule(RecordingRule *rule) { m_rule = rule; };
95 void Create(bool *err);
96 void Load(void);
97 void Save(void);
98 void RuleChanged(void);
99 void TranscodeChanged(bool enable);
100
109
110 private:
114 bool m_loaded {false};
115};
116
118{
119 protected:
121 FilterOptMixin *other = nullptr)
122 : m_screen(&screen), m_rule(rule), m_other(other) {}
123 void SetRule(RecordingRule *rule) { m_rule = rule; };
124 void Create(bool *err);
125 void Load(void);
126 void Save(void);
127 void RuleChanged(void);
128 static void ToggleSelected(MythUIButtonListItem *item);
129
132
133 private:
137 bool m_loaded {false};
138
139 QStringList m_descriptions;
140};
141
143 public SchedOptMixin, public FilterOptMixin,
144 public StoreOptMixin, public PostProcMixin
145{
146 friend class SchedEditChild;
147 Q_OBJECT
148 public:
150 TV *player = nullptr);
152 TV *player = nullptr);
153 ~ScheduleEditor() override;
154
155 bool Create(void) override; // MythScreenType
156 bool keyPressEvent(QKeyEvent *event) override; // MythScreenType
157
158 void showMenu(void);
159 void showUpcomingByRule(void);
160 void showUpcomingByTitle(void);
161
163 static void *RunScheduleEditor(ProgramInfo *proginfo, void *player = nullptr);
164
165 signals:
166 void ruleSaved(int ruleId);
167 void ruleDeleted(int ruleId);
168 void templateLoaded(void);
169
170 public slots:
171 void ShowSchedOpt(void);
172 void ShowFilters(void);
173 void ShowStoreOpt(void);
174 void ShowPostProc(void);
175 void ShowMetadataOptions(void);
176 void ShowPreviousView(void);
177 void ShowNextView(void);
178 void ShowPreview(void);
179 void Save(void);
180 void Close(void) override; // MythScreenType
181
182 protected:
183 void customEvent(QEvent *event) override; // ScheduleCommon
184 void Load(void) override; // MythScreenType
185 ProgramInfo *GetCurrentProgram(void) const override // ScheduleCommon
186 { return m_recInfo; };
187
188 protected slots:
191 static void FilterChanged(MythUIButtonListItem *item);
193 void PromptForRecGroup(void);
194 void TranscodeChanged(bool enable);
195 void ShowSchedInfo(void);
196 void ChildClosing(void);
197
198 private:
200 void LoadTemplate(const QString& name);
201 void DeleteRule(void);
202
203 void showTemplateMenu(void);
204
207
210
212
220
221 TV *m_player {nullptr};
222
223 bool m_loaded {false};
224
225 enum View : std::uint8_t
226 {
233 };
234
237};
238
240{
241 Q_OBJECT
242 public:
243 bool keyPressEvent(QKeyEvent *event) override; // MythScreenType
244
245 protected:
246 SchedEditChild(MythScreenStack *parent, const QString &name,
247 ScheduleEditor &editor, RecordingRule &rule,
248 RecordingInfo *recinfo);
249 ~SchedEditChild() override = default;
250
251 virtual bool CreateEditChild(
252 const QString &xmlfile, const QString &winname, bool isTemplate);
253
254 signals:
255 void Closing(void);
256
257 public slots:
258 void Close(void) override; // MythScreenType
259 virtual void Save(void) = 0;
260
261 protected:
262 void Load(void) override = 0; // MythScreenType
263 void SetTextFromMaps(void);
264
268
272};
273
275{
276 Q_OBJECT
277 public:
279 RecordingRule &rule, RecordingInfo *recinfo);
280 ~SchedOptEditor() override = default;
281
282 bool Create(void) override; // MythScreenType
283 void Save(void) override; // SchedEditChild
284
285 protected:
286 void Load(void) override; // SchedEditChild
287
288 protected slots:
290
291 private:
293};
294
296{
297 Q_OBJECT
298 public:
300 RecordingRule &rule, RecordingInfo *recinfo);
301 ~SchedFilterEditor() override = default;
302
303 bool Create(void) override; // MythScreenType
304 void Save(void) override; // SchedEditChild
305
306 protected:
307 void Load(void) override; // SchedEditChild
308
309 protected slots:
310 static void ToggleSelected(MythUIButtonListItem *item);
311};
312
314{
315 Q_OBJECT
316 public:
318 RecordingRule &rule, RecordingInfo *recinfo);
319 ~StoreOptEditor() override = default;
320
321 bool Create(void) override; // MythScreenType
322 void Save(void) override; // SchedEditChild
323
324 protected:
325 void customEvent(QEvent *event) override; // MythUIType
326 void Load(void) override; // SchedEditChild
327
328 protected slots:
330 void PromptForRecGroup(void);
331};
332
334{
335 Q_OBJECT
336 public:
338 RecordingRule &rule, RecordingInfo *recinfo);
339 ~PostProcEditor() override = default;
340
341 bool Create(void) override; // MythScreenType
342 void Save(void) override; // SchedEditChild
343
344 protected:
345 void Load(void) override; // SchedEditChild
346
347 protected slots:
348 void TranscodeChanged(bool enable);
349};
350
352{
353 Q_OBJECT
354 public:
356 RecordingRule &rule, RecordingInfo *recinfo);
357 ~MetadataOptions() override;
358
359 bool Create(void) override; // MythScreenType
360 void Save(void) override; // SchedEditChild
361
362 protected:
363 void customEvent(QEvent *event) override; // MythUIType
364 void Load(void) override; // SchedEditChild
365
366 protected slots:
367 void ClearInetref();
368 void PerformQuery();
369 void SelectLocalFanart();
370 void SelectLocalCoverart();
371 void SelectLocalBanner();
372 void SelectOnlineFanart();
374 void SelectOnlineBanner();
375 void QueryComplete(MetadataLookup *lookup);
381
382 void ValuesChanged();
383
384 private:
385 void CreateBusyDialog(const QString& title);
386 static void FindImagePopup(const QString &prefix,
387 const QString &prefixAlt,
388 QObject &inst,
389 const QString &returnEvent);
390 static QStringList GetSupportedImageExtensionFilter();
391
394
395 bool CanSetArtwork(void);
396
397 // For all metadata downloads
399
400 // For image picking
403
406
410
412
415
424
426};
427
428#endif
Mixin for Filters.
static void ToggleSelected(MythUIButtonListItem *item)
FilterOptMixin * m_other
MythUIButtonList * m_activeFiltersList
FilterOptMixin(MythScreenType &screen, RecordingRule *rule, FilterOptMixin *other=nullptr)
RecordingRule * m_rule
void Create(bool *err)
MythScreenType * m_screen
QStringList m_descriptions
void RuleChanged(void)
MythUIButtonList * m_filtersList
void SetRule(RecordingRule *rule)
Select artwork and inetref for recordings.
bool Create(void) override
ArtworkMap m_artworkMap
void Load(void) override
Load data which will ultimately be displayed on-screen or used to determine what appears on-screen (S...
MythUIButton * m_onlineFanartButton
void customEvent(QEvent *event) override
MythUIImage * m_fanart
void HandleDownloadedImages(MetadataLookup *lookup)
MythUIBusyDialog * m_busyPopup
MythUIButton * m_localCoverartButton
static QStringList GetSupportedImageExtensionFilter()
void FindNetArt(VideoArtworkType type)
void OnSearchListSelection(const RefCountHandler< MetadataLookup > &lookup)
MetadataImageDownload * m_imageDownload
MetadataOptions(MythScreenStack *parent, ScheduleEditor &editor, RecordingRule &rule, RecordingInfo *recinfo)
MythUIButton * m_inetrefClear
MythUIButton * m_localFanartButton
MythUIButton * m_queryButton
MythUISpinBox * m_seasonSpin
void OnArtworkSearchDone(MetadataLookup *lookup)
MythUIButton * m_onlineCoverartButton
bool CanSetArtwork(void)
void QueryComplete(MetadataLookup *lookup)
MythUITextEdit * m_inetrefEdit
~MetadataOptions() override
void OnImageSearchListSelection(const ArtworkInfo &info, VideoArtworkType type)
MetadataLookup * CreateLookup(MetadataType mtype)
static void FindImagePopup(const QString &prefix, const QString &prefixAlt, QObject &inst, const QString &returnEvent)
MythUISpinBox * m_episodeSpin
MetadataFactory * m_metadataFactory
MythUIButton * m_onlineBannerButton
void Save(void) override
MythUIImage * m_coverart
MythScreenStack * m_popupStack
MetadataDownload * m_imageLookup
void CreateBusyDialog(const QString &title)
MythUIButton * m_localBannerButton
MythUIImage * m_banner
Screen in which all other widgets are contained and rendered.
List widget, displays list items in a variety of themeable arrangements and can trigger signals when ...
A single button widget.
Definition: mythuibutton.h:22
A checkbox widget supporting three check states - on,off,half and two conditions - selected and unsel...
Image widget, displays a single image or multiple images in sequence.
Definition: mythuiimage.h:99
A widget for offering a range of numerical values where only the the bounding values and interval are...
Definition: mythuispinbox.h:19
This widget is used for grouping other widgets for display when a particular named state is called.
A text entry and edit widget.
All purpose text widget, displays a text string.
Definition: mythuitext.h:29
Select post-processing options.
void TranscodeChanged(bool enable)
~PostProcEditor() override=default
bool Create(void) override
void Load(void) override
Load data which will ultimately be displayed on-screen or used to determine what appears on-screen (S...
void Save(void) override
PostProcEditor(MythScreenStack *parent, ScheduleEditor &editor, RecordingRule &rule, RecordingInfo *recinfo)
Mixin for post processing.
PostProcMixin(MythScreenType &screen, RecordingRule *rule, PostProcMixin *other=nullptr)
PostProcMixin * m_other
MythScreenType * m_screen
void SetRule(RecordingRule *rule)
MythUICheckBox * m_userjob4Check
MythUICheckBox * m_transcodeCheck
MythUICheckBox * m_userjob2Check
MythUICheckBox * m_metadataLookupCheck
void RuleChanged(void)
MythUICheckBox * m_userjob1Check
void Create(bool *err)
RecordingRule * m_rule
MythUICheckBox * m_userjob3Check
MythUICheckBox * m_commflagCheck
MythUIButtonList * m_transcodeprofileList
void TranscodeChanged(bool enable)
Holds information on recordings and videos.
Definition: programinfo.h:74
Holds information on a TV Program one might wish to record.
Definition: recordinginfo.h:36
Internal representation of a recording rule, mirrors the record table.
Definition: recordingrule.h:31
SchedEditChild(MythScreenStack *parent, const QString &name, ScheduleEditor &editor, RecordingRule &rule, RecordingInfo *recinfo)
MythUIButton * m_previewButton
~SchedEditChild() override=default
void Close(void) override
MythUIButton * m_saveButton
MythUIButton * m_backButton
RecordingRule * m_recordingRule
bool keyPressEvent(QKeyEvent *event) override
Key event handler.
ScheduleEditor * m_editor
void SetTextFromMaps(void)
virtual void Save(void)=0
RecordingInfo * m_recInfo
void Load(void) override=0
Load data which will ultimately be displayed on-screen or used to determine what appears on-screen (S...
virtual bool CreateEditChild(const QString &xmlfile, const QString &winname, bool isTemplate)
void Closing(void)
Select schedule filters.
SchedFilterEditor(MythScreenStack *parent, ScheduleEditor &editor, RecordingRule &rule, RecordingInfo *recinfo)
static void ToggleSelected(MythUIButtonListItem *item)
void Save(void) override
~SchedFilterEditor() override=default
void Load(void) override
Load data which will ultimately be displayed on-screen or used to determine what appears on-screen (S...
bool Create(void) override
Select schedule options.
bool Create(void) override
void Load(void) override
Load data which will ultimately be displayed on-screen or used to determine what appears on-screen (S...
void Save(void) override
MythUIButton * m_filtersButton
void DupMethodChanged(MythUIButtonListItem *item)
SchedOptEditor(MythScreenStack *parent, ScheduleEditor &editor, RecordingRule &rule, RecordingInfo *recinfo)
~SchedOptEditor() override=default
Mixin for schedule options.
MythUISpinBox * m_startoffsetSpin
MythUISpinBox * m_prioritySpin
SchedOptMixin * m_other
MythUICheckBox * m_ruleactiveCheck
void Create(bool *err)
MythUIButtonList * m_dupmethodList
MythUISpinBox * m_endoffsetSpin
void SetRule(RecordingRule *rule)
void DupMethodChanged(MythUIButtonListItem *item)
MythUIButtonList * m_dupscopeList
MythUIButtonList * m_newrepeatList
MythScreenType * m_screen
MythUIButtonList * m_autoExtendList
RecordingRule * m_rule
SchedOptMixin(MythScreenType &screen, RecordingRule *rule, SchedOptMixin *other=nullptr)
MythUIButtonList * m_inputList
void RuleChanged(void)
Construct a recording schedule.
void TranscodeChanged(bool enable)
ScheduleEditor(MythScreenStack *parent, RecordingInfo *recinfo, TV *player=nullptr)
void ruleSaved(int ruleId)
MythUIButton * m_schedInfoButton
MythUIButtonList * m_rulesList
bool Create(void) override
MythUIButton * m_saveButton
void DupMethodChanged(MythUIButtonListItem *item)
RecordingRule * m_recordingRule
void ChildClosing(void)
void customEvent(QEvent *event) override
Q_DISABLE_COPY(ScheduleEditor)
void ShowStoreOpt(void)
void ruleDeleted(int ruleId)
void ShowSchedOpt(void)
MythUIButton * m_schedOptButton
void PromptForRecGroup(void)
MythUIButton * m_postProcButton
void DeleteRule(void)
void templateLoaded(void)
void LoadTemplate(const QString &name)
void Load(void) override
Load data which will ultimately be displayed on-screen or used to determine what appears on-screen (S...
void showTemplateMenu(void)
void ShowPreviousView(void)
~ScheduleEditor() override
SchedEditChild * m_child
static void * RunScheduleEditor(ProgramInfo *proginfo, void *player=nullptr)
Callback.
void showUpcomingByTitle(void)
MythUIButton * m_storeOptButton
void ShowNextView(void)
void showMenu(void)
void MaxEpisodesChanged(MythUIButtonListItem *item)
void showUpcomingByRule(void)
void ShowPreview(void)
MythUIButton * m_metadataButton
MythUIButton * m_previewButton
void ShowFilters(void)
MythUIButton * m_cancelButton
ProgramInfo * GetCurrentProgram(void) const override
RecordingInfo * m_recInfo
void ShowPostProc(void)
void Close(void) override
static void FilterChanged(MythUIButtonListItem *item)
bool keyPressEvent(QKeyEvent *event) override
Key event handler.
void ShowMetadataOptions(void)
MythUIButton * m_filtersButton
void ShowSchedInfo(void)
Select storage options.
~StoreOptEditor() override=default
StoreOptEditor(MythScreenStack *parent, ScheduleEditor &editor, RecordingRule &rule, RecordingInfo *recinfo)
void Save(void) override
void PromptForRecGroup(void)
void MaxEpisodesChanged(MythUIButtonListItem *item)
void Load(void) override
Load data which will ultimately be displayed on-screen or used to determine what appears on-screen (S...
void customEvent(QEvent *event) override
bool Create(void) override
Mixin for storage options.
StoreOptMixin(MythScreenType &screen, RecordingRule *rule, StoreOptMixin *other=nullptr)
void SetRule(RecordingRule *rule)
MythUISpinBox * m_maxepSpin
void MaxEpisodesChanged(MythUIButtonListItem *item)
MythUIButtonList * m_recprofileList
void PromptForRecGroup(void)
void RuleChanged(void)
MythUIButtonList * m_storagegroupList
MythUIButtonList * m_maxbehaviourList
StoreOptMixin * m_other
RecordingRule * m_rule
MythScreenType * m_screen
MythUIButtonList * m_playgroupList
MythUIButtonList * m_recgroupList
MythUICheckBox * m_autoexpireCheck
static int CreateRecordingGroup(const QString &groupName)
void Create(bool *err)
void SetRecGroup(int recgroupID, QString recgroup)
Control TV playback.
Definition: tv_play.h:158
MetadataType
QMultiMap< VideoArtworkType, ArtworkInfo > ArtworkMap
VideoArtworkType
dictionary info
Definition: azlyrics.py:7