1 #ifndef MYTHDIALOGBOX_H_
2 #define MYTHDIALOGBOX_H_
11 #include <QStringList>
47 m_id(
std::move(id)), m_result(result),
48 m_resultText(
std::move(text)),
49 m_resultData(
std::move(data)) { }
52 QString
GetId() {
return m_id; }
55 QVariant
GetData() {
return m_resultData; }
71 m_text(
std::move(text)), m_checked(checked), m_subMenu(subMenu) { Init(); }
74 bool checked =
false,
MythMenu *subMenu =
nullptr) :
75 m_text(
std::move(text)), m_data(QVariant::fromValue(slot)),
76 m_checked(checked), m_subMenu(subMenu) { Init(); }
79 bool checked =
false,
MythMenu *subMenu =
nullptr) :
80 m_text(
std::move(text)), m_data(QVariant::fromValue(slot)),
81 m_checked(checked), m_subMenu(subMenu) { Init(); }
84 bool checked =
false,
MythMenu *subMenu =
nullptr) :
85 m_text(
std::move(text)), m_data(QVariant::fromValue(slot)),
86 m_checked(checked), m_subMenu(subMenu) { Init(); }
87 void SetData(QVariant data) { m_data = std::move(data); }
91 bool m_checked {
false};
93 bool m_useSlot {
true};
104 MythMenu(QString text, QObject *retobject, QString resultid);
105 MythMenu(QString title, QString text, QObject *retobject, QString resultid);
108 void AddItemV(
const QString &title, QVariant data = 0,
MythMenu *subMenu =
nullptr,
109 bool selected =
false,
bool checked =
false);
110 void AddItem(
const QString &title) { AddItemV(title); };
113 MythMenu *subMenu =
nullptr,
bool selected =
false,
114 bool checked =
false);
116 template <
typename SLOT>
117 typename std::enable_if_t<FunctionPointerTest<SLOT>::MemberFunction>
118 AddItem(
const QString &title,
const SLOT &slot,
119 MythMenu *subMenu =
nullptr,
bool selected =
false,
120 bool checked =
false)
123 auto *item =
new MythMenuItem(title, slot2, checked, subMenu);
124 AddItem(item, selected, subMenu);
127 template <
typename SLOT>
128 typename std::enable_if_t<FunctionPointerTest<SLOT>::MemberConstFunction>
129 AddItem(
const QString &title,
const SLOT &slot,
130 MythMenu *subMenu =
nullptr,
bool selected =
false,
131 bool checked =
false)
134 auto *item =
new MythMenuItem(title, slot2, checked, subMenu);
135 AddItem(item, selected, subMenu);
138 void SetSelectedByTitle(
const QString &title);
139 void SetSelectedByData(
const QVariant& data);
143 bool IsEmpty() {
return m_menuItems.isEmpty(); }
155 int m_selectedItem {0};
172 bool fullscreen =
false,
bool osd =
false)
174 m_osdDialog(osd), m_text(
std::move(text)) {}
177 bool fullscreen =
false,
bool osd =
false)
179 m_osdDialog(osd), m_title(
std::move(title)),m_text(
std::move(text)) {}
181 bool fullscreen =
false,
bool osd =
false)
183 m_osdDialog(osd), m_menu(
menu), m_currentMenu(
menu) {}
186 bool Create(
void)
override;
190 void SetReturnEvent(QObject *retobject,
const QString &resultid);
191 void SetBackAction(
const QString &text, QVariant data);
192 void SetExitAction(
const QString &text, QVariant data);
193 void SetText(
const QString &text);
195 void AddButtonV(
const QString &title, QVariant data = 0,
196 bool newMenu =
false,
bool setCurrent =
false);
197 void AddButtonD(
const QString &title,
bool setCurrent) { AddButtonV(title, 0,
false, setCurrent); }
198 void AddButton(
const QString &title) { AddButtonV(title, 0,
false,
false); }
201 bool newMenu =
false,
bool setCurrent =
false)
203 AddButtonV(title, QVariant::fromValue(slot), newMenu, setCurrent);
207 template <
typename SLOT>
208 typename std::enable_if_t<FunctionPointerTest<SLOT>::MemberFunction>
210 bool newMenu =
false,
bool setCurrent =
false)
213 AddButtonV(title, QVariant::fromValue(slot2), newMenu, setCurrent);
217 template <
typename SLOT>
218 typename std::enable_if_t<FunctionPointerTest<SLOT>::MemberConstFunction>
220 bool newMenu =
false,
bool setCurrent =
false)
223 AddButtonV(title, QVariant::fromValue(slot2), newMenu, setCurrent);
236 void Closed(QString,
int);
239 void SendEvent(
int res,
const QString& text =
"",
const QVariant& data = 0);
240 void updateMenu(
void);
245 QObject *m_retObject {
nullptr};
247 bool m_useSlots {
false};
249 bool m_fullscreen {
false};
250 bool m_osdDialog {
false};
255 QVariant m_backdata {0};
257 QVariant m_exitdata {0};
278 bool showCancel =
true)
280 m_message(
std::move(message)), m_showCancel(showCancel) {}
282 bool Create(
void)
override;
283 void SetReturnEvent(QObject *retobject,
const QString &resultid);
284 void SetData(QVariant data) { m_resultData = std::move(data); }
285 void SetMessage(
const QString &message);
290 void haveResult(
bool);
293 void sendResult(
bool ok);
296 bool m_showCancel {
true};
297 QObject *m_retObject {
nullptr};
321 bool isPassword =
false,
322 QString defaultValue =
"")
324 m_message(
std::move(message)), m_defaultValue(
std::move(defaultValue)),
325 m_filter(filter), m_isPassword(isPassword) {}
327 bool Create(
void)
override;
328 void SetReturnEvent(QObject *retobject,
const QString &resultid);
331 void haveResult(QString);
338 bool m_isPassword {
false};
339 QObject *m_retObject {
nullptr};
362 bool Create(
void)
override;
363 void SetReturnEvent(QObject *retobject,
const QString &resultid);
365 void SetRange(
int low,
int high,
int step,
uint pageMultiple=5);
366 void AddSelection(
const QString& label,
int value);
367 void SetValue(
const QString & value);
368 void SetValue(
int value);
371 void haveResult(QString);
377 QObject *m_retObject {
nullptr };
416 bool matchAnywhere =
false,
417 QString defaultValue =
"")
419 m_title(
std::move(title)),
420 m_defaultValue(
std::move(defaultValue)),
421 m_list(
std::move(list)),
422 m_matchAnywhere(matchAnywhere),
425 bool Create(
void)
override;
426 void SetReturnEvent(QObject *retobject,
const QString &resultid);
429 void haveResult(QString);
440 bool m_matchAnywhere {
false };
442 QObject *m_retObject {
nullptr };
446 void slotSendResult(
void);
447 void slotUpdateList(
void);
477 kFutureDates = 0x100,
484 QDateTime startTime = QDateTime::currentDateTime(),
485 int rangeLimit = 14);
488 void SetReturnEvent(QObject *retobject,
const QString &resultid);
491 void haveResult(QDateTime time);
494 void okClicked(
void);
507 QObject *m_retObject {
nullptr };
512 template <
class OBJ,
typename FUNC>
514 FUNC slot,
bool showCancel =
false)
516 QString
LOC =
"ShowOkPopup('" + message +
"') - ";
525 LOG(VB_GENERAL, LOG_ERR,
LOC +
"no main window?");
531 LOG(VB_GENERAL, LOG_ERR,
LOC +
"no popup stack? "
532 "Is there a MythThemeBase?");
542 Qt::QueuedConnection);
548 LOG(VB_GENERAL, LOG_ERR,
LOC +
"Couldn't Create() Dialog");