MythTV  master
mythdialogbox.cpp
Go to the documentation of this file.
1 
2 #include "mythdialogbox.h"
3 
4 #include <QCoreApplication>
5 #include <QDate>
6 #include <QDateTime>
7 #include <QFileInfo>
8 #include <QString>
9 #include <QStringList>
10 #include <QTime>
11 #include <utility>
12 
13 #include "libmythbase/mythdate.h"
15 
16 #include "mythmainwindow.h"
17 #include "mythfontproperties.h"
18 #include "mythuiutils.h"
19 #include "mythuitext.h"
20 #include "mythuiimage.h"
21 #include "mythuibuttonlist.h"
22 #include "mythuibutton.h"
23 #include "mythuistatetype.h"
24 #include "mythuispinbox.h"
25 #include "mythgesture.h"
26 
28  (QEvent::Type) QEvent::registerEventType();
29 
30 // Force this class to have a vtable so that dynamic_cast works.
31 // NOLINTNEXTLINE(modernize-use-equals-default)
33 {
34 }
35 
36 MythMenu::MythMenu(QString text, QObject *retobject, QString resultid) :
37  m_text(std::move(text)), m_resultid(std::move(resultid)), m_retObject(retobject)
38 {
39  Init();
40 }
41 
42 MythMenu::MythMenu(QString title, QString text, QObject *retobject, QString resultid) :
43  m_title(std::move(title)), m_text(std::move(text)), m_resultid(std::move(resultid)),
44  m_retObject(retobject)
45 {
46  Init();
47 }
48 
50 {
51  while (!m_menuItems.isEmpty())
52  {
53  MythMenuItem *item = m_menuItems.takeFirst();
54 
55  delete item->m_subMenu;
56  delete item;
57  }
58 }
59 
60 void MythMenu::AddItemV(const QString &title, QVariant data, MythMenu *subMenu, bool selected, bool checked)
61 {
62  auto *item = new MythMenuItem(title, checked, subMenu);
63  item->SetData(std::move(data));
64  AddItem(item, selected, subMenu);
65 }
66 
67 // For non-class, static class, or lambda functions.
68 void MythMenu::AddItem(const QString &title, const MythUICallbackNMF &slot,
69  MythMenu *subMenu, bool selected, bool checked)
70 {
71  auto *item = new MythMenuItem(title, slot, checked, subMenu);
72  AddItem(item, selected, subMenu);
73 }
74 
75 void MythMenu::AddItem(MythMenuItem *item, bool selected, MythMenu *subMenu)
76 {
77  m_menuItems.append(item);
78 
79  if (selected)
80  m_selectedItem = m_menuItems.indexOf(item);
81 
82  if (subMenu)
83  subMenu->SetParent(this);
84 }
85 
86 void MythMenu::SetSelectedByTitle(const QString& title)
87 {
88  for (auto *item : qAsConst(m_menuItems))
89  {
90  if (!item)
91  continue;
92 
93  if (item->m_text == title)
94  {
95  m_selectedItem = m_menuItems.indexOf(item);
96  break;
97  }
98  }
99 }
100 
101 void MythMenu::SetSelectedByData(const QVariant& data)
102 {
103  for (auto *item : qAsConst(m_menuItems))
104  {
105  if (!item)
106  continue;
107 
108  if (item->m_data == data)
109  {
110  m_selectedItem = m_menuItems.indexOf(item);
111  break;
112  }
113  }
114 }
115 
117 
119 {
120  if (m_menu)
121  {
122  delete m_menu;
123  m_menu = nullptr;
124  }
125 }
126 
128 {
129  QString windowName = (m_fullscreen ? "MythDialogBox" : "MythPopupBox");
130 
131  if (m_osdDialog)
132  {
133  if (!XMLParseBase::LoadWindowFromXML("osd.xml", windowName, this))
134  return false;
135  }
136  else if (!CopyWindowFromBase(windowName, this))
137  return false;
138 
139  bool err = false;
140  if (m_fullscreen)
141  UIUtilW::Assign(this, m_titlearea, "title");
142  UIUtilE::Assign(this, m_textarea, "messagearea", &err);
143  UIUtilE::Assign(this, m_buttonList, "list", &err);
144 
145  if (err)
146  {
147  LOG(VB_GENERAL, LOG_ERR, QString("Cannot load screen '%1'")
148  .arg(windowName));
149  return false;
150  }
151 
152  if (m_titlearea)
155 
156  BuildFocusList();
157 
158  if (m_menu)
159  updateMenu();
160 
162  this, &MythDialogBox::Select);
163 
164  return true;
165 }
166 
168 {
169  m_menu = menu;
171  updateMenu();
172 }
173 
175 {
176  if (!m_buttonList)
177  {
178  LOG(VB_GENERAL, LOG_ERR, "UpdateMenu() called before we have a button list to update!");
179  return;
180  }
181 
182  if (!m_currentMenu)
183  return;
184 
185  if (m_titlearea)
187 
189 
190  m_buttonList->Reset();
191 
192  for (int x = 0; x < m_currentMenu->m_menuItems.count(); x++)
193  {
194  MythMenuItem *menuItem = m_currentMenu->m_menuItems.at(x);
195  auto *button = new MythUIButtonListItem(m_buttonList, menuItem->m_text);
196  button->SetData(QVariant::fromValue(menuItem));
197  button->setDrawArrow((menuItem->m_subMenu != nullptr));
198 
199  if (m_currentMenu->m_selectedItem == x)
200  m_buttonList->SetItemCurrent(button);
201  }
202  // GetVisibleCount here makes sure that the dialog size is
203  // calculated correctly
206 }
207 
209 {
210  if (!item)
211  return;
212 
213  if (m_currentMenu)
214  {
215  auto *menuItem = item->GetData().value< MythMenuItem * >();
216  if (menuItem == nullptr)
217  return;
218  if (menuItem->m_subMenu)
219  {
221  m_currentMenu = menuItem->m_subMenu;
222  updateMenu();
223  return;
224  }
225 
226  if (menuItem->m_useSlot)
227  {
228  const char *slot = menuItem->m_data.value < const char * >();
229  if (slot)
230  {
231  connect(this, SIGNAL(Selected()), m_currentMenu->m_retObject, slot,
232  Qt::QueuedConnection);
233  emit Selected();
234  }
235  else if (menuItem->m_data.value<MythUICallbackNMF>())
236  {
238  menuItem->m_data.value<MythUICallbackNMF>(),
239  Qt::QueuedConnection);
240  emit Selected();
241  }
242  else if (menuItem->m_data.value<MythUICallbackMF>())
243  {
245  menuItem->m_data.value<MythUICallbackMF>(),
246  Qt::QueuedConnection);
247  emit Selected();
248  }
249  else if (menuItem->m_data.value<MythUICallbackMFc>())
250  {
252  menuItem->m_data.value<MythUICallbackMFc>(),
253  Qt::QueuedConnection);
254  emit Selected();
255  }
256  }
257 
258  SendEvent(m_buttonList->GetItemPos(item), item->GetText(), menuItem->m_data);
259  }
260  else
261  {
262  if (m_useSlots)
263  {
264  const char *slot = item->GetData().value<const char *>();
265  if (slot)
266  {
267  connect(this, SIGNAL(Selected()), m_retObject, slot,
268  Qt::QueuedConnection);
269  emit Selected();
270  }
271  else if (item->GetData().value<MythUICallbackNMF>())
272  {
273  connect(this, &MythDialogBox::Selected, m_retObject,
274  item->GetData().value<MythUICallbackNMF>(),
275  Qt::QueuedConnection);
276  emit Selected();
277  }
278  else if (item->GetData().value<MythUICallbackMF>())
279  {
280  connect(this, &MythDialogBox::Selected, m_retObject,
281  item->GetData().value<MythUICallbackMF>(),
282  Qt::QueuedConnection);
283  emit Selected();
284  }
285  else if (item->GetData().value<MythUICallbackMFc>())
286  {
287  connect(this, &MythDialogBox::Selected, m_retObject,
288  item->GetData().value<MythUICallbackMFc>(),
289  Qt::QueuedConnection);
290  emit Selected();
291  }
292  }
293 
294  SendEvent(m_buttonList->GetItemPos(item), item->GetText(), item->GetData());
295  }
296 
297  if (m_screenStack)
298  m_screenStack->PopScreen(nullptr, false);
299 }
300 
301 void MythDialogBox::SetReturnEvent(QObject *retobject,
302  const QString &resultid)
303 {
304  m_retObject = retobject;
305  m_id = resultid;
306 }
307 
308 void MythDialogBox::SetBackAction(const QString &text, QVariant data)
309 {
310  m_backtext = text;
311  m_backdata = std::move(data);
312 }
313 
314 void MythDialogBox::SetExitAction(const QString &text, QVariant data)
315 {
316  m_exittext = text;
317  m_exitdata = std::move(data);
318 }
319 
320 void MythDialogBox::SetText(const QString &text)
321 {
322  if (m_textarea)
323  m_textarea->SetText(text);
324 }
325 
326 void MythDialogBox::AddButtonV(const QString &title, QVariant data, bool newMenu,
327  bool setCurrent)
328 {
329  auto *button = new MythUIButtonListItem(m_buttonList, title);
330  button->SetData(std::move(data));
331  button->setDrawArrow(newMenu);
332 
333  if (setCurrent)
334  m_buttonList->SetItemCurrent(button);
335  // GetVisibleCount here makes sure that the dialog size is
336  // calculated correctly
338 }
339 
340 bool MythDialogBox::inputMethodEvent(QInputMethodEvent *event)
341 {
342  return GetFocusWidget()->inputMethodEvent(event);
343 }
344 
345 bool MythDialogBox::keyPressEvent(QKeyEvent *event)
346 {
347  if (GetFocusWidget()->keyPressEvent(event))
348  return true;
349 
350  bool handled = false;
351  QStringList actions;
352  handled = GetMythMainWindow()->TranslateKeyPress("qt", event, actions);
353 
354  for (int i = 0; i < actions.size() && !handled; i++)
355  {
356  QString action = actions[i];
357  handled = true;
358 
359  if (action == "ESCAPE")
360  {
362  if (m_exitdata == 0 && m_exittext.isEmpty())
363  Close();
364  }
365  else if ((action == "LEFT" &&
367  (action == "UP" &&
369  {
371  {
373  updateMenu();
374  return true;
375  }
376 
378  Close();
379  }
380  else if (action == "MENU")
381  {
382  SendEvent(-2);
383  Close();
384  }
385  else if ((action == "RIGHT" &&
387  (action == "DOWN" &&
389  {
391  }
392  else
393  handled = false;
394  }
395 
396  if (!handled && MythScreenType::keyPressEvent(event))
397  handled = true;
398 
399  return handled;
400 }
401 
403 {
404  bool handled = false;
405  if (event->GetGesture() == MythGestureEvent::Click)
406  {
407  switch (event->GetButton())
408  {
409  case Qt::RightButton:
410  SendEvent(-2);
411  Close();
412  handled = true;
413  break;
414  default :
415  break;
416  }
417 
418  }
419 
420  if (!handled && MythScreenType::gestureEvent(event))
421  handled = true;
422 
423  return handled;
424 }
425 
426 void MythDialogBox::SendEvent(int res, const QString& text, const QVariant& data)
427 {
428  if (m_currentMenu)
429  {
430  emit Closed(m_currentMenu->m_resultid, res);
431 
433  return;
434 
435  auto *dce = new DialogCompletionEvent(m_currentMenu->m_resultid, res, text, data);
436  QCoreApplication::postEvent(m_currentMenu->m_retObject, dce);
437  }
438  else
439  {
440  emit Closed(m_id, res);
441 
442  if (!m_retObject)
443  return;
444 
445  auto *dce = new DialogCompletionEvent(m_id, res, text, data);
446  QCoreApplication::postEvent(m_retObject, dce);
447  }
448 }
449 
451 
453 {
454  if (!CopyWindowFromBase("MythConfirmationDialog", this))
455  return false;
456 
457  MythUIButton *okButton = nullptr;
458  MythUIButton *cancelButton = nullptr;
459 
460  bool err = false;
461  UIUtilE::Assign(this, m_messageText, "message", &err);
462  UIUtilE::Assign(this, okButton, "ok", &err);
463  UIUtilE::Assign(this, cancelButton, "cancel", &err);
464 
465  if (err)
466  {
467  LOG(VB_GENERAL, LOG_ERR, "Cannot load screen 'MythConfirmationDialog'");
468  return false;
469  }
470 
471  if (m_showCancel)
472  {
473  connect(cancelButton, &MythUIButton::Clicked, this, &MythConfirmationDialog::Cancel);
474  }
475  else
476  cancelButton->SetVisible(false);
477 
478  connect(okButton, &MythUIButton::Clicked, this, &MythConfirmationDialog::Confirm);
479 
481 
482  BuildFocusList();
483 
484  if (m_showCancel)
485  SetFocusWidget(cancelButton);
486  else
487  SetFocusWidget(okButton);
488 
489  return true;
490 }
491 
493 {
494  if (GetFocusWidget()->keyPressEvent(event))
495  return true;
496 
497  bool handled = false;
498  QStringList actions;
499  handled = GetMythMainWindow()->TranslateKeyPress("qt", event, actions);
500 
501  for (int i = 0; i < actions.size() && !handled; i++)
502  {
503  QString action = actions[i];
504  handled = true;
505 
506  if (action == "ESCAPE")
507  sendResult(false);
508  else
509  handled = false;
510  }
511 
512  if (!handled && MythScreenType::keyPressEvent(event))
513  handled = true;
514 
515  return handled;
516 }
517 
518 void MythConfirmationDialog::SetMessage(const QString &message)
519 {
520  m_message = message;
521  if (m_messageText)
523 }
524 
526  const QString &resultid)
527 {
528  m_retObject = retobject;
529  m_id = resultid;
530 }
531 
533 {
534  sendResult(true);
535 }
536 
538 {
539  sendResult(false);
540 }
541 
543 {
544  emit haveResult(ok);
545 
546  if (m_retObject)
547  {
548  int res = 0;
549  if (ok)
550  res = 1;
551 
552  auto *dce = new DialogCompletionEvent(m_id, res, "", m_resultData);
553  QCoreApplication::postEvent(m_retObject, dce);
554  m_retObject = nullptr;
555  }
556 
557  Close();
558 }
559 
563 MythConfirmationDialog *ShowOkPopup(const QString &message, bool showCancel)
564 {
565  QString LOC = "ShowOkPopup('" + message + "') - ";
566  MythScreenStack *stk = nullptr;
567 
569 
570  if (win)
571  stk = win->GetStack("popup stack");
572  else
573  {
574  LOG(VB_GENERAL, LOG_ERR, LOC + "no main window?");
575  return nullptr;
576  }
577 
578  if (!stk)
579  {
580  LOG(VB_GENERAL, LOG_ERR, LOC + "no popup stack? "
581  "Is there a MythThemeBase?");
582  return nullptr;
583  }
584 
585  auto *pop = new MythConfirmationDialog(stk, message, showCancel);
586  if (pop->Create())
587  {
588  stk->AddScreen(pop);
589  }
590  else
591  {
592  delete pop;
593  pop = nullptr;
594  LOG(VB_GENERAL, LOG_ERR, LOC + "Couldn't Create() Dialog");
595  }
596 
597  return pop;
598 }
599 
601 {
602  if (!dialog)
603  return true; // No dialog is treated as user pressing OK
604 
605  // Local event loop processes events whilst we wait
606  QEventLoop block;
607 
608  // Quit when dialog exits
609  QObject::connect(dialog, &MythConfirmationDialog::haveResult,
610  &block, [&block](bool result)
611  { block.exit(result ? 1 : 0); });
612 
613  // Block and return dialog result
614  return block.exec() != 0;
615 }
616 
618 
620 {
621  if (!CopyWindowFromBase("MythTextInputDialog", this))
622  return false;
623 
624  MythUIText *messageText = nullptr;
625  MythUIButton *okButton = nullptr;
626  MythUIButton *cancelButton = nullptr;
627 
628  bool err = false;
629  UIUtilE::Assign(this, m_textEdit, "input", &err);
630  UIUtilE::Assign(this, messageText, "message", &err);
631  UIUtilE::Assign(this, okButton, "ok", &err);
632  UIUtilW::Assign(this, cancelButton, "cancel");
633 
634  if (err)
635  {
636  LOG(VB_GENERAL, LOG_ERR, "Cannot load screen 'MythTextInputDialog'");
637  return false;
638  }
639 
640  if (cancelButton)
641  connect(cancelButton, &MythUIButton::Clicked, this, &MythScreenType::Close);
642  connect(okButton, &MythUIButton::Clicked, this, &MythTextInputDialog::sendResult);
643 
647 
648  messageText->SetText(m_message);
649 
650  BuildFocusList();
651 
652  return true;
653 }
654 
655 void MythTextInputDialog::SetReturnEvent(QObject *retobject,
656  const QString &resultid)
657 {
658  m_retObject = retobject;
659  m_id = resultid;
660 }
661 
663 {
664  QString inputString = m_textEdit->GetText();
665  emit haveResult(inputString);
666 
667  if (m_retObject)
668  {
669  auto *dce = new DialogCompletionEvent(m_id, 0, inputString, "");
670  QCoreApplication::postEvent(m_retObject, dce);
671  }
672 
673  Close();
674 }
675 
677 
679  QString message)
680  : MythScreenType(parent, "mythspinboxpopup"),
681  m_message(std::move(message)),
682  m_id("")
683 {
684 }
685 
687 {
688  if (!CopyWindowFromBase("MythSpinBoxDialog", this))
689  return false;
690 
691  MythUIText *messageText = nullptr;
692  MythUIButton *okButton = nullptr;
693  MythUIButton *cancelButton = nullptr;
694 
695  bool err = false;
696  UIUtilE::Assign(this, m_spinBox, "input", &err);
697  UIUtilE::Assign(this, messageText, "message", &err);
698  UIUtilE::Assign(this, okButton, "ok", &err);
699  UIUtilW::Assign(this, cancelButton, "cancel");
700 
701  if (err)
702  {
703  LOG(VB_GENERAL, LOG_ERR, "Cannot load screen 'MythSpinBoxDialog'");
704  return false;
705  }
706 
707  if (cancelButton)
708  connect(cancelButton, &MythUIButton::Clicked, this, &MythScreenType::Close);
709  connect(okButton, &MythUIButton::Clicked, this, &MythSpinBoxDialog::sendResult);
710 
711  messageText->SetText(m_message);
712  BuildFocusList();
713 
714  return true;
715 }
716 
721 void MythSpinBoxDialog::SetRange(int low, int high, int step, uint pageMultiple)
722 {
723  m_spinBox->SetRange(low, high, step, pageMultiple);
724 }
725 
729 void MythSpinBoxDialog::AddSelection(const QString& label, int value)
730 {
731  m_spinBox->AddSelection(value, label);
732 }
733 
738 void MythSpinBoxDialog::SetValue (const QString & value)
739 {
740  m_spinBox->SetValue(value);
741 }
742 
747 {
748  m_spinBox->SetValue(value);
749 }
750 
751 void MythSpinBoxDialog::SetReturnEvent(QObject *retobject,
752  const QString &resultid)
753 {
754  m_retObject = retobject;
755  m_id = resultid;
756 }
757 
759 {
760  QString inputString = m_spinBox->GetValue();
761  emit haveResult(inputString);
762 
763  if (m_retObject)
764  {
765  auto *dce = new DialogCompletionEvent(m_id, 0, inputString, "");
766  QCoreApplication::postEvent(m_retObject, dce);
767  }
768 
769  Close();
770 }
771 
773 
774 
790  const QString &title,
791  const QStringList &list,
792  bool matchAnywhere,
793  const QString &defaultValue)
794  : MythScreenType(parent, "mythsearchdialogpopup")
795 {
796  m_list = list;
797  m_matchAnywhere = matchAnywhere;
798  m_title = title;
799  m_defaultValue = defaultValue;
800 
801  m_titleText = nullptr;
802  m_matchesText = nullptr;
803  m_textEdit = nullptr;
804  m_itemList = nullptr;
805 
806  m_id = "";
807  m_retObject = nullptr;
808 }
809 
811 {
812  if (!CopyWindowFromBase("MythSearchDialog", this))
813  return false;
814 
815  MythUIButton *okButton = nullptr;
816  MythUIButton *cancelButton = nullptr;
817 
818  bool err = false;
819  UIUtilE::Assign(this, m_textEdit, "input", &err);
820  UIUtilE::Assign(this, m_titleText, "title", &err);
821  UIUtilW::Assign(this, m_matchesText, "matches");
822  UIUtilE::Assign(this, m_itemList, "itemlist", &err);
823  UIUtilE::Assign(this, okButton, "ok", &err);
824  UIUtilW::Assign(this, cancelButton, "cancel");
825 
826  if (err)
827  {
828  LOG(VB_GENERAL, LOG_ERR, "Cannot load screen 'MythSearchDialog'");
829  return false;
830  }
831 
832  if (cancelButton)
833  connect(cancelButton, &MythUIButton::Clicked, this, &MythScreenType::Close);
834 
835  connect(okButton, &MythUIButton::Clicked, this, &MythUISearchDialog::slotSendResult);
836 
839 
842 
844  if (m_matchesText)
845  m_matchesText->SetText(tr("%n match(es)", "", 0));
846 
847  BuildFocusList();
848 
849  slotUpdateList();
850 
851  return true;
852 }
853 
854 void MythUISearchDialog::SetReturnEvent(QObject *retobject,
855  const QString &resultid)
856 {
857  m_retObject = retobject;
858  m_id = resultid;
859 }
860 
862 {
863  if (!m_itemList->GetItemCurrent())
864  return;
865 
866  QString result = m_itemList->GetValue();
867 
868  emit haveResult(result);
869 
870  if (m_retObject)
871  {
872  auto *dce = new DialogCompletionEvent(m_id, 0, result, "");
873  QCoreApplication::postEvent(m_retObject, dce);
874  }
875 
876  Close();
877 }
878 
880 {
881  m_itemList->Reset();
882 
883  for (const QString& item : qAsConst(m_list))
884  {
885  if (m_matchAnywhere)
886  {
887  if (!item.contains(m_textEdit->GetText(), Qt::CaseInsensitive))
888  continue;
889  }
890  else
891  {
892  if (!item.startsWith(m_textEdit->GetText(), Qt::CaseInsensitive))
893  continue;
894  }
895 
896  // add item to list
897  new MythUIButtonListItem(m_itemList, item, nullptr, false);
898  }
899 
901 
902  if (m_matchesText)
903  m_matchesText->SetText(tr("%n match(es)", "", 0));
904 }
905 
907 
909  QString message,
910  int resolutionFlags,
911  QDateTime startTime,
912  int rangeLimit)
913  : MythScreenType(parent, "timepopup"),
914  m_message(std::move(message)), m_startTime(std::move(startTime)),
915  m_resolution(resolutionFlags), m_rangeLimit(rangeLimit)
916 {
917 }
918 
920 {
921  if (!CopyWindowFromBase("MythTimeInputDialog", this))
922  return false;
923 
924  MythUIText *messageText = nullptr;
925  MythUIButton *okButton = nullptr;
926 
927  bool err = false;
928  UIUtilE::Assign(this, messageText, "message", &err);
929  UIUtilE::Assign(this, m_dateList, "dates", &err);
930  UIUtilE::Assign(this, m_timeList, "times", &err);
931  UIUtilE::Assign(this, okButton, "ok", &err);
932 
933  if (err)
934  {
935  LOG(VB_GENERAL, LOG_ERR, "Cannot load screen 'MythTimeInputDialog'");
936  return false;
937  }
938 
939  m_dateList->SetVisible(false);
940  m_timeList->SetVisible(false);
941 
942  // Date
943  if (kNoDate != (m_resolution & 0xF))
944  {
945  const QDate startdate(m_startTime.toLocalTime().date());
946  QDate date(startdate);
947 
948  int limit = 0;
950  {
951  limit += m_rangeLimit;
952  }
953  if (m_resolution & kPastDates)
954  {
955  limit += m_rangeLimit;
956  date = date.addDays(0-m_rangeLimit);
957  }
958 
959  QString text;
960  bool selected = false;
961  for (int x = 0; x <= limit; x++)
962  {
963  selected = false;
964  if (m_resolution & kDay)
965  {
966  date = date.addDays(1);
968  if (m_rangeLimit >= 356)
969  flags |= MythDate::kAddYear;
970  text = MythDate::toString(date, flags);
971 
972  if (date == startdate)
973  selected = true;
974  }
975  else if (m_resolution & kMonth)
976  {
977  date = date.addMonths(1);
978  text = date.toString("MMM yyyy");
979 
980  if ((date.month() == startdate.month()) &&
981  (date.year() == startdate.year()))
982  selected = true;
983  }
984  else if (m_resolution & kYear)
985  {
986  date = date.addYears(1);
987  text = date.toString("yyyy");
988  if (date.year() == startdate.year())
989  selected = true;
990  }
991 
992  auto *item = new MythUIButtonListItem(m_dateList, text, nullptr, false);
993  item->SetData(QVariant(date));
994 
995  if (selected)
996  m_dateList->SetItemCurrent(item);
997  }
998  m_dateList->SetVisible(true);
999  }
1000 
1001  // Time
1002  if (kNoTime != (m_resolution & 0xF0))
1003  {
1004  QDate startdate(m_startTime.toLocalTime().date());
1005  QTime starttime(m_startTime.toLocalTime().time());
1006  QTime time(0,0,0);
1007  QString text;
1008  bool selected = false;
1009 
1010  int limit = (m_resolution & kMinutes) ? (60 * 24) : 24;
1011 
1012  for (int x = 0; x < limit; x++)
1013  {
1014  selected = false;
1015  if (m_resolution & kMinutes)
1016  {
1017  time = time.addSecs(60);
1018  QDateTime dt = QDateTime(startdate, time, Qt::LocalTime);
1019  text = MythDate::toString(dt, MythDate::kTime);
1020 
1021  if (time == starttime)
1022  selected = true;
1023  }
1024  else if (m_resolution & kHours)
1025  {
1026  time = time.addSecs(60*60);
1027  text = time.toString("hh:00");
1028 
1029  if (time.hour() == starttime.hour())
1030  selected = true;
1031  }
1032 
1033  auto *item = new MythUIButtonListItem(m_timeList, text, nullptr, false);
1034  item->SetData(QVariant(time));
1035 
1036  if (selected)
1037  m_timeList->SetItemCurrent(item);
1038  }
1039  m_timeList->SetVisible(true);
1040  }
1041 
1042  if (messageText && !m_message.isEmpty())
1043  messageText->SetText(m_message);
1044 
1045  connect(okButton, &MythUIButton::Clicked, this, &MythTimeInputDialog::okClicked);
1046 
1047  BuildFocusList();
1048 
1049  return true;
1050 }
1051 
1052 void MythTimeInputDialog::SetReturnEvent(QObject* retobject,
1053  const QString& resultid)
1054 {
1055  m_retObject = retobject;
1056  m_id = resultid;
1057 }
1058 
1060 {
1061  QDate date = m_dateList->GetDataValue().toDate();
1062  QTime time = m_timeList->GetDataValue().toTime();
1063 
1064  QDateTime dateTime = QDateTime(date, time, Qt::LocalTime).toUTC();
1065 
1066  emit haveResult(dateTime);
1067 
1068  if (m_retObject)
1069  {
1070  QVariant data(dateTime);
1071  auto *dce = new DialogCompletionEvent(m_id, 0, "", data);
1072  QCoreApplication::postEvent(m_retObject, dce);
1073  }
1074 
1075  Close();
1076 }
MythUIButton::Clicked
void Clicked()
MythMenu::m_menuItems
QList< MythMenuItem * > m_menuItems
Definition: mythdialogbox.h:154
MythDialogBox::m_backdata
QVariant m_backdata
Definition: mythdialogbox.h:255
MythDialogBox::m_id
QString m_id
Definition: mythdialogbox.h:246
WaitFor
bool WaitFor(MythConfirmationDialog *dialog)
Blocks until confirmation dialog exits.
Definition: mythdialogbox.cpp:600
MythMainWindow::GetMainStack
MythScreenStack * GetMainStack()
Definition: mythmainwindow.cpp:315
MythDialogBox::SetReturnEvent
void SetReturnEvent(QObject *retobject, const QString &resultid)
Definition: mythdialogbox.cpp:301
MythDate::toString
QString toString(const QDateTime &raw_dt, uint format)
Returns formatted string representing the time.
Definition: mythdate.cpp:84
MythUIButtonList::GetItemCurrent
MythUIButtonListItem * GetItemCurrent() const
Definition: mythuibuttonlist.cpp:1587
MythUISearchDialog::m_title
QString m_title
Definition: mythdialogbox.h:422
MythTimeInputDialog::kHours
@ kHours
Definition: mythdialogbox.h:458
mythuitext.h
MythMenu::Init
void Init(void)
Definition: mythdialogbox.h:146
MythUIButtonList::GetLayout
LayoutType GetLayout() const
Definition: mythuibuttonlist.h:232
MythSpinBoxDialog::sendResult
void sendResult()
Definition: mythdialogbox.cpp:758
MythUIType::inputMethodEvent
virtual bool inputMethodEvent(QInputMethodEvent *event)
Input Method event handler.
Definition: mythuitype.cpp:1001
MythUISpinBox::GetValue
QString GetValue(void) const override
Definition: mythuispinbox.h:31
MythDialogBox::m_currentMenu
MythMenu * m_currentMenu
Definition: mythdialogbox.h:260
MythConfirmationDialog::Create
bool Create(void) override
Definition: mythdialogbox.cpp:452
MythUISearchDialog::m_titleText
MythUIText * m_titleText
Definition: mythdialogbox.h:419
MythSpinBoxDialog::Create
bool Create(void) override
Definition: mythdialogbox.cpp:686
MythGestureEvent::GetGesture
Gesture GetGesture() const
Definition: mythgesture.h:85
MythGestureEvent::GetButton
Qt::MouseButton GetButton() const
Definition: mythgesture.h:88
MythTimeInputDialog::m_id
QString m_id
Definition: mythdialogbox.h:493
MythConfirmationDialog::m_resultData
QVariant m_resultData
Definition: mythdialogbox.h:299
MythSpinBoxDialog::m_spinBox
MythUISpinBox * m_spinBox
Definition: mythdialogbox.h:374
MythTimeInputDialog::kDay
@ kDay
Definition: mythdialogbox.h:454
MythTextInputDialog::m_isPassword
bool m_isPassword
Definition: mythdialogbox.h:338
MythScreenType::Close
virtual void Close()
Definition: mythscreentype.cpp:386
MythDialogBox::m_titlearea
MythUIText * m_titlearea
Definition: mythdialogbox.h:242
MythDialogBox::SendEvent
void SendEvent(int res, const QString &text="", const QVariant &data=0)
Definition: mythdialogbox.cpp:426
MythUISearchDialog::slotSendResult
void slotSendResult(void)
Definition: mythdialogbox.cpp:861
MythDialogBox::m_textarea
MythUIText * m_textarea
Definition: mythdialogbox.h:243
MythSpinBoxDialog::m_id
QString m_id
Definition: mythdialogbox.h:378
MythSpinBoxDialog::MythSpinBoxDialog
MythSpinBoxDialog(MythScreenStack *parent, QString message)
Definition: mythdialogbox.cpp:678
MythMenu::SetSelectedByData
void SetSelectedByData(const QVariant &data)
Definition: mythdialogbox.cpp:101
MythTimeInputDialog::kYear
@ kYear
Definition: mythdialogbox.h:452
MythConfirmationDialog::SetReturnEvent
void SetReturnEvent(QObject *retobject, const QString &resultid)
Definition: mythdialogbox.cpp:525
MythDialogBox::m_fullscreen
bool m_fullscreen
Definition: mythdialogbox.h:249
MythTimeInputDialog::kPastDates
@ kPastDates
Definition: mythdialogbox.h:463
MythDialogBox::SetBackAction
void SetBackAction(const QString &text, QVariant data)
Definition: mythdialogbox.cpp:308
MythTextInputDialog::m_id
QString m_id
Definition: mythdialogbox.h:340
MythUISearchDialog::haveResult
void haveResult(QString)
DialogCompletionEvent::kEventType
static Type kEventType
Definition: mythdialogbox.h:57
MythUISearchDialog::SetReturnEvent
void SetReturnEvent(QObject *retobject, const QString &resultid)
Definition: mythdialogbox.cpp:854
MythMenu::AddItem
void AddItem(const QString &title)
Definition: mythdialogbox.h:110
LOC
#define LOC
Definition: audioconvert.cpp:41
MythConfirmationDialog::haveResult
void haveResult(bool)
mythdialogbox.h
MythScreenStack
Definition: mythscreenstack.h:16
MythDialogBox::m_useSlots
bool m_useSlots
Definition: mythdialogbox.h:247
MythTimeInputDialog::kMonth
@ kMonth
Definition: mythdialogbox.h:453
MythDialogBox::m_exitdata
QVariant m_exitdata
Definition: mythdialogbox.h:257
MythMenu::m_selectedItem
int m_selectedItem
Definition: mythdialogbox.h:155
MythUISearchDialog::m_matchAnywhere
bool m_matchAnywhere
Definition: mythdialogbox.h:425
MythTextInputDialog::m_message
QString m_message
Definition: mythdialogbox.h:335
MythTextInputDialog::m_defaultValue
QString m_defaultValue
Definition: mythdialogbox.h:336
LOG
#define LOG(_MASK_, _LEVEL_, _QSTRING_)
Definition: mythlogging.h:23
MythDialogBox::Closed
void Closed(QString, int)
MythScreenType
Screen in which all other widgets are contained and rendered.
Definition: mythscreentype.h:45
mythuistatetype.h
MythUITextEdit::GetText
QString GetText(void) const
Definition: mythuitextedit.h:50
MythSpinBoxDialog::AddSelection
void AddSelection(const QString &label, int value)
Definition: mythdialogbox.cpp:729
MythConfirmationDialog::sendResult
void sendResult(bool ok)
Definition: mythdialogbox.cpp:542
MythUICallbackNMF
std::function< void(void)> MythUICallbackNMF
Definition: mythuitype.h:42
MythTextInputDialog::haveResult
void haveResult(QString)
MythConfirmationDialog::m_showCancel
bool m_showCancel
Definition: mythdialogbox.h:296
MythConfirmationDialog::Confirm
void Confirm(void)
Definition: mythdialogbox.cpp:532
MythDialogBox::Select
void Select(MythUIButtonListItem *item)
Definition: mythdialogbox.cpp:208
MythUISpinBox::SetRange
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.
Definition: mythuispinbox.cpp:26
MythConfirmationDialog::m_message
QString m_message
Definition: mythdialogbox.h:295
mythuibuttonlist.h
MythUISearchDialog::Create
bool Create(void) override
Definition: mythdialogbox.cpp:810
MythTextInputDialog::m_textEdit
MythUITextEdit * m_textEdit
Definition: mythdialogbox.h:334
MythSpinBoxDialog::m_message
QString m_message
Definition: mythdialogbox.h:375
mythuiimage.h
MythConfirmationDialog::keyPressEvent
bool keyPressEvent(QKeyEvent *event) override
Key event handler.
Definition: mythdialogbox.cpp:492
MythTimeInputDialog::SetReturnEvent
void SetReturnEvent(QObject *retobject, const QString &resultid)
Definition: mythdialogbox.cpp:1052
MythMenuItem::m_subMenu
MythMenu * m_subMenu
Definition: mythdialogbox.h:92
MythMenu::SetSelectedByTitle
void SetSelectedByTitle(const QString &title)
Definition: mythdialogbox.cpp:86
MythScreenType::GetFocusWidget
MythUIType * GetFocusWidget(void) const
Definition: mythscreentype.cpp:113
MythTextInputDialog::m_filter
InputFilter m_filter
Definition: mythdialogbox.h:337
MythUIButtonList::GetItemPos
int GetItemPos(MythUIButtonListItem *item) const
Definition: mythuibuttonlist.cpp:1695
MythSpinBoxDialog::haveResult
void haveResult(QString)
mythuiutils.h
MythUIButtonListItem
Definition: mythuibuttonlist.h:41
MythUISpinBox::SetValue
void SetValue(int val) override
Definition: mythuispinbox.h:26
MythUITextEdit::SetText
void SetText(const QString &text, bool moveCursor=true)
Definition: mythuitextedit.cpp:219
MythUICallbackMF
void(QObject::*)(void) MythUICallbackMF
Definition: mythuitype.h:44
mythdate.h
MythMenuItem::m_text
QString m_text
Definition: mythdialogbox.h:89
MythDialogBox::keyPressEvent
bool keyPressEvent(QKeyEvent *event) override
Key event handler.
Definition: mythdialogbox.cpp:345
MythDialogBox::m_osdDialog
bool m_osdDialog
Definition: mythdialogbox.h:250
mythfontproperties.h
MythTimeInputDialog::kNoDate
@ kNoDate
Definition: mythdialogbox.h:451
mythlogging.h
MythTimeInputDialog::MythTimeInputDialog
MythTimeInputDialog(MythScreenStack *parent, QString message, int resolutionFlags, QDateTime startTime=QDateTime::currentDateTime(), int rangeLimit=14)
Definition: mythdialogbox.cpp:908
MythTimeInputDialog::kNoTime
@ kNoTime
Definition: mythdialogbox.h:457
MythDialogBox::m_text
QString m_text
Definition: mythdialogbox.h:252
MythDialogBox::SetMenuItems
void SetMenuItems(MythMenu *menu)
Definition: mythdialogbox.cpp:167
MythUIButtonList::itemClicked
void itemClicked(MythUIButtonListItem *item)
MythMainWindow::TranslateKeyPress
bool TranslateKeyPress(const QString &Context, QKeyEvent *Event, QStringList &Actions, bool AllowJumps=true)
Get a list of actions for a keypress in the given context.
Definition: mythmainwindow.cpp:1104
MythUIButtonList::GetCurrentPos
int GetCurrentPos() const
Definition: mythuibuttonlist.h:238
MythDialogBox::m_buttonList
MythUIButtonList * m_buttonList
Definition: mythdialogbox.h:244
MythScreenType::SetFocusWidget
bool SetFocusWidget(MythUIType *widget=nullptr)
Definition: mythscreentype.cpp:118
MythDialogBox::SetExitAction
void SetExitAction(const QString &text, QVariant data)
Definition: mythdialogbox.cpp:314
menu
static MythThemedMenu * menu
Definition: mythtv-setup.cpp:57
MythTimeInputDialog::m_rangeLimit
int m_rangeLimit
Definition: mythdialogbox.h:485
MythTimeInputDialog::m_timeList
MythUIButtonList * m_timeList
Definition: mythdialogbox.h:490
MythUISearchDialog::MythUISearchDialog
MythUISearchDialog(MythScreenStack *parent, const QString &title, const QStringList &list, bool matchAnywhere=false, const QString &defaultValue="")
the classes constructor
Definition: mythdialogbox.cpp:789
MythDialogBox::Create
bool Create(void) override
Definition: mythdialogbox.cpp:127
MythDialogBox::SetText
void SetText(const QString &text)
Definition: mythdialogbox.cpp:320
MythScreenType::BuildFocusList
void BuildFocusList(void)
Definition: mythscreentype.cpp:206
MythTimeInputDialog::okClicked
void okClicked(void)
Definition: mythdialogbox.cpp:1059
XMLParseBase::CopyWindowFromBase
static bool CopyWindowFromBase(const QString &windowname, MythScreenType *win)
Definition: xmlparsebase.cpp:920
MythMenu::m_parentMenu
MythMenu * m_parentMenu
Definition: mythdialogbox.h:149
MythUIButton
A single button widget.
Definition: mythuibutton.h:21
MythMenuItem
Definition: mythdialogbox.h:67
MythTimeInputDialog::kMinutes
@ kMinutes
Definition: mythdialogbox.h:459
MythTextInputDialog::m_retObject
QObject * m_retObject
Definition: mythdialogbox.h:339
MythDialogBox::gestureEvent
bool gestureEvent(MythGestureEvent *event) override
Mouse click/movement handler, receives mouse gesture events from the QCoreApplication event loop.
Definition: mythdialogbox.cpp:402
MythUIButtonList::GetDataValue
QVariant GetDataValue() const
Definition: mythuibuttonlist.cpp:1616
MythGestureEvent::Click
@ Click
Definition: mythgesture.h:77
MythUITextEdit::SetPassword
void SetPassword(bool isPassword)
Definition: mythuitextedit.h:53
MythTimeInputDialog::m_dateList
MythUIButtonList * m_dateList
Definition: mythdialogbox.h:489
MythMenu::MythMenu
MythMenu(QString text, QObject *retobject, QString resultid)
Definition: mythdialogbox.cpp:36
MythSpinBoxDialog::m_retObject
QObject * m_retObject
Definition: mythdialogbox.h:377
MythTimeInputDialog::haveResult
void haveResult(QDateTime time)
MythUITextEdit::SetFilter
void SetFilter(InputFilter filter)
Definition: mythuitextedit.h:52
MythUIButtonListItem::GetData
QVariant GetData()
Definition: mythuibuttonlist.cpp:3665
uint
unsigned int uint
Definition: compat.h:79
MythUIButtonList::GetVisibleCount
int GetVisibleCount()
Definition: mythuibuttonlist.cpp:1657
MythSpinBoxDialog::SetValue
void SetValue(const QString &value)
Can be called only after MythSpinBoxDialog::Create() return successfully The range need to be set bef...
Definition: mythdialogbox.cpp:738
mythgesture.h
A C++ ripoff of the stroke library for MythTV.
UIUtilDisp::Assign
static bool Assign(ContainerType *container, UIType *&item, const QString &name, bool *err=nullptr)
Definition: mythuiutils.h:27
MythMenu::m_text
QString m_text
Definition: mythdialogbox.h:151
MythUISearchDialog::m_textEdit
MythUITextEdit * m_textEdit
Definition: mythdialogbox.h:418
MythMenu::m_resultid
QString m_resultid
Definition: mythdialogbox.h:152
MythMenu::SetParent
void SetParent(MythMenu *parent)
Definition: mythdialogbox.h:141
MythDate::kSimplify
@ kSimplify
Do Today/Yesterday/Tomorrow transform.
Definition: mythdate.h:26
MythDialogBox::inputMethodEvent
bool inputMethodEvent(QInputMethodEvent *event) override
Input Method event handler.
Definition: mythdialogbox.cpp:340
MythUIButtonListItem::GetText
QString GetText(const QString &name="") const
Definition: mythuibuttonlist.cpp:3315
mythuispinbox.h
MythDialogBox::m_title
QString m_title
Definition: mythdialogbox.h:251
MythDialogBox::AddButtonV
void AddButtonV(const QString &title, QVariant data=0, bool newMenu=false, bool setCurrent=false)
Definition: mythdialogbox.cpp:326
MythSpinBoxDialog::SetRange
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.
Definition: mythdialogbox.cpp:721
MythMenu
Definition: mythdialogbox.h:99
MythDialogBox::Selected
void Selected()
MythUISearchDialog::m_defaultValue
QString m_defaultValue
Definition: mythdialogbox.h:423
MythTimeInputDialog::m_startTime
QDateTime m_startTime
Definition: mythdialogbox.h:483
MythUIText
All purpose text widget, displays a text string.
Definition: mythuitext.h:28
MythScreenType::keyPressEvent
bool keyPressEvent(QKeyEvent *event) override
Key event handler.
Definition: mythscreentype.cpp:404
MythMenu::m_title
QString m_title
Definition: mythdialogbox.h:150
MythUISearchDialog::slotUpdateList
void slotUpdateList(void)
Definition: mythdialogbox.cpp:879
MythDate::kAddYear
@ kAddYear
Add year to string if not included.
Definition: mythdate.h:25
MythConfirmationDialog
Dialog asking for user confirmation. Ok and optional Cancel button.
Definition: mythdialogbox.h:272
MythTimeInputDialog::m_resolution
int m_resolution
Definition: mythdialogbox.h:484
MythUIButtonList::LayoutVertical
@ LayoutVertical
Definition: mythuibuttonlist.h:207
MythTextInputDialog::Create
bool Create(void) override
Definition: mythdialogbox.cpp:619
XMLParseBase::LoadWindowFromXML
static bool LoadWindowFromXML(const QString &xmlfile, const QString &windowname, MythUIType *parent)
Definition: xmlparsebase.cpp:695
MythUISearchDialog::m_retObject
QObject * m_retObject
Definition: mythdialogbox.h:427
std
Definition: mythchrono.h:23
MythConfirmationDialog::m_messageText
MythUIText * m_messageText
Definition: mythdialogbox.h:294
DialogCompletionEvent
Event dispatched from MythUI modal dialogs to a listening class containing a result of some form.
Definition: mythdialogbox.h:41
MythUISearchDialog::m_itemList
MythUIButtonList * m_itemList
Definition: mythdialogbox.h:417
MythTimeInputDialog::Create
bool Create() override
Definition: mythdialogbox.cpp:919
MythConfirmationDialog::m_retObject
QObject * m_retObject
Definition: mythdialogbox.h:297
MythUIButtonList::GetValue
virtual QString GetValue() const
Definition: mythuibuttonlist.cpp:1606
MythUIText::SetText
virtual void SetText(const QString &text)
Definition: mythuitext.cpp:132
MythUIType::SetVisible
virtual void SetVisible(bool visible)
Definition: mythuitype.cpp:1108
MythTextInputDialog::SetReturnEvent
void SetReturnEvent(QObject *retobject, const QString &resultid)
Definition: mythdialogbox.cpp:655
MythScreenStack::PopScreen
virtual void PopScreen(MythScreenType *screen=nullptr, bool allowFade=true, bool deleteScreen=true)
Definition: mythscreenstack.cpp:84
DialogCompletionEvent::~DialogCompletionEvent
~DialogCompletionEvent() override
Definition: mythdialogbox.cpp:32
MythConfirmationDialog::m_id
QString m_id
Definition: mythdialogbox.h:298
MythUIButtonList::Reset
void Reset() override
Reset the widget to it's original state, should not reset changes made by the theme.
Definition: mythuibuttonlist.cpp:116
GetMythMainWindow
MythMainWindow * GetMythMainWindow(void)
Definition: mythmainwindow.cpp:102
MythUISearchDialog::m_list
QStringList m_list
Definition: mythdialogbox.h:424
MythTimeInputDialog::m_retObject
QObject * m_retObject
Definition: mythdialogbox.h:492
MythUISearchDialog::m_matchesText
MythUIText * m_matchesText
Definition: mythdialogbox.h:420
MythDialogBox::m_backtext
QString m_backtext
Definition: mythdialogbox.h:254
MythUIButtonList::SetItemCurrent
void SetItemCurrent(MythUIButtonListItem *item)
Definition: mythuibuttonlist.cpp:1554
MythSpinBoxDialog::SetReturnEvent
void SetReturnEvent(QObject *retobject, const QString &resultid)
Definition: mythdialogbox.cpp:751
build_compdb.action
action
Definition: build_compdb.py:9
MythMenu::~MythMenu
~MythMenu(void)
Definition: mythdialogbox.cpp:49
MythConfirmationDialog::SetMessage
void SetMessage(const QString &message)
Definition: mythdialogbox.cpp:518
mythuibutton.h
MythScreenType::gestureEvent
bool gestureEvent(MythGestureEvent *event) override
Mouse click/movement handler, receives mouse gesture events from the QCoreApplication event loop.
Definition: mythscreentype.cpp:446
MythMainWindow::GetStack
MythScreenStack * GetStack(const QString &Stackname)
Definition: mythmainwindow.cpp:320
MythDate::kDateFull
@ kDateFull
Default local time.
Definition: mythdate.h:19
MythUITextEdit::valueChanged
void valueChanged()
MythTimeInputDialog::kFutureDates
@ kFutureDates
Definition: mythdialogbox.h:462
MythMenu::m_retObject
QObject * m_retObject
Definition: mythdialogbox.h:153
MythScreenType::m_screenStack
MythScreenStack * m_screenStack
Definition: mythscreentype.h:130
MythGestureEvent
A custom event that represents a mouse gesture.
Definition: mythgesture.h:39
MythDialogBox::~MythDialogBox
~MythDialogBox(void) override
Definition: mythdialogbox.cpp:118
MythUICallbackMFc
void(QObject::*)(void) const MythUICallbackMFc
Definition: mythuitype.h:45
MythDate::kTime
@ kTime
Default local time.
Definition: mythdate.h:22
MythUIButtonList::LayoutHorizontal
@ LayoutHorizontal
Definition: mythuibuttonlist.h:207
MythDialogBox::updateMenu
void updateMenu(void)
Definition: mythdialogbox.cpp:174
mythmainwindow.h
MythScreenStack::AddScreen
virtual void AddScreen(MythScreenType *screen, bool allowFade=true)
Definition: mythscreenstack.cpp:50
MythUIType::SetRedraw
void SetRedraw(void)
Definition: mythuitype.cpp:308
MythDialogBox::m_exittext
QString m_exittext
Definition: mythdialogbox.h:256
MythUISpinBox::AddSelection
void AddSelection(int value, const QString &label="")
Add a special label for a value of the spinbox, it does not need to be in the range.
Definition: mythuispinbox.cpp:96
ShowOkPopup
MythConfirmationDialog * ShowOkPopup(const QString &message, bool showCancel)
Non-blocking version of MythPopupBox::showOkPopup()
Definition: mythdialogbox.cpp:563
MythTimeInputDialog::m_message
QString m_message
Definition: mythdialogbox.h:482
MythUISearchDialog::m_id
QString m_id
Definition: mythdialogbox.h:428
MythConfirmationDialog::Cancel
void Cancel()
Definition: mythdialogbox.cpp:537
MythMainWindow
Definition: mythmainwindow.h:35
MythTextInputDialog::sendResult
void sendResult()
Definition: mythdialogbox.cpp:662
MythMenu::AddItemV
void AddItemV(const QString &title, QVariant data=0, MythMenu *subMenu=nullptr, bool selected=false, bool checked=false)
Definition: mythdialogbox.cpp:60
MythDialogBox::m_retObject
QObject * m_retObject
Definition: mythdialogbox.h:245
MythScreenStack::GetTopScreen
virtual MythScreenType * GetTopScreen(void) const
Definition: mythscreenstack.cpp:180
MythDialogBox::m_menu
MythMenu * m_menu
Definition: mythdialogbox.h:259