Go to the documentation of this file.
5 #include <QCoreApplication>
46 static QString
fs0(QT_TRANSLATE_NOOP(
"SchedFilterEditor",
"New episode"));
47 static QString
fs1(QT_TRANSLATE_NOOP(
"SchedFilterEditor",
"Identifiable episode"));
48 static QString
fs2(QT_TRANSLATE_NOOP(
"SchedFilterEditor",
"First showing"));
49 static QString
fs3(QT_TRANSLATE_NOOP(
"SchedFilterEditor",
"Prime time"));
50 static QString
fs4(QT_TRANSLATE_NOOP(
"SchedFilterEditor",
"Commercial free"));
51 static QString
fs5(QT_TRANSLATE_NOOP(
"SchedFilterEditor",
"High definition"));
52 static QString
fs6(QT_TRANSLATE_NOOP(
"SchedFilterEditor",
"This episode"));
53 static QString
fs7(QT_TRANSLATE_NOOP(
"SchedFilterEditor",
"This series"));
54 static QString
fs8(QT_TRANSLATE_NOOP(
"SchedFilterEditor",
"This time"));
55 static QString
fs9(QT_TRANSLATE_NOOP(
"SchedFilterEditor",
"This day and time"));
56 static QString
fs10(QT_TRANSLATE_NOOP(
"SchedFilterEditor",
"This channel"));
57 static QString
fs11(QT_TRANSLATE_NOOP(
"SchedFilterEditor",
"No episodes"));
62 rule->LoadByProgram(proginfo);
68 mainStack->
AddScreen(se, (player ==
nullptr));
106 m_recordingRule(recRule),
152 LOG(VB_GENERAL, LOG_ERR,
"ScheduleEditor, theme is missing "
153 "required elements");
211 LOG(VB_GENERAL, LOG_ERR,
212 "ScheduleEditor::Create() - Failed to load recording rule");
253 .compare(
"Default", Qt::CaseInsensitive) != 0)
256 tr(
"Delete this recording rule template"),
266 tr(
"Record this showing with normal options"),
295 if (!hasChannel || isManual)
433 if (!schedoptedit->Create())
458 if (!storeoptedit->Create())
483 if (!ppedit->Create())
499 QString label = tr(
"Schedule Information");
502 auto *menuPopup =
new MythDialogBox(label, popupStack,
"menuPopup");
504 if (menuPopup->Create())
506 menuPopup->SetReturnEvent(
this,
"schedinfo");
509 menuPopup->AddButton(tr(
"Program Details"));
510 menuPopup->AddButton(tr(
"Upcoming Episodes"));
511 menuPopup->AddButton(tr(
"Upcoming Recordings"));
513 menuPopup->AddButton(tr(
"Previously Recorded"));
528 TranslateKeyPress(
"TV Frontend", event, actions);
530 for (
int i = 0; i < actions.size() && !handled; i++)
532 QString
action = actions[i];
537 else if (
action ==
"INFO")
539 else if (
action ==
"GUIDE")
541 else if (
action ==
"UPCOMING")
543 else if (
action ==
"PREVVIEW")
545 else if (
action ==
"NEXTVIEW")
563 QString resultid = dce->GetId();
564 QString resulttext = dce->GetResultText();
566 if (resultid ==
"menu")
568 if (resulttext == tr(
"Main Options"))
570 if (resulttext == tr(
"Schedule Options"))
572 else if (resulttext == tr(
"Filter Options"))
574 else if (resulttext == tr(
"Storage Options"))
576 else if (resulttext == tr(
"Post Processing"))
578 else if (resulttext == tr(
"Metadata Options"))
580 else if (resulttext == tr(
"Use Template"))
582 else if (resulttext == tr(
"Schedule Info"))
584 else if (resulttext == tr(
"Preview Changes"))
587 else if (resultid ==
"templatemenu")
591 else if (resultid ==
"schedinfo")
593 if (resulttext == tr(
"Program Details"))
595 else if (resulttext == tr(
"Upcoming Episodes"))
597 else if (resulttext == tr(
"Upcoming Recordings"))
599 else if (resulttext == tr(
"Previously Recorded"))
603 else if (resultid ==
"newrecgroup")
672 QString ttable =
"record_tmp";
725 if (!schedfilteredit->Create())
727 delete schedfilteredit;
793 QString label = tr(
"Options");
795 auto *menuPopup =
new MythDialogBox(label, popupStack,
"menuPopup");
801 if (menuPopup->Create())
803 menuPopup->SetReturnEvent(
this,
"menu");
805 menuPopup->AddButton(tr(
"Main Options"));
807 menuPopup->AddButton(tr(
"Schedule Options"));
809 menuPopup->AddButton(tr(
"Filter Options"));
811 menuPopup->AddButton(tr(
"Storage Options"));
813 menuPopup->AddButton(tr(
"Post Processing"));
816 menuPopup->AddButton(tr(
"Metadata Options"));
819 menuPopup->AddButton(tr(
"Schedule Info"));
820 menuPopup->AddButton(tr(
"Preview Changes"));
822 menuPopup->AddButton(tr(
"Use Template"));
834 if (templates.empty())
840 QString label = tr(
"Template Options");
842 auto *menuPopup =
new MythDialogBox(label, popupStack,
"menuPopup");
844 if (menuPopup->Create())
846 menuPopup->SetReturnEvent(
this,
"templatemenu");
847 while (!templates.empty())
849 QString name = templates.front();
850 if (name ==
"Default")
851 menuPopup->AddButton(tr(
"Default"));
853 menuPopup->AddButton(name);
854 templates.pop_front();
874 m_editor(&editor), m_recordingRule(&rule), m_recInfo(recInfo)
885 TranslateKeyPress(
"TV Frontend", event, actions);
887 for (
int i = 0; i < actions.size() && !handled; i++)
889 QString
action = actions[i];
894 else if (
action ==
"INFO")
896 else if (
action ==
"UPCOMING")
900 else if (
action ==
"PREVVIEW")
902 else if (
action ==
"NEXTVIEW")
915 const QString &xmlfile,
const QString &winname,
bool isTemplate)
971 :
SchedEditChild(parent,
"ScheduleOptionsEditor", editor, rule, recInfo),
979 "schedule-ui.xml",
"scheduleoptionseditor",
993 LOG(VB_GENERAL, LOG_ERR,
"SchedOptEditor, theme is missing "
994 "required elements");
1038 :
SchedEditChild(parent,
"ScheduleFilterEditor", editor, rule, recInfo),
1046 "schedule-ui.xml",
"schedulefiltereditor",
1058 LOG(VB_GENERAL, LOG_ERR,
"SchedFilterEditor, theme is missing "
1059 "required elements");
1098 :
SchedEditChild(parent,
"StorageOptionsEditor", editor, rule, recInfo),
1106 "schedule-ui.xml",
"storageoptionseditor",
1118 LOG(VB_GENERAL, LOG_ERR,
"StoreOptEditor, theme is missing "
1119 "required elements");
1157 QString resultid = dce->GetId();
1158 QString resulttext = dce->GetResultText();
1160 if (resultid ==
"newrecgroup")
1184 :
SchedEditChild(parent,
"PostProcOptionsEditor", editor, rule, recInfo),
1192 "schedule-ui.xml",
"postproceditor",
1204 LOG(VB_GENERAL, LOG_ERR,
"PostProcEditor, theme is missing "
1205 "required elements");
1245 :
SchedEditChild(parent,
"MetadataOptions", editor, rule, recInfo)
1277 "schedule-ui.xml",
"metadataoptions",
1302 LOG(VB_GENERAL, LOG_ERR,
"MetadataOptions, theme is missing "
1303 "required elements");
1371 const QString& message = title;
1389 "recording online..."));
1405 QString msg = tr(
"Downloading selected artwork...");
1412 lookup->SetAutomatic(
true);
1413 lookup->SetData(QVariant::fromValue<VideoArtworkType>(
type));
1416 downloads.insert(
type, info);
1417 lookup->SetDownloads(downloads);
1418 lookup->SetAllowOverwrites(
true);
1506 lookup->
toMap(metadataMap);
1511 const QString &prefixAlt,
1513 const QString &returnEvent)
1517 if (
prefix.startsWith(
"myth://"))
1529 fb->SetReturnEvent(&inst, returnEvent);
1540 QList<QByteArray> exts = QImageReader::supportedImageFormats();
1541 for (
const auto & ext : qAsConst(exts))
1543 ret.append(QString(
"*.").append(ext));
1554 "on this rule to set artwork. For items "
1555 "without a metadata source, you can set "
1556 "any unique value."));
1567 lookup->SetType(mtype);
1586 lookup->SetSubtype(
type);
1588 lookup->SetAllowGeneric(
true);
1589 lookup->SetHandleImages(
false);
1606 QString msg = tr(
"Searching for available artwork...");
1612 lookup->
SetData(QVariant::fromValue<VideoArtworkType>(
type));
1642 if (resultsdialog->Create())
1656 for (DownloadMap::const_iterator i = map.cbegin(); i != map.cend(); ++i)
1715 if (list.count() > 1)
1719 for (
int p = 0;
p != list.size(); ++
p)
1730 (list[
p])->GetYear() != 0 &&
1735 LOG(VB_GENERAL, LOG_INFO,
"Multiple results matched on year. No definite "
1736 "match could be found based on year alone.");
1739 else if (yearindex == -1)
1741 LOG(VB_GENERAL, LOG_INFO,
"Matched based on year. ");
1754 LOG(VB_GENERAL, LOG_INFO,
"Falling through to selection dialog.");
1759 Qt::QueuedConnection);
1761 if (resultsdialog->Create())
1796 QString title = tr(
"No match found for this recording. You can "
1797 "try entering a TVDB/TMDB number, season, and "
1798 "episode manually.");
1802 if (okPopup->Create())
1820 if (lul.count() >= 1)
1839 QString title = tr(
"This number, season, and episode combination "
1840 "does not appear to be valid (or the site may "
1841 "be down). Check your information and try "
1846 if (okPopup->Create())
1875 tr(
"Schedule Editor"),
1883 const QString resultid = dce->GetId();
1885 info.
url = dce->GetResultText();
1887 if (resultid ==
"coverart")
1891 else if (resultid ==
"fanart")
1895 else if (resultid ==
"banner")
1917 : m_screen(&screen), m_rule(rule), m_other(other),
2047 QVariant::fromValue(value));
2077 QObject::tr(
"Use any available input"),
2078 QVariant::fromValue(0));
2081 for (
uint id : inputids)
2084 QObject::tr(
"Prefer input %1")
2108 QObject::tr(
"Record new and repeat "
2111 QObject::tr(
"Record new episodes only"),
2183 isScheduled && !isSingle &&
2243 query.
prepare(
"SELECT filterid, description, newruledefault "
2244 "FROM recordfilter ORDER BY filterid");
2248 while (query.
next())
2251 .toUtf8().constData());
2261 QStringList::iterator Idesc;
2291 QObject::tr(
"None"), idx);
2304 uint32_t filter_mask = 0;
2307 for (
int idx = 0; idx < end; ++idx)
2310 if (button !=
nullptr &&
2312 filter_mask |= (1 << button->
GetData().value<uint32_t>());
2393 QStringList::Iterator it;
2401 label = QObject::tr(
"Record using the %1 profile");
2404 label.arg(QObject::tr(
"Default")),
2405 QVariant::fromValue(QString(
"Default")));
2408 label.arg(QObject::tr(
"LiveTV")),
2409 QVariant::fromValue(QString(
"LiveTV")));
2411 label.arg(QObject::tr(
"High Quality")),
2412 QVariant::fromValue(QString(
"High Quality")));
2414 label.arg(QObject::tr(
"Low Quality")),
2415 QVariant::fromValue(QString(
"Low Quality")));
2425 label = QObject::tr(
"Include in the \"%1\" recording group");
2427 QObject::tr(
"Create a new recording group"),
2428 QVariant::fromValue(QString(
"__NEW_GROUP__")));
2430 query.
prepare(
"SELECT recgroupid, recgroup FROM recgroups "
2431 "WHERE recgroup <> 'Deleted' AND "
2432 " recgroup <> 'LiveTV' "
2433 "ORDER BY special DESC, recgroup ASC");
2436 while (query.
next())
2438 int id = query.
value(0).toInt();
2439 QString name = query.
value(1).toString();
2441 if (name ==
"Default")
2442 name = QObject::tr(
"Default");
2444 QVariant::fromValue(
id));
2457 label = QObject::tr(
"Store in the \"%1\" storage group");
2459 label.arg(QObject::tr(
"Default")),
2460 QVariant::fromValue(QString(
"Default")));
2463 for (it = groups.begin(); it != groups.end(); ++it)
2465 if ((*it).compare(
"Default", Qt::CaseInsensitive) != 0)
2467 label.arg(*it), QVariant::fromValue(*it));
2478 label = QObject::tr(
"Use \"%1\" playback group settings");
2480 label.arg(QObject::tr(
"Default")),
2481 QVariant::fromValue(QString(
"Default")));
2484 for (it = groups.begin(); it != groups.end(); ++it)
2487 QVariant::fromValue(*it));
2511 QObject::tr(
"Don't record if this would exceed the max "
2512 "episodes"), QVariant::fromValue(
false));
2514 QObject::tr(
"Delete oldest if this would exceed the max "
2515 "episodes"), QVariant::fromValue(
true));
2613 QObject::tr(
"New Recording group name: ");
2618 textDialog->SetReturnEvent(
m_screen,
"newrecgroup");
2620 if (textDialog->Create())
2621 popupStack->
AddScreen(textDialog,
false);
2626 if (!
m_rule || recgroupID <= 0)
2631 recgroup = recgroup.trimmed();
2632 if (recgroup.isEmpty())
2635 QString label = QObject::tr(
"Include in the \"%1\" recording group");
2637 QVariant::fromValue(recgroupID));
2643 label.arg(recgroup), QVariant::fromValue(recgroupID));
2654 query.
prepare(
"INSERT INTO recgroups SET recgroup = :NAME, "
2655 "displayname = :DISPLAYNAME");
2657 query.
bindValue(
":DISPLAYNAME", groupName);
2663 LOG(VB_GENERAL, LOG_ERR, QString(
"Could not create recording group (%1). "
2664 "Does it already exist?").arg(groupName));
2742 QMap<int, QString>::iterator it;
2743 for (it = profiles.begin(); it != profiles.end(); ++it)
2746 QVariant::fromValue(it.key()));
2760 userjob1Text->
SetText(QObject::tr(
"Run '%1'")
2774 userjob2Text->
SetText(QObject::tr(
"Run '%1'")
2788 userjob3Text->
SetText(QObject::tr(
"Run '%1'")
2802 userjob4Text->
SetText(QObject::tr(
"Run '%1'")
static QStringList getRecordingsGroups(void)
bool LoadByProgram(const ProgramInfo *proginfo)
void SetRule(RecordingRule *rule)
bool next(void)
Wrap QSqlQuery::next() so we can display the query results.
QSqlQuery wrapper that fetches a DB connection from the connection pool.
MythScreenStack * GetMainStack()
void RequestEmbedding(bool Embed, const QRect &Rect={}, const QStringList &Data={})
QString generate_file_url(const QString &storage_group, const QString &host, const QString &path)
virtual void Save(void)=0
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
MythScreenType * m_screen
QString GetMasterHostName(void)
static const QRegularExpression kReSearchTypeName
void SetRule(RecordingRule *rule)
static QString GetDisplayName(uint inputid)
void Close(void) override
virtual int DecrRef(void)
Decrements reference count and deletes on 0.
MythUICheckBox * m_transcodeCheck
MythUIButtonList * m_newrepeatList
void customEvent(QEvent *event) override
static QString fs6(QT_TRANSLATE_NOOP("SchedFilterEditor", "This episode"))
void DupMethodChanged(MythUIButtonListItem *item)
bool Save(bool sendSig=true)
void SetTextFromMaps(void)
MythUICheckBox * m_userjob3Check
SchedOptMixin(MythScreenType &screen, RecordingRule *rule, SchedOptMixin *other=nullptr)
void MaxEpisodesChanged(MythUIButtonListItem *item)
static QString fs0(QT_TRANSLATE_NOOP("SchedFilterEditor", "New episode"))
MythUIButtonList * m_activeFiltersList
bool Create(void) override
MythUICheckBox * m_metadataLookupCheck
void MaxEpisodesChanged(MythUIButtonListItem *item)
MythUICheckBox * m_userjob2Check
Holds information on a TV Program one might wish to record.
bool Create(void) override
void customEvent(QEvent *event) override
ScheduleEditor(MythScreenStack *parent, RecordingInfo *recinfo, TV *player=nullptr)
bool Load(bool allowLoadInBackground=true, bool forceStat=false)
Load the image(s), wraps ImageLoader::LoadImage()
~ScheduleEditor() override
bool Create(void) override
void ToMap(InfoMap &infoMap, uint date_format=0) const
void DupMethodChanged(MythUIButtonListItem *item)
SchedEditChild(MythScreenStack *parent, const QString &name, ScheduleEditor &editor, RecordingRule &rule, RecordingInfo *recinfo)
QVariant lastInsertId()
Return the id of the last inserted row.
static QString fs4(QT_TRANSLATE_NOOP("SchedFilterEditor", "Commercial free"))
MythUIButton * m_filtersButton
void showTemplateMenu(void)
bool GetBooleanCheckState(void) const
MythUISpinBox * m_prioritySpin
QVariant value(int i) const
static QMap< int, QString > GetTranscodingProfiles()
void ShowPreviousView(void)
RecordingRule * m_recordingRule
void SetCanTakeFocus(bool set=true)
Set whether this widget can take focus.
MythUICheckBox * m_autoexpireCheck
Internal representation of a recording rule, mirrors the record table.
void TranscodeChanged(bool enable)
bool exec(void)
Wrap QSqlQuery::exec() so we can display SQL.
virtual void ShowGuide(void) const
Show the program guide.
MythUICheckBox * m_userjob1Check
MythUICheckBox * m_commflagCheck
#define LOG(_MASK_, _LEVEL_, _QSTRING_)
Screen in which all other widgets are contained and rendered.
static void ToggleSelected(MythUIButtonListItem *item)
void ruleSaved(int ruleId)
QString GetText(void) const
RecordingDupInType m_dupIn
MythUIButtonList * m_recgroupList
static QString fs10(QT_TRANSLATE_NOOP("SchedFilterEditor", "This channel"))
bool m_isInactive
Recording rule is enabled?
MythUIButtonList * m_playgroupList
MythUIButtonList * m_maxbehaviourList
void SetRange(int low, int high, int step, uint pageMultiple=5)
Set the lower and upper bounds of the spinbox, the interval and page amount.
MythUIButtonList * m_rulesList
virtual void ShowDetails(void) const
Show the Program Details screen.
void ShowMetadataOptions(void)
Mixin for post processing.
MythUIType * GetFocusWidget(void) const
PostProcEditor(MythScreenStack *parent, ScheduleEditor &editor, RecordingRule &rule, RecordingInfo *recinfo)
QHash< QString, QString > InfoMap
static QStringList GetNames(void)
bool keyPressEvent(QKeyEvent *event) override
Key event handler.
bool Load(bool asTemplate=false)
Load a single rule from the recorded table.
uint GetYearOfInitialRelease(void) const
RecordingInfo * m_recInfo
static QStringList GetTemplateNames(void)
void SetValue(int val) override
void SetText(const QString &text, bool moveCursor=true)
virtual void ShowPrevious(void) const
Show the previous recordings for this recording rule.
QStringList m_descriptions
MythScreenType * m_screen
MythUIButton * m_schedOptButton
static void FilterChanged(MythUIButtonListItem *item)
MythUIButton * m_saveButton
MythUISpinBox * m_startoffsetSpin
void DupMethodChanged(MythUIButtonListItem *item)
static int CreateRecordingGroup(const QString &groupName)
virtual bool CreateEditChild(const QString &xmlfile, const QString &winname, bool isTemplate)
Basic menu dialog, message and a list of options.
static const Type kEventType
static MSqlQueryInfo InitCon(ConnectionReuse _reuse=kNormalConnection)
Only use this in combination with MSqlQuery constructor.
void ruleDeleted(int ruleId)
int GetIntValue(void) const override
MythUIButton * m_schedInfoButton
StoreOptEditor(MythScreenStack *parent, ScheduleEditor &editor, RecordingRule &rule, RecordingInfo *recinfo)
static QString fs8(QT_TRANSLATE_NOOP("SchedFilterEditor", "This time"))
void BuildFocusList(void)
MythUIButton * m_previewButton
MythUIButtonList * m_filtersList
void MaxEpisodesChanged(MythUIButtonListItem *item)
Select post-processing options.
MythUIButton * m_metadataButton
RecSearchType m_searchType
virtual void SetTextFromMap(const InfoMap &infoMap)
static const Type kEventType
static void * RunScheduleEditor(ProgramInfo *proginfo, void *player=nullptr)
Callback.
void UseTempTable(bool usetemp, const QString &table="record_tmp")
virtual void ToMap(InfoMap &progMap, bool showrerecord=false, uint star_range=10, uint date_format=0) const
Converts ProgramInfo into QString QHash containing each field in ProgramInfo converted into localized...
void TranscodeChanged(bool enable)
void PromptForRecGroup(void)
static QVariant toVariant(RecordingType rectype)
static QString fs5(QT_TRANSLATE_NOOP("SchedFilterEditor", "High definition"))
void SetEnabled(bool enable)
static QString fs9(QT_TRANSLATE_NOOP("SchedFilterEditor", "This day and time"))
void Close(void) override
MythUIButton * m_saveButton
void Load(void) override=0
void templateLoaded(void)
void SetRule(RecordingRule *rule)
MythUIButton * m_previewButton
MythScreenType * m_screen
MythCoreContext * gCoreContext
This global variable contains the MythCoreContext instance for the app.
RecordingInfo * m_recInfo
QString toDescription(RecordingType rectype)
Converts "rectype" into a human readable description.
MythUIButton * m_cancelButton
MythUISpinBox * m_maxepSpin
MythScreenStack * GetScreenStack() const
static bool Assign(ContainerType *container, UIType *&item, const QString &name, bool *err=nullptr)
MythUIButton * m_backButton
Mixin for storage options.
void PromptForRecGroup(void)
SchedFilterEditor(MythScreenStack *parent, ScheduleEditor &editor, RecordingRule &rule, RecordingInfo *recinfo)
static QString fs11(QT_TRANSLATE_NOOP("SchedFilterEditor", "No episodes"))
MythUIButton * m_storeOptButton
void LoadTemplate(const QString &name)
static QString fs1(QT_TRANSLATE_NOOP("SchedFilterEditor", "Identifiable episode"))
static QString fs3(QT_TRANSLATE_NOOP("SchedFilterEditor", "Prime time"))
uint GetEpisode(void) const
MythScreenType * m_screen
Holds information on recordings and videos.
bool LoadTemplate(const QString &title, const QString &category="Default", const QString &categoryType="Default")
All purpose text widget, displays a text string.
bool keyPressEvent(QKeyEvent *event) override
Key event handler.
int m_recordID
Unique Recording Rule ID.
Dialog asking for user confirmation. Ok and optional Cancel button.
uint GetSeason(void) const
bool keyPressEvent(QKeyEvent *event) override
Key event handler.
void SetCheckState(MythUIStateType::StateType state)
static bool LoadWindowFromXML(const QString &xmlfile, const QString &windowname, MythUIType *parent)
void haveResult(ArtworkInfo, VideoArtworkType)
RecordingDupMethodType m_dupMethod
static QString fs2(QT_TRANSLATE_NOOP("SchedFilterEditor", "First showing"))
MythUIButtonList * m_dupscopeList
void bindValue(const QString &placeholder, const QVariant &val)
Add a single binding.
Event dispatched from MythUI modal dialogs to a listening class containing a result of some form.
void PromptForRecGroup(void)
ScheduleEditor * m_editor
MythUICheckBox * m_ruleactiveCheck
virtual void SetText(const QString &text)
MythNotificationCenter * GetNotificationCenter(void)
virtual void PopScreen(MythScreenType *screen=nullptr, bool allowFade=true, bool deleteScreen=true)
virtual void ShowUpcoming(void) const
Show the upcoming recordings for this title.
AutoExtendType m_autoExtend
static const Type kEventType
MythUICheckBox * m_userjob4Check
SchedOptEditor(MythScreenStack *parent, ScheduleEditor &editor, RecordingRule &rule, RecordingInfo *recinfo)
MythMainWindow * GetMythMainWindow(void)
MythUIButtonList * m_dupmethodList
static std::vector< uint > GetSchedInputList(void)
Mixin for schedule options.
bool Delete(bool sendSig=true)
MythUIButtonList * m_inputList
MythScreenStack * GetStack(const QString &Stackname)
MythUIButtonList * m_recprofileList
void SetRecGroup(int recgroupID, QString recgroup)
void showUpcomingByTitle(void)
void SetRule(RecordingRule *rule)
Dialog prompting the user to enter a text string.
uint GetRecordingRuleID(void) const
MythUIButton * m_filtersButton
void SetFilename(const QString &filename)
Must be followed by a call to Load() to load the image.
static void ToggleSelected(MythUIButtonListItem *item)
RecordingRule * m_recordingRule
MythUIButtonList * m_transcodeprofileList
virtual int IncrRef(void)
Increments reference count.
bool Create(void) override
MythUISpinBox * m_endoffsetSpin
CategoryType GetCategoryType(void) const
static QString fs7(QT_TRANSLATE_NOOP("SchedFilterEditor", "This series"))
virtual void AddScreen(MythScreenType *screen, bool allowFade=true)
MythUIButton * m_postProcButton
MythUIButtonList * m_storagegroupList
Construct a recording schedule.
MythConfirmationDialog * ShowOkPopup(const QString &message, bool showCancel)
Non-blocking version of MythPopupBox::showOkPopup()
void showUpcomingByRule(void)
bool Create(void) override
bool m_autoMetadataLookup
MythUIButtonList * m_autoExtendList
QString GetSetting(const QString &key, const QString &defaultval="")
bool prepare(const QString &query)
QSqlQuery::prepare() is not thread safe in Qt <= 3.3.2.
bool Queue(const MythNotification ¬ification)
Queue a notification Queue() is thread-safe and can be called from anywhere.
void TranscodeChanged(bool enable)