5 #include <QCoreApplication> 47 #define ENUM_TO_QVARIANT(a) qVariantFromValue(static_cast<int>(a)) 53 static QString
fs0(QT_TRANSLATE_NOOP(
"SchedFilterEditor",
"New episode"));
54 static QString
fs1(QT_TRANSLATE_NOOP(
"SchedFilterEditor",
"Identifiable episode"));
55 static QString
fs2(QT_TRANSLATE_NOOP(
"SchedFilterEditor",
"First showing"));
56 static QString
fs3(QT_TRANSLATE_NOOP(
"SchedFilterEditor",
"Prime time"));
57 static QString
fs4(QT_TRANSLATE_NOOP(
"SchedFilterEditor",
"Commercial free"));
58 static QString
fs5(QT_TRANSLATE_NOOP(
"SchedFilterEditor",
"High definition"));
59 static QString
fs6(QT_TRANSLATE_NOOP(
"SchedFilterEditor",
"This episode"));
60 static QString
fs7(QT_TRANSLATE_NOOP(
"SchedFilterEditor",
"This series"));
61 static QString
fs8(QT_TRANSLATE_NOOP(
"SchedFilterEditor",
"This time"));
62 static QString
fs9(QT_TRANSLATE_NOOP(
"SchedFilterEditor",
"This day and time"));
63 static QString
fs10(QT_TRANSLATE_NOOP(
"SchedFilterEditor",
"This channel"));
64 static QString
fs11(QT_TRANSLATE_NOOP(
"SchedFilterEditor",
"No episodes"));
69 rule->LoadByProgram(proginfo);
72 auto *se =
new ScheduleEditor(mainStack, rule, static_cast<TV*>(player));
75 mainStack->
AddScreen(se, (player ==
nullptr));
110 m_recordingRule(recRule),
111 m_player(player), m_view(kMainView)
122 QString message = QString(
"VIEWSCHEDULED_EXITING");
154 LOG(VB_GENERAL, LOG_ERR,
"ScheduleEditor, theme is missing " 155 "required elements");
213 LOG(VB_GENERAL, LOG_ERR,
214 "ScheduleEditor::Create() - Failed to load recording rule");
255 .compare(
"Default", Qt::CaseInsensitive) != 0)
258 tr(
"Delete this recording rule template"),
268 tr(
"Record this showing with normal options"),
293 if (!hasChannel || isManual)
297 if (!hasChannel || isManual)
428 if (!schedoptedit->Create())
453 if (!storeoptedit->Create())
478 if (!ppedit->Create())
494 QString label = tr(
"Schedule Information");
497 auto *menuPopup =
new MythDialogBox(label, popupStack,
"menuPopup");
499 if (menuPopup->Create())
501 menuPopup->SetReturnEvent(
this,
"schedinfo");
504 menuPopup->AddButton(tr(
"Program Details"));
505 menuPopup->AddButton(tr(
"Upcoming Episodes"));
506 menuPopup->AddButton(tr(
"Upcoming Recordings"));
508 menuPopup->AddButton(tr(
"Previously Recorded"));
523 TranslateKeyPress(
"TV Frontend", event, actions);
525 for (
int i = 0; i < actions.size() && !handled; i++)
527 QString
action = actions[i];
532 else if (
action ==
"INFO")
534 else if (
action ==
"GUIDE")
536 else if (
action ==
"UPCOMING")
538 else if (
action ==
"PREVVIEW")
540 else if (
action ==
"NEXTVIEW")
558 QString resultid = dce->GetId();
559 QString resulttext = dce->GetResultText();
561 if (resultid ==
"menu")
563 if (resulttext == tr(
"Main Options"))
565 if (resulttext == tr(
"Schedule Options"))
567 else if (resulttext == tr(
"Filter Options"))
569 else if (resulttext == tr(
"Storage Options"))
571 else if (resulttext == tr(
"Post Processing"))
573 else if (resulttext == tr(
"Metadata Options"))
575 else if (resulttext == tr(
"Use Template"))
577 else if (resulttext == tr(
"Schedule Info"))
579 else if (resulttext == tr(
"Preview Changes"))
582 else if (resultid ==
"templatemenu")
586 else if (resultid ==
"schedinfo")
588 if (resulttext == tr(
"Program Details"))
590 else if (resulttext == tr(
"Upcoming Episodes"))
592 else if (resulttext == tr(
"Upcoming Recordings"))
594 else if (resulttext == tr(
"Previously Recorded"))
598 else if (resultid ==
"newrecgroup")
641 title.remove(QRegExp(
" \\(.*\\)$"));
667 QString ttable =
"record_tmp";
720 if (!schedfilteredit->Create())
722 delete schedfilteredit;
788 QString label = tr(
"Options");
790 auto *menuPopup =
new MythDialogBox(label, popupStack,
"menuPopup");
796 if (menuPopup->Create())
798 menuPopup->SetReturnEvent(
this,
"menu");
800 menuPopup->AddButton(tr(
"Main Options"));
802 menuPopup->AddButton(tr(
"Schedule Options"));
804 menuPopup->AddButton(tr(
"Filter Options"));
806 menuPopup->AddButton(tr(
"Storage Options"));
808 menuPopup->AddButton(tr(
"Post Processing"));
811 menuPopup->AddButton(tr(
"Metadata Options"));
813 menuPopup->AddButton(tr(
"Schedule Info"));
815 menuPopup->AddButton(tr(
"Preview Changes"));
816 menuPopup->AddButton(tr(
"Use Template"));
828 if (templates.empty())
834 QString label = tr(
"Template Options");
836 auto *menuPopup =
new MythDialogBox(label, popupStack,
"menuPopup");
838 if (menuPopup->Create())
840 menuPopup->SetReturnEvent(
this,
"templatemenu");
841 while (!templates.empty())
843 QString name = templates.front();
844 if (name ==
"Default")
845 menuPopup->AddButton(tr(
"Default"));
847 menuPopup->AddButton(name);
848 templates.pop_front();
868 m_editor(&editor), m_recordingRule(&rule), m_recInfo(recInfo)
879 TranslateKeyPress(
"TV Frontend", event, actions);
881 for (
int i = 0; i < actions.size() && !handled; i++)
883 QString
action = actions[i];
888 else if (
action ==
"INFO")
890 else if (
action ==
"UPCOMING")
894 else if (
action ==
"PREVVIEW")
896 else if (
action ==
"NEXTVIEW")
909 const QString &xmlfile,
const QString &winname,
bool isTemplate)
919 connect(
m_editor, SIGNAL(templateLoaded()), SLOT(
Load()));
965 :
SchedEditChild(parent,
"ScheduleOptionsEditor", editor, rule, recInfo),
973 "schedule-ui.xml",
"scheduleoptionseditor",
987 LOG(VB_GENERAL, LOG_ERR,
"SchedOptEditor, theme is missing " 988 "required elements");
1032 :
SchedEditChild(parent,
"ScheduleFilterEditor", editor, rule, recInfo),
1040 "schedule-ui.xml",
"schedulefiltereditor",
1052 LOG(VB_GENERAL, LOG_ERR,
"SchedFilterEditor, theme is missing " 1053 "required elements");
1092 :
SchedEditChild(parent,
"StorageOptionsEditor", editor, rule, recInfo),
1100 "schedule-ui.xml",
"storageoptionseditor",
1112 LOG(VB_GENERAL, LOG_ERR,
"StoreOptEditor, theme is missing " 1113 "required elements");
1151 QString resultid = dce->GetId();
1152 QString resulttext = dce->GetResultText();
1154 if (resultid ==
"newrecgroup")
1178 :
SchedEditChild(parent,
"PostProcOptionsEditor", editor, rule, recInfo),
1186 "schedule-ui.xml",
"postproceditor",
1198 LOG(VB_GENERAL, LOG_ERR,
"PostProcEditor, theme is missing " 1199 "required elements");
1239 :
SchedEditChild(parent,
"MetadataOptions", editor, rule, recInfo)
1271 "schedule-ui.xml",
"metadataoptions",
1296 LOG(VB_GENERAL, LOG_ERR,
"MetadataOptions, theme is missing " 1297 "required elements");
1365 const QString& message = title;
1383 "recording online..."));
1399 QString msg = tr(
"Downloading selected artwork...");
1406 lookup->SetAutomatic(
true);
1407 lookup->SetData(qVariantFromValue<VideoArtworkType>(
type));
1410 downloads.insert(
type, info);
1411 lookup->SetDownloads(downloads);
1412 lookup->SetAllowOverwrites(
true);
1500 lookup->
toMap(metadataMap);
1505 const QString &prefixAlt,
1507 const QString &returnEvent)
1511 if (
prefix.startsWith(
"myth://"))
1523 fb->SetReturnEvent(&inst, returnEvent);
1534 QList<QByteArray> exts = QImageReader::supportedImageFormats();
1535 for (QList<QByteArray>::iterator
p = exts.begin();
p != exts.end(); ++
p)
1537 ret.append(QString(
"*.").append(*
p));
1548 "on this rule to set artwork. For items " 1549 "without a metadata source, you can set " 1550 "any unique value."));
1561 lookup->SetType(mtype);
1580 lookup->SetSubtype(
type);
1582 lookup->SetAllowGeneric(
true);
1583 lookup->SetHandleImages(
false);
1600 QString msg = tr(
"Searching for available artwork...");
1606 lookup->
SetData(qVariantFromValue<VideoArtworkType>(
type));
1636 if (resultsdialog->Create())
1650 for (DownloadMap::const_iterator i = map.begin(); i != map.end(); ++i)
1703 auto *mfmr = dynamic_cast<MetadataFactoryMultiResult*>(levent);
1709 if (list.count() > 1)
1713 for (
int p = 0;
p != list.size(); ++
p)
1724 (list[
p])->GetYear() != 0 &&
1729 LOG(VB_GENERAL, LOG_INFO,
"Multiple results matched on year. No definite " 1730 "match could be found based on year alone.");
1733 else if (yearindex == -1)
1735 LOG(VB_GENERAL, LOG_INFO,
"Matched based on year. ");
1748 LOG(VB_GENERAL, LOG_INFO,
"Falling through to selection dialog.");
1753 Qt::QueuedConnection);
1755 if (resultsdialog->Create())
1767 auto *mfsr = dynamic_cast<MetadataFactorySingleResult*>(levent);
1786 auto *mfnr = dynamic_cast<MetadataFactoryNoResult*>(levent);
1790 QString title = tr(
"No match found for this recording. You can " 1791 "try entering a TVDB/TMDB number, season, and " 1792 "episode manually.");
1796 if (okPopup->Create())
1814 if (lul.count() >= 1)
1833 QString title = tr(
"This number, season, and episode combination " 1834 "does not appear to be valid (or the site may " 1835 "be down). Check your information and try " 1840 if (okPopup->Create())
1869 tr(
"Schedule Editor"),
1877 const QString resultid = dce->GetId();
1879 info.
url = dce->GetResultText();
1881 if (resultid ==
"coverart")
1885 else if (resultid ==
"fanart")
1889 else if (resultid ==
"banner")
1911 : m_screen(&screen), m_rule(rule), m_other(other),
2047 QObject::tr(
"Use any available input"),
2048 qVariantFromValue(0));
2051 for (
size_t i = 0; i < inputids.size(); ++i)
2054 QObject::tr(
"Prefer input %1")
2073 QObject::tr(
"Record new and repeat " 2076 QObject::tr(
"Record new episodes only"),
2194 query.
prepare(
"SELECT filterid, description, newruledefault " 2195 "FROM recordfilter ORDER BY filterid");
2199 while (query.
next())
2202 .toUtf8().constData());
2212 QStringList::iterator Idesc;
2242 QObject::tr(
"None"), idx);
2255 uint32_t filter_mask = 0;
2258 for (
int idx = 0; idx < end; ++idx)
2261 if (button !=
nullptr &&
2263 filter_mask |= (1 << button->
GetData().value<uint32_t>());
2344 QStringList::Iterator it;
2352 label = QObject::tr(
"Record using the %1 profile");
2355 label.arg(QObject::tr(
"Default")),
2356 qVariantFromValue(QString(
"Default")));
2359 label.arg(QObject::tr(
"LiveTV")),
2360 qVariantFromValue(QString(
"LiveTV")));
2362 label.arg(QObject::tr(
"High Quality")),
2363 qVariantFromValue(QString(
"High Quality")));
2365 label.arg(QObject::tr(
"Low Quality")),
2366 qVariantFromValue(QString(
"Low Quality")));
2376 label = QObject::tr(
"Include in the \"%1\" recording group");
2378 QObject::tr(
"Create a new recording group"),
2379 qVariantFromValue(QString(
"__NEW_GROUP__")));
2381 query.
prepare(
"SELECT recgroupid, recgroup FROM recgroups " 2382 "WHERE recgroup <> 'Deleted' AND " 2383 " recgroup <> 'LiveTV' " 2384 "ORDER BY special DESC, recgroup ASC");
2387 while (query.
next())
2389 int id = query.
value(0).toInt();
2390 QString name = query.
value(1).toString();
2392 if (name ==
"Default")
2393 name = QObject::tr(
"Default");
2395 qVariantFromValue(
id));
2408 label = QObject::tr(
"Store in the \"%1\" storage group");
2410 label.arg(QObject::tr(
"Default")),
2411 qVariantFromValue(QString(
"Default")));
2414 for (it = groups.begin(); it != groups.end(); ++it)
2416 if ((*it).compare(
"Default", Qt::CaseInsensitive) != 0)
2418 label.arg(*it), qVariantFromValue(*it));
2429 label = QObject::tr(
"Use \"%1\" playback group settings");
2431 label.arg(QObject::tr(
"Default")),
2432 qVariantFromValue(QString(
"Default")));
2435 for (it = groups.begin(); it != groups.end(); ++it)
2438 qVariantFromValue(*it));
2462 QObject::tr(
"Don't record if this would exceed the max " 2463 "episodes"), qVariantFromValue(
false));
2465 QObject::tr(
"Delete oldest if this would exceed the max " 2466 "episodes"), qVariantFromValue(
true));
2564 QObject::tr(
"New Recording group name: ");
2569 textDialog->SetReturnEvent(
m_screen,
"newrecgroup");
2571 if (textDialog->Create())
2572 popupStack->
AddScreen(textDialog,
false);
2577 if (!
m_rule || recgroupID <= 0)
2582 recgroup = recgroup.trimmed();
2583 if (recgroup.isEmpty())
2586 QString label = QObject::tr(
"Include in the \"%1\" recording group");
2588 qVariantFromValue(recgroup));
2594 label.arg(recgroup), qVariantFromValue(recgroupID));
2605 query.
prepare(
"INSERT INTO recgroups SET recgroup = :NAME, " 2606 "displayname = :DISPLAYNAME");
2608 query.
bindValue(
":DISPLAYNAME", groupName);
2614 LOG(VB_GENERAL, LOG_ERR, QString(
"Could not create recording group (%1). " 2615 "Does it already exist?").arg(groupName));
2693 QMap<int, QString>::iterator it;
2694 for (it = profiles.begin(); it != profiles.end(); ++it)
2697 qVariantFromValue(it.key()));
2711 userjob1Text->
SetText(QObject::tr(
"Run '%1'")
2725 userjob2Text->
SetText(QObject::tr(
"Run '%1'")
2739 userjob3Text->
SetText(QObject::tr(
"Run '%1'")
2753 userjob4Text->
SetText(QObject::tr(
"Run '%1'")
MythScreenType * m_screen
bool next(void)
Wrap QSqlQuery::next() so we can display the query results.
MythUICheckBox * m_commflagCheck
bool m_isInactive
Recording rule is enabled?
void MaxEpisodesChanged(MythUIButtonListItem *)
static QString fs3(QT_TRANSLATE_NOOP("SchedFilterEditor", "Prime time"))
MythScreenStack * GetScreenStack() const
ScheduleEditor(MythScreenStack *parent, RecordingInfo *recinfo, TV *player=nullptr)
Select post-processing options.
void ruleDeleted(int ruleId)
void Load(void) override
Load data which will ultimately be displayed on-screen or used to determine what appears on-screen (S...
void showUpcomingByTitle(void)
void bindValue(const QString &placeholder, const QVariant &val)
Add a single binding.
static QString fs6(QT_TRANSLATE_NOOP("SchedFilterEditor", "This episode"))
MythUICheckBox * m_ruleactiveCheck
void DupMethodChanged(MythUIButtonListItem *)
#define ENUM_TO_QVARIANT(a)
MythUISpinBox * m_endoffsetSpin
bool StartEmbedding(const QRect &)
virtual void ToMap(InfoMap &progMap, bool showrerecord=false, uint star_range=10) const
Converts ProgramInfo into QString QHash containing each field in ProgramInfo converted into localized...
QString toDescription(RecordingType rectype)
Converts "rectype" into a human readable description.
bool LoadByProgram(const ProgramInfo *proginfo)
Dialog asking for user confirmation.
static void ToggleSelected(MythUIButtonListItem *item)
bool Create(void) override
void SetEnabled(bool enable)
bool Delete(bool sendSig=true)
void TranscodeChanged(bool enable)
RecordingRule * m_recordingRule
MythScreenType * m_screen
MythUIButtonList * m_filtersList
MythConfirmationDialog * ShowOkPopup(const QString &message, QObject *parent, const char *slot, bool showCancel)
Non-blocking version of MythPopupBox::showOkPopup()
void showUpcomingByRule(void)
All purpose text widget, displays a text string.
static QString fs8(QT_TRANSLATE_NOOP("SchedFilterEditor", "This time"))
virtual void ShowUpcoming(void) const
Show the upcoming recordings for this title.
QHash< QString, QString > InfoMap
MythUISpinBox * m_prioritySpin
PostProcEditor(MythScreenStack *parent, ScheduleEditor &editor, RecordingRule &rule, RecordingInfo *recinfo)
void ToMap(InfoMap &infoMap) const
void templateLoaded(void)
void MaxEpisodesChanged(MythUIButtonListItem *)
QSqlQuery wrapper that fetches a DB connection from the connection pool.
MythUIButtonList * m_playgroupList
void TranscodeChanged(bool enable)
Basic menu dialog, message and a list of options.
void SetRule(RecordingRule *rule)
static QString fs9(QT_TRANSLATE_NOOP("SchedFilterEditor", "This day and time"))
MythUICheckBox * m_userjob4Check
MythUIButton * m_filtersButton
void customEvent(QEvent *event) override
static QStringList getRecordingsGroups(void)
virtual void SetText(const QString &text)
Holds information on a TV Program one might wish to record.
static void ToggleSelected(MythUIButtonListItem *item)
MythScreenStack * GetStack(const QString &stackname)
static QString fs4(QT_TRANSLATE_NOOP("SchedFilterEditor", "Commercial free"))
int m_recordID
Unique Recording Rule ID.
RecordingInfo * m_recInfo
MythCoreContext * gCoreContext
This global variable contains the MythCoreContext instance for the app.
void SetValue(int val) override
MythScreenStack * GetMainStack()
MythUIButton * m_schedOptButton
virtual void ShowDetails(void) const
Show the Program Details screen.
void showTemplateMenu(void)
RecordingDupMethodType m_dupMethod
static QString fs7(QT_TRANSLATE_NOOP("SchedFilterEditor", "This series"))
static QString fs2(QT_TRANSLATE_NOOP("SchedFilterEditor", "First showing"))
void SetRule(RecordingRule *rule)
SchedEditChild(MythScreenStack *parent, const QString &name, ScheduleEditor &editor, RecordingRule &rule, RecordingInfo *recinfo)
bool Create(void) override
bool Load(bool allowLoadInBackground=true, bool forceStat=false)
Load the image(s), wraps ImageLoader::LoadImage()
Mixin for schedule options.
static QString fs10(QT_TRANSLATE_NOOP("SchedFilterEditor", "This channel"))
void BuildFocusList(void)
RecordingRule * m_recordingRule
MythUICheckBox * m_metadataLookupCheck
int GetIntValue(void) const override
QVariant value(int i) const
bool keyPressEvent(QKeyEvent *event) override
Key event handler.
void MaxEpisodesChanged(MythUIButtonListItem *)
MythUIButton * m_cancelButton
MythScreenType * m_screen
bool Save(bool sendSig=true)
Holds information on recordings and videos.
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.
bool GetBooleanCheckState(void) const
virtual void AddScreen(MythScreenType *screen, bool allowFade=true)
MythUIButton * m_metadataButton
MythUICheckBox * m_transcodeCheck
This class is used as a container for messages.
void DupMethodChanged(MythUIButtonListItem *)
MythUIButton * m_saveButton
virtual void ShowGuide(void) const
Show the program guide.
virtual void ShowPrevious(void) const
Show the previous recordings for this recording rule.
MythUIButtonList * m_storagegroupList
static void FilterChanged(MythUIButtonListItem *)
bool Create(void) override
void ruleSaved(int ruleId)
QVariant lastInsertId()
Return the id of the last inserted row.
static QString fs1(QT_TRANSLATE_NOOP("SchedFilterEditor", "Identifiable episode"))
MythUIButton * m_filtersButton
Construct a recording schedule.
bool m_autoMetadataLookup
QString GetSetting(const QString &key, const QString &defaultval="")
MythUICheckBox * m_autoexpireCheck
bool keyPressEvent(QKeyEvent *event) override
Key event handler.
MythUIButtonList * m_inputList
MythUIButton * m_backButton
static QString fs5(QT_TRANSLATE_NOOP("SchedFilterEditor", "High definition"))
StoreOptEditor(MythScreenStack *parent, ScheduleEditor &editor, RecordingRule &rule, RecordingInfo *recinfo)
MythUIButton * m_schedInfoButton
virtual void SetTextFromMap(const InfoMap &infoMap)
QString GetMasterHostName(void)
MythUIButton * m_saveButton
bool Queue(const MythNotification ¬ification)
Queue a notification Queue() is thread-safe and can be called from anywhere.
bool LoadTemplate(const QString &category, const QString &categoryType="Default")
virtual bool CreateEditChild(const QString &xmlfile, const QString &winname, bool isTemplate)
static bool Assign(ContainerType *container, UIType *&item, const QString &name, bool *err=nullptr)
Mixin for storage options.
void SetRule(RecordingRule *rule)
static vector< uint > GetSchedInputList(void)
bool Create(void) override
uint GetSeason(void) const
static MSqlQueryInfo InitCon(ConnectionReuse=kNormalConnection)
Only use this in combination with MSqlQuery constructor.
Internal representation of a recording rule, mirrors the record table.
void SetRecGroup(int recgroupID, QString recgroup)
bool Create(void) override
void ShowMetadataOptions(void)
MythUIButton * m_previewButton
MythUIButtonList * m_newrepeatList
RecordingInfo * m_recInfo
void PromptForRecGroup(void)
MythUIButton * m_postProcButton
static bool LoadWindowFromXML(const QString &xmlfile, const QString &windowname, MythUIType *parent)
RecordingDupInType m_dupIn
void SetText(const QString &text, bool moveCursor=true)
MythUIType * GetFocusWidget(void) const
MythMainWindow * GetMythMainWindow(void)
MythScreenType * m_screen
uint GetYearOfInitialRelease(void) const
void PromptForRecGroup(void)
MythUISpinBox * m_startoffsetSpin
MythUIButtonList * m_transcodeprofileList
static QString fs11(QT_TRANSLATE_NOOP("SchedFilterEditor", "No episodes"))
Dialog prompting the user to enter a text string.
void TranscodeChanged(bool enable)
bool prepare(const QString &query)
QSqlQuery::prepare() is not thread safe in Qt <= 3.3.2.
void DupMethodChanged(MythUIButtonListItem *item)
MythUICheckBox * m_userjob3Check
bool keyPressEvent(QKeyEvent *) override
Key event handler.
#define LOG(_MASK_, _LEVEL_, _STRING_)
virtual void PopScreen(MythScreenType *screen=nullptr, bool allowFade=true, bool deleteScreen=true)
void SetFilename(const QString &filename)
Must be followed by a call to Load() to load the image.
SchedOptMixin(MythScreenType &screen, RecordingRule *rule, SchedOptMixin *other=nullptr)
MythUICheckBox * m_userjob2Check
MythUIButtonList * m_maxbehaviourList
uint GetRecordingRuleID(void) const
void SetRule(RecordingRule *rule)
void UseTempTable(bool usetemp, const QString &table="record_tmp")
MythUIButton * m_previewButton
QStringList m_descriptions
static QStringList GetNames(void)
SchedFilterEditor(MythScreenStack *parent, ScheduleEditor &editor, RecordingRule &rule, RecordingInfo *recinfo)
void SetCheckState(MythUIStateType::StateType state)
MythUIButtonList * m_dupscopeList
bool Load(bool asTemplate=false)
Load a single rule from the recorded table.
QString generate_file_url(const QString &storage_group, const QString &host, const QString &path)
void Close(void) override
MythUICheckBox * m_userjob1Check
void Load(void) override=0
static QStringList GetTemplateNames(void)
void PromptForRecGroup(void)
bool exec(void)
Wrap QSqlQuery::exec() so we can display SQL.
MythUIButtonList * m_dupmethodList
Screen in which all other widgets are contained and rendered.
MythUISpinBox * m_maxepSpin
ScheduleEditor * m_editor
MythUIButtonList * m_activeFiltersList
virtual void Save(void)=0
Event dispatched from MythUI modal dialogs to a listening class containing a result of some form.
MythUIButton * m_storeOptButton
static void * RunScheduleEditor(ProgramInfo *proginfo, void *player=nullptr)
Callback.
static QMap< int, QString > GetTranscodingProfiles()
void SetCanTakeFocus(bool set=true)
Set whether this widget can take focus.
void ShowPreviousView(void)
MythUIButtonList * m_recprofileList
CategoryType GetCategoryType(void) const
static QString fs0(QT_TRANSLATE_NOOP("SchedFilterEditor", "New episode"))
static int CreateRecordingGroup(const QString &groupName)
MythUIButtonList * m_recgroupList
RecSearchType m_searchType
Mixin for post processing.
QString GetText(void) const
MythNotificationCenter * GetNotificationCenter(void)
void LoadTemplate(const QString &name)
MythUIButtonList * m_rulesList
uint GetEpisode(void) const
void Close(void) override
SchedOptEditor(MythScreenStack *parent, ScheduleEditor &editor, RecordingRule &rule, RecordingInfo *recinfo)
void SetTextFromMaps(void)
bool Create(void) override
static QString GetDisplayName(uint inputid)
void customEvent(QEvent *event) override