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"));
530 TranslateKeyPress(
"TV Frontend", event, actions);
532 for (
int i = 0; i < actions.size() && !handled; i++)
534 const QString&
action = actions[i];
539 else if (
action ==
"INFO")
541 else if (
action ==
"GUIDE")
543 else if (
action ==
"UPCOMING")
545 else if (
action ==
"PREVVIEW")
547 else if (
action ==
"NEXTVIEW")
565 QString resultid = dce->GetId();
566 QString resulttext = dce->GetResultText();
568 if (resultid ==
"menu")
570 if (resulttext == tr(
"Main Options"))
572 if (resulttext == tr(
"Schedule Options"))
574 else if (resulttext == tr(
"Filter Options"))
576 else if (resulttext == tr(
"Storage Options"))
578 else if (resulttext == tr(
"Post Processing"))
580 else if (resulttext == tr(
"Metadata Options"))
582 else if (resulttext == tr(
"Use Template"))
584 else if (resulttext == tr(
"Schedule Info"))
586 else if (resulttext == tr(
"Preview Changes"))
589 else if (resultid ==
"templatemenu")
593 else if (resultid ==
"schedinfo")
595 if (resulttext == tr(
"Program Details"))
597 else if (resulttext == tr(
"Upcoming Episodes"))
599 else if (resulttext == tr(
"Upcoming Recordings"))
601 else if (resulttext == tr(
"Previously Recorded"))
605 else if (resultid ==
"newrecgroup")
674 QString ttable =
"record_tmp";
727 if (!schedfilteredit->Create())
729 delete schedfilteredit;
795 QString label = tr(
"Options");
797 auto *menuPopup =
new MythDialogBox(label, popupStack,
"menuPopup");
803 if (menuPopup->Create())
805 menuPopup->SetReturnEvent(
this,
"menu");
807 menuPopup->AddButton(tr(
"Main Options"));
809 menuPopup->AddButton(tr(
"Schedule Options"));
811 menuPopup->AddButton(tr(
"Filter Options"));
813 menuPopup->AddButton(tr(
"Storage Options"));
815 menuPopup->AddButton(tr(
"Post Processing"));
818 menuPopup->AddButton(tr(
"Metadata Options"));
821 menuPopup->AddButton(tr(
"Schedule Info"));
822 menuPopup->AddButton(tr(
"Preview Changes"));
824 menuPopup->AddButton(tr(
"Use Template"));
836 if (templates.empty())
842 QString label = tr(
"Template Options");
844 auto *menuPopup =
new MythDialogBox(label, popupStack,
"menuPopup");
846 if (menuPopup->Create())
848 menuPopup->SetReturnEvent(
this,
"templatemenu");
849 while (!templates.empty())
851 QString name = templates.front();
852 if (name ==
"Default")
853 menuPopup->AddButton(tr(
"Default"));
855 menuPopup->AddButton(name);
856 templates.pop_front();
876 m_editor(&editor), m_recordingRule(&rule), m_recInfo(recInfo)
887 TranslateKeyPress(
"TV Frontend", event, actions);
889 for (
int i = 0; i < actions.size() && !handled; i++)
891 const QString&
action = actions[i];
896 else if (
action ==
"INFO")
898 else if (
action ==
"UPCOMING")
902 else if (
action ==
"PREVVIEW")
904 else if (
action ==
"NEXTVIEW")
917 const QString &xmlfile,
const QString &winname,
bool isTemplate)
973 :
SchedEditChild(parent,
"ScheduleOptionsEditor", editor, rule, recInfo),
981 "schedule-ui.xml",
"scheduleoptionseditor",
995 LOG(VB_GENERAL, LOG_ERR,
"SchedOptEditor, theme is missing "
996 "required elements");
1040 :
SchedEditChild(parent,
"ScheduleFilterEditor", editor, rule, recInfo),
1048 "schedule-ui.xml",
"schedulefiltereditor",
1060 LOG(VB_GENERAL, LOG_ERR,
"SchedFilterEditor, theme is missing "
1061 "required elements");
1100 :
SchedEditChild(parent,
"StorageOptionsEditor", editor, rule, recInfo),
1108 "schedule-ui.xml",
"storageoptionseditor",
1120 LOG(VB_GENERAL, LOG_ERR,
"StoreOptEditor, theme is missing "
1121 "required elements");
1159 QString resultid = dce->GetId();
1160 QString resulttext = dce->GetResultText();
1162 if (resultid ==
"newrecgroup")
1186 :
SchedEditChild(parent,
"PostProcOptionsEditor", editor, rule, recInfo),
1194 "schedule-ui.xml",
"postproceditor",
1206 LOG(VB_GENERAL, LOG_ERR,
"PostProcEditor, theme is missing "
1207 "required elements");
1247 :
SchedEditChild(parent,
"MetadataOptions", editor, rule, recInfo),
1277 "schedule-ui.xml",
"metadataoptions",
1302 LOG(VB_GENERAL, LOG_ERR,
"MetadataOptions, theme is missing "
1303 "required elements");
1381 const QString& message = title;
1399 "recording online..."));
1415 QString msg = tr(
"Downloading selected artwork...");
1422 lookup->SetAutomatic(
true);
1423 lookup->SetData(QVariant::fromValue<VideoArtworkType>(
type));
1427 lookup->SetDownloads(downloads);
1428 lookup->SetAllowOverwrites(
true);
1516 lookup->
toMap(metadataMap);
1521 const QString &prefixAlt,
1523 const QString &returnEvent)
1527 if (
prefix.startsWith(
"myth://"))
1539 fb->SetReturnEvent(&inst, returnEvent);
1552 QList<QByteArray> exts = QImageReader::supportedImageFormats();
1553 for (
const auto & ext : std::as_const(exts))
1555 ret.append(QString(
"*.").append(ext));
1566 "on this rule to set artwork. For items "
1567 "without a metadata source, you can set "
1568 "any unique value."));
1579 lookup->SetType(mtype);
1598 lookup->SetSubtype(
type);
1600 lookup->SetAllowGeneric(
true);
1601 lookup->SetHandleImages(
false);
1618 QString msg = tr(
"Searching for available artwork...");
1624 lookup->
SetData(QVariant::fromValue<VideoArtworkType>(
type));
1654 if (resultsdialog->Create())
1668 for (DownloadMap::const_iterator i = map.cbegin(); i != map.cend(); ++i)
1727 if (list.count() > 1)
1731 for (
int p = 0;
p != list.size(); ++
p)
1742 (list[
p])->GetYear() != 0 &&
1747 LOG(VB_GENERAL, LOG_INFO,
"Multiple results matched on year. No definite "
1748 "match could be found based on year alone.");
1751 else if (yearindex == -1)
1753 LOG(VB_GENERAL, LOG_INFO,
"Matched based on year. ");
1766 LOG(VB_GENERAL, LOG_INFO,
"Falling through to selection dialog.");
1771 Qt::QueuedConnection);
1773 if (resultsdialog->Create())
1808 QString title = tr(
"No match found for this recording. You can "
1809 "try entering a TVDB/TMDB number, season, and "
1810 "episode manually.");
1814 if (okPopup->Create())
1832 if (lul.count() >= 1)
1851 QString title = tr(
"This number, season, and episode combination "
1852 "does not appear to be valid (or the site may "
1853 "be down). Check your information and try "
1858 if (okPopup->Create())
1887 tr(
"Schedule Editor"),
1895 const QString resultid = dce->GetId();
1897 info.url = dce->GetResultText();
1899 if (resultid ==
"coverart")
1903 else if (resultid ==
"fanart")
1907 else if (resultid ==
"banner")
1929 : m_screen(&screen), m_rule(rule), m_other(other),
2059 QVariant::fromValue(value));
2089 QObject::tr(
"Use any available input"),
2090 QVariant::fromValue(0));
2093 for (
uint id : inputids)
2096 QObject::tr(
"Prefer input %1")
2120 QObject::tr(
"Record new and repeat "
2123 QObject::tr(
"Record new episodes only"),
2195 isScheduled && !isSingle &&
2255 query.
prepare(
"SELECT filterid, description, newruledefault "
2256 "FROM recordfilter ORDER BY filterid");
2260 while (query.
next())
2262 m_descriptions << QCoreApplication::translate(
"SchedFilterEditor",
2263 query.
value(1).toString().toUtf8().constData());
2273 QStringList::iterator Idesc;
2303 QObject::tr(
"None"), idx);
2316 uint32_t filter_mask = 0;
2319 for (
int idx = 0; idx < end; ++idx)
2322 if (button !=
nullptr &&
2324 filter_mask |= (1 << button->
GetData().value<uint32_t>());
2405 QStringList::Iterator it;
2413 label = QObject::tr(
"Record using the %1 profile");
2416 label.arg(QObject::tr(
"Default")),
2417 QVariant::fromValue(QString(
"Default")));
2420 label.arg(QObject::tr(
"LiveTV")),
2421 QVariant::fromValue(QString(
"LiveTV")));
2423 label.arg(QObject::tr(
"High Quality")),
2424 QVariant::fromValue(QString(
"High Quality")));
2426 label.arg(QObject::tr(
"Low Quality")),
2427 QVariant::fromValue(QString(
"Low Quality")));
2437 label = QObject::tr(
"Include in the \"%1\" recording group");
2439 QObject::tr(
"Create a new recording group"),
2440 QVariant::fromValue(QString(
"__NEW_GROUP__")));
2442 query.
prepare(
"SELECT recgroupid, recgroup FROM recgroups "
2443 "WHERE recgroup <> 'Deleted' AND "
2444 " recgroup <> 'LiveTV' "
2445 "ORDER BY special DESC, recgroup ASC");
2448 while (query.
next())
2450 int id = query.
value(0).toInt();
2451 QString name = query.
value(1).toString();
2453 if (name ==
"Default")
2454 name = QObject::tr(
"Default");
2456 QVariant::fromValue(
id));
2469 label = QObject::tr(
"Store in the \"%1\" storage group");
2471 label.arg(QObject::tr(
"Default")),
2472 QVariant::fromValue(QString(
"Default")));
2475 for (it = groups.begin(); it != groups.end(); ++it)
2477 if ((*it).compare(
"Default", Qt::CaseInsensitive) != 0)
2479 label.arg(*it), QVariant::fromValue(*it));
2490 label = QObject::tr(
"Use \"%1\" playback group settings");
2492 label.arg(QObject::tr(
"Default")),
2493 QVariant::fromValue(QString(
"Default")));
2496 for (it = groups.begin(); it != groups.end(); ++it)
2499 QVariant::fromValue(*it));
2523 QObject::tr(
"Don't record if this would exceed the max "
2524 "episodes"), QVariant::fromValue(
false));
2526 QObject::tr(
"Delete oldest if this would exceed the max "
2527 "episodes"), QVariant::fromValue(
true));
2625 QObject::tr(
"New Recording group name: ");
2630 textDialog->SetReturnEvent(
m_screen,
"newrecgroup");
2632 if (textDialog->Create())
2633 popupStack->
AddScreen(textDialog,
false);
2638 if (!
m_rule || recgroupID <= 0)
2643 recgroup = recgroup.trimmed();
2644 if (recgroup.isEmpty())
2647 QString label = QObject::tr(
"Include in the \"%1\" recording group");
2649 QVariant::fromValue(recgroupID));
2655 label.arg(recgroup), QVariant::fromValue(recgroupID));
2666 query.
prepare(
"INSERT INTO recgroups SET recgroup = :NAME, "
2667 "displayname = :DISPLAYNAME");
2669 query.
bindValue(
":DISPLAYNAME", groupName);
2675 LOG(VB_GENERAL, LOG_ERR, QString(
"Could not create recording group (%1). "
2676 "Does it already exist?").arg(groupName));
2754 QMap<int, QString>::iterator it;
2755 for (it = profiles.begin(); it != profiles.end(); ++it)
2758 QVariant::fromValue(it.key()));
2772 userjob1Text->
SetText(QObject::tr(
"Run '%1'")
2786 userjob2Text->
SetText(QObject::tr(
"Run '%1'")
2800 userjob3Text->
SetText(QObject::tr(
"Run '%1'")
2814 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)