Go to the documentation of this file.
5 #include <QCoreApplication>
47 #define ENUM_TO_QVARIANT(a) QVariant::fromValue(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);
75 mainStack->
AddScreen(se, (player ==
nullptr));
113 m_recordingRule(recRule),
159 LOG(VB_GENERAL, LOG_ERR,
"ScheduleEditor, theme is missing "
160 "required elements");
218 LOG(VB_GENERAL, LOG_ERR,
219 "ScheduleEditor::Create() - Failed to load recording rule");
260 .compare(
"Default", Qt::CaseInsensitive) != 0)
263 tr(
"Delete this recording rule template"),
273 tr(
"Record this showing with normal options"),
302 if (!hasChannel || isManual)
440 if (!schedoptedit->Create())
465 if (!storeoptedit->Create())
490 if (!ppedit->Create())
506 QString label = tr(
"Schedule Information");
509 auto *menuPopup =
new MythDialogBox(label, popupStack,
"menuPopup");
511 if (menuPopup->Create())
513 menuPopup->SetReturnEvent(
this,
"schedinfo");
516 menuPopup->AddButton(tr(
"Program Details"));
517 menuPopup->AddButton(tr(
"Upcoming Episodes"));
518 menuPopup->AddButton(tr(
"Upcoming Recordings"));
520 menuPopup->AddButton(tr(
"Previously Recorded"));
535 TranslateKeyPress(
"TV Frontend", event, actions);
537 for (
int i = 0; i < actions.size() && !handled; i++)
539 QString
action = actions[i];
544 else if (
action ==
"INFO")
546 else if (
action ==
"GUIDE")
548 else if (
action ==
"UPCOMING")
550 else if (
action ==
"PREVVIEW")
552 else if (
action ==
"NEXTVIEW")
570 QString resultid = dce->GetId();
571 QString resulttext = dce->GetResultText();
573 if (resultid ==
"menu")
575 if (resulttext == tr(
"Main Options"))
577 if (resulttext == tr(
"Schedule Options"))
579 else if (resulttext == tr(
"Filter Options"))
581 else if (resulttext == tr(
"Storage Options"))
583 else if (resulttext == tr(
"Post Processing"))
585 else if (resulttext == tr(
"Metadata Options"))
587 else if (resulttext == tr(
"Use Template"))
589 else if (resulttext == tr(
"Schedule Info"))
591 else if (resulttext == tr(
"Preview Changes"))
594 else if (resultid ==
"templatemenu")
598 else if (resultid ==
"schedinfo")
600 if (resulttext == tr(
"Program Details"))
602 else if (resulttext == tr(
"Upcoming Episodes"))
604 else if (resulttext == tr(
"Upcoming Recordings"))
606 else if (resulttext == tr(
"Previously Recorded"))
610 else if (resultid ==
"newrecgroup")
653 title.remove(QRegExp(
" \\(.*\\)$"));
679 QString ttable =
"record_tmp";
732 if (!schedfilteredit->Create())
734 delete schedfilteredit;
800 QString label = tr(
"Options");
802 auto *menuPopup =
new MythDialogBox(label, popupStack,
"menuPopup");
808 if (menuPopup->Create())
810 menuPopup->SetReturnEvent(
this,
"menu");
812 menuPopup->AddButton(tr(
"Main Options"));
814 menuPopup->AddButton(tr(
"Schedule Options"));
816 menuPopup->AddButton(tr(
"Filter Options"));
818 menuPopup->AddButton(tr(
"Storage Options"));
820 menuPopup->AddButton(tr(
"Post Processing"));
823 menuPopup->AddButton(tr(
"Metadata Options"));
826 menuPopup->AddButton(tr(
"Schedule Info"));
827 menuPopup->AddButton(tr(
"Preview Changes"));
829 menuPopup->AddButton(tr(
"Use Template"));
841 if (templates.empty())
847 QString label = tr(
"Template Options");
849 auto *menuPopup =
new MythDialogBox(label, popupStack,
"menuPopup");
851 if (menuPopup->Create())
853 menuPopup->SetReturnEvent(
this,
"templatemenu");
854 while (!templates.empty())
856 QString name = templates.front();
857 if (name ==
"Default")
858 menuPopup->AddButton(tr(
"Default"));
860 menuPopup->AddButton(name);
861 templates.pop_front();
881 m_editor(&editor), m_recordingRule(&rule), m_recInfo(recInfo)
892 TranslateKeyPress(
"TV Frontend", event, actions);
894 for (
int i = 0; i < actions.size() && !handled; i++)
896 QString
action = actions[i];
901 else if (
action ==
"INFO")
903 else if (
action ==
"UPCOMING")
907 else if (
action ==
"PREVVIEW")
909 else if (
action ==
"NEXTVIEW")
922 const QString &xmlfile,
const QString &winname,
bool isTemplate)
978 :
SchedEditChild(parent,
"ScheduleOptionsEditor", editor, rule, recInfo),
986 "schedule-ui.xml",
"scheduleoptionseditor",
1000 LOG(VB_GENERAL, LOG_ERR,
"SchedOptEditor, theme is missing "
1001 "required elements");
1045 :
SchedEditChild(parent,
"ScheduleFilterEditor", editor, rule, recInfo),
1053 "schedule-ui.xml",
"schedulefiltereditor",
1065 LOG(VB_GENERAL, LOG_ERR,
"SchedFilterEditor, theme is missing "
1066 "required elements");
1105 :
SchedEditChild(parent,
"StorageOptionsEditor", editor, rule, recInfo),
1113 "schedule-ui.xml",
"storageoptionseditor",
1125 LOG(VB_GENERAL, LOG_ERR,
"StoreOptEditor, theme is missing "
1126 "required elements");
1164 QString resultid = dce->GetId();
1165 QString resulttext = dce->GetResultText();
1167 if (resultid ==
"newrecgroup")
1191 :
SchedEditChild(parent,
"PostProcOptionsEditor", editor, rule, recInfo),
1199 "schedule-ui.xml",
"postproceditor",
1211 LOG(VB_GENERAL, LOG_ERR,
"PostProcEditor, theme is missing "
1212 "required elements");
1252 :
SchedEditChild(parent,
"MetadataOptions", editor, rule, recInfo)
1284 "schedule-ui.xml",
"metadataoptions",
1309 LOG(VB_GENERAL, LOG_ERR,
"MetadataOptions, theme is missing "
1310 "required elements");
1378 const QString& message =
title;
1396 "recording online..."));
1412 QString msg = tr(
"Downloading selected artwork...");
1419 lookup->SetAutomatic(
true);
1420 lookup->SetData(QVariant::fromValue<VideoArtworkType>(
type));
1423 downloads.insert(
type, info);
1424 lookup->SetDownloads(downloads);
1425 lookup->SetAllowOverwrites(
true);
1513 lookup->
toMap(metadataMap);
1518 const QString &prefixAlt,
1520 const QString &returnEvent)
1524 if (
prefix.startsWith(
"myth://"))
1536 fb->SetReturnEvent(&inst, returnEvent);
1547 QList<QByteArray> exts = QImageReader::supportedImageFormats();
1548 for (
const auto & ext : qAsConst(exts))
1550 ret.append(QString(
"*.").append(ext));
1561 "on this rule to set artwork. For items "
1562 "without a metadata source, you can set "
1563 "any unique value."));
1574 lookup->SetType(mtype);
1593 lookup->SetSubtype(
type);
1595 lookup->SetAllowGeneric(
true);
1596 lookup->SetHandleImages(
false);
1613 QString msg = tr(
"Searching for available artwork...");
1619 lookup->
SetData(QVariant::fromValue<VideoArtworkType>(
type));
1649 if (resultsdialog->Create())
1663 for (DownloadMap::const_iterator i = map.cbegin(); i != map.cend(); ++i)
1722 if (list.count() > 1)
1726 for (
int p = 0;
p != list.size(); ++
p)
1737 (list[
p])->GetYear() != 0 &&
1742 LOG(VB_GENERAL, LOG_INFO,
"Multiple results matched on year. No definite "
1743 "match could be found based on year alone.");
1746 else if (yearindex == -1)
1748 LOG(VB_GENERAL, LOG_INFO,
"Matched based on year. ");
1761 LOG(VB_GENERAL, LOG_INFO,
"Falling through to selection dialog.");
1766 Qt::QueuedConnection);
1768 if (resultsdialog->Create())
1803 QString
title = tr(
"No match found for this recording. You can "
1804 "try entering a TVDB/TMDB number, season, and "
1805 "episode manually.");
1809 if (okPopup->Create())
1827 if (lul.count() >= 1)
1846 QString
title = tr(
"This number, season, and episode combination "
1847 "does not appear to be valid (or the site may "
1848 "be down). Check your information and try "
1853 if (okPopup->Create())
1882 tr(
"Schedule Editor"),
1890 const QString resultid = dce->GetId();
1892 info.
url = dce->GetResultText();
1894 if (resultid ==
"coverart")
1898 else if (resultid ==
"fanart")
1902 else if (resultid ==
"banner")
1924 : m_screen(&screen), m_rule(rule), m_other(other),
2060 QObject::tr(
"Use any available input"),
2061 QVariant::fromValue(0));
2064 for (
uint id : inputids)
2067 QObject::tr(
"Prefer input %1")
2086 QObject::tr(
"Record new and repeat "
2089 QObject::tr(
"Record new episodes only"),
2155 isScheduled && !isSingle &&
2212 query.
prepare(
"SELECT filterid, description, newruledefault "
2213 "FROM recordfilter ORDER BY filterid");
2220 .toUtf8().constData());
2230 QStringList::iterator Idesc;
2260 QObject::tr(
"None"), idx);
2273 uint32_t filter_mask = 0;
2276 for (
int idx = 0; idx < end; ++idx)
2279 if (button !=
nullptr &&
2281 filter_mask |= (1 << button->
GetData().value<uint32_t>());
2362 QStringList::Iterator it;
2370 label = QObject::tr(
"Record using the %1 profile");
2373 label.arg(QObject::tr(
"Default")),
2374 QVariant::fromValue(QString(
"Default")));
2377 label.arg(QObject::tr(
"LiveTV")),
2378 QVariant::fromValue(QString(
"LiveTV")));
2380 label.arg(QObject::tr(
"High Quality")),
2381 QVariant::fromValue(QString(
"High Quality")));
2383 label.arg(QObject::tr(
"Low Quality")),
2384 QVariant::fromValue(QString(
"Low Quality")));
2394 label = QObject::tr(
"Include in the \"%1\" recording group");
2396 QObject::tr(
"Create a new recording group"),
2397 QVariant::fromValue(QString(
"__NEW_GROUP__")));
2399 query.
prepare(
"SELECT recgroupid, recgroup FROM recgroups "
2400 "WHERE recgroup <> 'Deleted' AND "
2401 " recgroup <> 'LiveTV' "
2402 "ORDER BY special DESC, recgroup ASC");
2410 if (name ==
"Default")
2411 name = QObject::tr(
"Default");
2413 QVariant::fromValue(
id));
2426 label = QObject::tr(
"Store in the \"%1\" storage group");
2428 label.arg(QObject::tr(
"Default")),
2429 QVariant::fromValue(QString(
"Default")));
2432 for (it = groups.begin(); it != groups.end(); ++it)
2434 if ((*it).compare(
"Default", Qt::CaseInsensitive) != 0)
2436 label.arg(*it), QVariant::fromValue(*it));
2447 label = QObject::tr(
"Use \"%1\" playback group settings");
2449 label.arg(QObject::tr(
"Default")),
2450 QVariant::fromValue(QString(
"Default")));
2453 for (it = groups.begin(); it != groups.end(); ++it)
2456 QVariant::fromValue(*it));
2480 QObject::tr(
"Don't record if this would exceed the max "
2481 "episodes"), QVariant::fromValue(
false));
2483 QObject::tr(
"Delete oldest if this would exceed the max "
2484 "episodes"), QVariant::fromValue(
true));
2582 QObject::tr(
"New Recording group name: ");
2587 textDialog->SetReturnEvent(
m_screen,
"newrecgroup");
2589 if (textDialog->Create())
2590 popupStack->
AddScreen(textDialog,
false);
2595 if (!
m_rule || recgroupID <= 0)
2600 recgroup = recgroup.trimmed();
2601 if (recgroup.isEmpty())
2604 QString label = QObject::tr(
"Include in the \"%1\" recording group");
2606 QVariant::fromValue(recgroup));
2612 label.arg(recgroup), QVariant::fromValue(recgroupID));
2623 query.
prepare(
"INSERT INTO recgroups SET recgroup = :NAME, "
2624 "displayname = :DISPLAYNAME");
2632 LOG(VB_GENERAL, LOG_ERR, QString(
"Could not create recording group (%1). "
2633 "Does it already exist?").
arg(groupName));
2711 QMap<int, QString>::iterator it;
2712 for (it = profiles.begin(); it != profiles.end(); ++it)
2715 QVariant::fromValue(it.key()));
2729 userjob1Text->
SetText(QObject::tr(
"Run '%1'")
2743 userjob2Text->
SetText(QObject::tr(
"Run '%1'")
2757 userjob3Text->
SetText(QObject::tr(
"Run '%1'")
2771 userjob4Text->
SetText(QObject::tr(
"Run '%1'")
static QStringList getRecordingsGroups(void)
bool LoadTemplate(const QString &category, const QString &categoryType="Default")
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)
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 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()
arg(title).arg(filename).arg(doDelete))
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?
#define ENUM_TO_QVARIANT(a)
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 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 void * RunScheduleEditor(ProgramInfo *proginfo, void *player=nullptr)
Callback.
void UseTempTable(bool usetemp, const QString &table="record_tmp")
void TranscodeChanged(bool enable)
void PromptForRecGroup(void)
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.
void ToMap(InfoMap &infoMap) const
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 ToMap(InfoMap &progMap, bool showrerecord=false, uint star_range=10) const
Converts ProgramInfo into QString QHash containing each field in ProgramInfo converted into localized...
virtual void ShowUpcoming(void) const
Show the upcoming recordings for this title.
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
MSqlQuery query(MSqlQuery::InitCon())
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
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)