MythTV  master
standardsettings.cpp
Go to the documentation of this file.
1 #include "standardsettings.h"
2 #include <QApplication>
3 #include <QCoreApplication>
4 #include <QThread>
5 #include <utility>
6 
7 #include "libmythbase/mythdb.h"
11 #include "libmythui/mythuibutton.h"
14 #include "libmythui/mythuitext.h"
15 
17 {
18  setting->updateButton(this);
19 }
20 
22 {
23  QList<StandardSetting *>::const_iterator i;
24  for (i = m_children.constBegin(); i != m_children.constEnd(); ++i)
25  delete *i;
26  m_children.clear();
27 
28  QMap<QString, QList<StandardSetting *> >::const_iterator iMap;
29  for (iMap = m_targets.constBegin(); iMap != m_targets.constEnd(); ++iMap)
30  {
31  for (i = (*iMap).constBegin(); i != (*iMap).constEnd(); ++i)
32  delete *i;
33  }
34  m_targets.clear();
35 }
36 
38 {
39  auto *item = new MythUIButtonListItemSetting(list, m_label);
40  item->SetData(QVariant::fromValue(this));
41  connect(this, &StandardSetting::ShouldRedraw,
43  updateButton(item);
44  return item;
45 }
46 
47 void StandardSetting::setEnabled(bool enabled)
48 {
49  m_enabled = enabled;
50  emit ShouldRedraw(this);
51 }
52 
53 void StandardSetting::setReadOnly(bool readonly)
54 {
55  m_readonly = readonly;
56  emit ShouldRedraw(this);
57 }
58 
59 void StandardSetting::setVisible(bool visible)
60 {
61  m_visible = visible;
62  emit settingsChanged(this);
63 }
64 
66 {
67  m_parent = parent;
68 }
69 
71 {
72  if (!child)
73  return;
74 
75  m_children.append(child);
76  child->setParent(this);
77 }
78 
80 {
81  m_children.removeAll(child);
82  emit settingsChanged(this);
83 }
84 
85 bool StandardSetting::keyPressEvent(QKeyEvent * /*e*/)
86 {
87  return false;
88 }
89 
96 {
97  item->setVisible(m_visible);
98  item->DisplayState("standard", "widgettype");
99  item->setEnabled(isEnabled());
100  item->SetText(m_label);
101  item->SetText(m_settingValue, "value");
102  item->SetText(getHelpText(), "description");
103  item->setDrawArrow(haveSubSettings());
104 }
105 
106 void StandardSetting::addTargetedChildren(const QString &value,
107  std::initializer_list<StandardSetting *> settings)
108 {
109  m_targets[value].reserve(settings.size());
110  for (auto *setting : std::as_const(settings))
111  {
112  m_targets[value].append(setting);
113  setting->setParent(this);
114  }
115 }
116 void StandardSetting::addTargetedChild(const QString &value,
117  StandardSetting * setting)
118 {
119  m_targets[value].append(setting);
120  setting->setParent(this);
121 }
122 
123 void StandardSetting::removeTargetedChild(const QString &value,
124  StandardSetting *child)
125 {
126  if (m_targets.contains(value))
127  {
128  m_targets[value].removeAll(child);
129  delete child;
130  }
131 }
132 
133 void StandardSetting::clearTargetedSettings(const QString &value)
134 {
135  if (m_targets.contains(value))
136  {
137  for (auto *setting : std::as_const(m_targets[value]))
138  {
139  delete setting;
140  }
141  m_targets[value].clear();
142  }
143 }
144 
145 QList<StandardSetting *> *StandardSetting::getSubSettings()
146 {
147  if (m_targets.contains(m_settingValue) &&
148  !m_targets[m_settingValue].empty())
149  return &m_targets[m_settingValue];
150  return &m_children;
151 }
152 
154 {
155  QList<StandardSetting *> *subSettings = getSubSettings();
156  return subSettings && !subSettings->empty();
157 }
158 
160 {
161  m_children.clear();
162 }
163 
164 void StandardSetting::setValue(int newValue)
165 {
166  setValue(QString::number(newValue));
167 }
168 
169 void StandardSetting::setValue(const QString &newValue)
170 {
171  if (m_settingValue != newValue)
172  {
173  m_settingValue = newValue;
174  m_haveChanged = true;
175 
176  emit valueChanged(newValue);
177  emit valueChanged(this);
178  }
179  emit ShouldRedraw(this);
180 }
181 
186 {
187  if (m_haveChanged)
188  {
189  LOG(VB_GENERAL, LOG_DEBUG,
190  QString("Setting '%1' changed to %2").arg(getLabel(), getValue()));
191  return true;
192  }
193 
194  //we check only the relevant children
195  QList<StandardSetting *> *children = getSubSettings();
196  if (!children)
197  return false;
198 
199  QList<StandardSetting *>::const_iterator i;
200  bool haveChanged = false;
201  for (i = children->constBegin(); !haveChanged && i != children->constEnd();
202  ++i)
203  haveChanged = (*i)->haveChanged();
204 
205  return haveChanged;
206 }
207 
208 void StandardSetting::setChanged(bool changed)
209 {
210  m_haveChanged = changed;
211 }
212 
214 {
215  if (m_storage)
216  m_storage->Load();
217 
218  m_haveChanged = false;
219 
220  QList<StandardSetting *>::const_iterator i;
221  for (i = m_children.constBegin(); i != m_children.constEnd(); ++i)
222  (*i)->Load();
223 
224  QMap<QString, QList<StandardSetting *> >::const_iterator iMap;
225  for (iMap = m_targets.constBegin(); iMap != m_targets.constEnd(); ++iMap)
226  {
227  for (i = (*iMap).constBegin(); i != (*iMap).constEnd(); ++i)
228  (*i)->Load();
229  }
230 }
231 
233 {
234  if (m_storage)
235  m_storage->Save();
236 
237  //we save only the relevant children
238  QList<StandardSetting *> *children = getSubSettings();
239  if (children)
240  {
241  for (auto i = children->constBegin(); i != children->constEnd(); ++i)
242  (*i)->Save();
243  }
244 
245  if (!m_haveChanged)
246  return;
247 
248  m_haveChanged = false;
249  emit ChangeSaved();
250 }
251 
252 void StandardSetting::setName(const QString &name)
253 {
254  m_name = name;
255  if (m_label.isEmpty())
256  setLabel(name);
257 }
258 
260 {
261  if (name == m_name)
262  return this;
263 
264  for (auto *setting : std::as_const(*getSubSettings()))
265  {
266  StandardSetting *s = setting->byName(name);
267  if (s)
268  return s;
269  }
270  return nullptr;
271 }
272 
273 void StandardSetting::MoveToThread(QThread *thread)
274 {
275  moveToThread(thread);
276 
277  QList<StandardSetting *>::const_iterator i;
278  for (i = m_children.constBegin(); i != m_children.constEnd(); ++i)
279  (*i)->MoveToThread(thread);
280 
281  QMap<QString, QList<StandardSetting *> >::const_iterator iMap;
282  for (iMap = m_targets.constBegin(); iMap != m_targets.constEnd(); ++iMap)
283  {
284  for (i = (*iMap).constBegin(); i != (*iMap).constEnd(); ++i)
285  (*i)->MoveToThread(thread);
286  }
287 }
288 
289 /******************************************************************************
290  Group Setting
291 *******************************************************************************/
293 {
294  if (!isEnabled())
295  return;
296 
297  if (isReadOnly())
298  return;
299 
300  auto *dce = new DialogCompletionEvent("leveldown", 0, "", "");
301  QCoreApplication::postEvent(screen, dce);
302 }
303 
305 {
306  item->DisplayState("group", "widgettype");
307  item->setEnabled(isEnabled());
308  item->SetText(m_label);
309  item->SetText(m_settingValue, "value");
310  item->SetText(getHelpText(), "description");
311  item->setDrawArrow(haveSubSettings());
312 }
313 
315 {
316  setLabel(label);
317 }
318 
320 {
321  emit clicked();
322 }
323 
325 {
326  if (getValue() == "0")
327  {
328  // Generate a new, unique ID
329  QString querystr = "INSERT INTO " + m_table +
330  " (" + m_column + ") VALUES (0);";
331 
332  MSqlQuery query(MSqlQuery::InitCon());
333 
334  if (!query.exec(querystr))
335  {
336  MythDB::DBError("inserting row", query);
337  return;
338  }
339  // XXX -- HACK BEGIN:
340  // lastInsertID fails with "QSqlQuery::value: not positioned on a valid
341  // record" if we get a invalid QVariant we workaround the problem by
342  // taking advantage of mysql always incrementing the auto increment
343  // pointer this breaks if someone modifies the auto increment pointer
344  //setValue(query.lastInsertId().toInt());
345 
346  QVariant var = query.lastInsertId();
347 
348 #if QT_VERSION < QT_VERSION_CHECK(6,0,0)
349  auto id = static_cast<QMetaType::Type>(var.type());
350 #else
351  auto id = var.typeId();
352 #endif
353  if (id != QMetaType::UnknownType)
354  setValue(var.toInt());
355  else
356  {
357  querystr = "SELECT MAX(" + m_column + ") FROM " +
358  m_table + ";";
359  if (query.exec(querystr) && query.next())
360  {
361  int lii = query.value(0).toInt();
362  lii = lii ? lii : 1;
363  setValue(lii);
364  }
365  else
366  {
367  LOG(VB_GENERAL, LOG_EMERG,
368  "Can't determine the Id of the last insert "
369  "QSqlQuery.lastInsertId() failed, the workaround "
370  "failed too!");
371  }
372  }
373  // XXX -- HACK END:
374  }
375 }
376 
377 AutoIncrementSetting::AutoIncrementSetting(QString _table, QString _column) :
378  m_table(std::move(_table)), m_column(std::move(_column))
379 {
380  setValue("0");
381 }
382 
383 /******************************************************************************
384  Text Setting
385 *******************************************************************************/
386 
388 {
389  m_passwordEcho = b;
390 }
391 
393 {
394  if (!isEnabled())
395  return;
396 
397  if (isReadOnly())
398  return;
399 
400  MythScreenStack *popupStack = GetMythMainWindow()->GetStack("popup stack");
401 
402  auto *settingdialog =
403  new MythTextInputDialog(popupStack, getLabel(), FilterNone,
405 
406  if (settingdialog->Create())
407  {
408  settingdialog->SetReturnEvent(screen, "editsetting");
409  popupStack->AddScreen(settingdialog);
410  }
411  else
412  {
413  delete settingdialog;
414  }
415 }
416 
418 {
419  if (m_settingValue != dce->GetResultText())
420  setValue(dce->GetResultText());
421 }
422 
423 
425 {
427  item->DisplayState("textedit", "widgettype");
428 }
429 
430 
431 /******************************************************************************
432  Directory Setting
433 *******************************************************************************/
434 
436 {
437  if (!isEnabled())
438  return;
439 
440  if (isReadOnly())
441  return;
442 
443  MythScreenStack *popupStack = GetMythMainWindow()->GetStack("popup stack");
444 
445  auto *settingdialog = new MythUIFileBrowser(popupStack, m_settingValue);
446  settingdialog->SetTypeFilter(m_typeFilter);
447  settingdialog->SetNameFilter(m_nameFilter);
448 
449  if (settingdialog->Create())
450  {
451  settingdialog->SetReturnEvent(screen, "editsetting");
452  popupStack->AddScreen(settingdialog);
453  }
454  else
455  {
456  delete settingdialog;
457  }
458 }
459 
461 {
462  if (m_settingValue != dce->GetResultText())
463  setValue(dce->GetResultText());
464 }
465 
467 {
469  item->DisplayState("filebrowser", "widgettype");
470 }
471 
472 
473 /******************************************************************************
474  ComboBoxSetting
475 *******************************************************************************/
477 {
478  m_labels.clear();
479  m_values.clear();
480 }
481 
483 {
484  if (value >= 0 && value < m_values.size())
485  {
487  m_isSet = true;
488  }
489 }
490 
491 int MythUIComboBoxSetting::getValueIndex(const QString &value) const
492 {
493  return m_values.indexOf(value);
494 }
495 
497 {
498  int index = getValueIndex(getValue());
499  return (index >= 0) ? m_labels.at(index) : QString("");
500 }
501 
502 void MythUIComboBoxSetting::addSelection(const QString &label, QString value,
503  bool select)
504 {
505  value = value.isEmpty() ? label : value;
506  m_labels.push_back(label);
507  m_values.push_back(value);
508 
509  if (select || !m_isSet)
510  {
512  if (!m_isSet)
513  m_isSet = true;
514  }
515 }
516 
518 {
519  m_isSet = false;
520  m_labels.clear();
521  m_values.clear();
522 }
523 
525 {
526  item->DisplayState("combobox", "widgettype");
527  item->setEnabled(isEnabled());
528  item->SetText(m_label);
529  int indexValue = m_values.indexOf(m_settingValue);
530  if (indexValue >= 0)
531  item->SetText(m_labels.value(indexValue), "value");
532  else
533  item->SetText(m_settingValue, "value");
534  item->SetText(getHelpText(), "description");
535  item->setDrawArrow(haveSubSettings());
536 }
537 
539 {
540  if (!isEnabled())
541  return;
542 
543  if (isReadOnly())
544  return;
545 
546  MythScreenStack *popupStack = GetMythMainWindow()->GetStack("popup stack");
547 
548  auto *menuPopup = new MythDialogBox(getLabel(), popupStack, "optionmenu");
549 
550  if (menuPopup->Create())
551  {
552  popupStack->AddScreen(menuPopup);
553 
554  //connect(menuPopup, &MythDialogBox::haveResult,
555  //this, qOverload<const QString&>(&MythUIComboBoxSetting::setValue));
556 
557  menuPopup->SetReturnEvent(screen, "editsetting");
558 
559  if (m_rewrite)
560  {
561  menuPopup->AddButtonV(QObject::tr("New entry"),
562  QString("NEWENTRY"),
563  false,
564  m_settingValue == "");
565  }
566  for (int i = 0; i < m_labels.size() && !m_values.empty(); ++i)
567  {
568  QString value = m_values.at(i);
569  menuPopup->AddButtonV(m_labels.at(i),
570  value,
571  false,
572  value == m_settingValue);
573  }
574  }
575  else
576  {
577  delete menuPopup;
578  }
579 }
580 
581 void MythUIComboBoxSetting::setValue(const QString& newValue)
582 {
583  StandardSetting::setValue(newValue);
584  m_isSet = true;
585 }
586 
588 {
589  if (dce->GetResult() != -1)
590  {
591  if (m_rewrite && dce->GetData().toString() == "NEWENTRY")
592  {
593  MythScreenStack *popupStack =
594  GetMythMainWindow()->GetStack("popup stack");
595 
596  auto *settingdialog =
597  new MythTextInputDialog(popupStack, getLabel(), FilterNone,
598  false, m_settingValue);
599 
600  if (settingdialog->Create())
601  {
602  connect(settingdialog, &MythTextInputDialog::haveResult,
603  this, qOverload<const QString&>(&MythUIComboBoxSetting::setValue));
604  popupStack->AddScreen(settingdialog);
605  }
606  else
607  {
608  delete settingdialog;
609  }
610  }
611  else if (m_settingValue != dce->GetData().toString())
612  {
613  StandardSetting::setValue(dce->GetData().toString());
614  }
615  }
616 }
617 
618 void MythUIComboBoxSetting::fillSelectionsFromDir(const QDir &dir, bool absPath)
619 {
620  QFileInfoList entries = dir.entryInfoList();
621  for (const auto& fi : std::as_const(entries))
622  {
623  if (absPath)
624  addSelection( fi.absoluteFilePath() );
625  else
626  addSelection( fi.fileName() );
627  }
628 }
629 
631 {
632  return m_labels.size();
633 }
634 
635 /******************************************************************************
636  SpinBox Setting
637 *******************************************************************************/
639  int step, int pageMultiple,
640  QString special_value_text)
641  : StandardSetting(_storage),
642  m_min(min),
643  m_max(max),
644  m_step(step),
645  m_pageMultiple(pageMultiple),
646  m_specialValueText(std::move(special_value_text))
647 {
648  // We default to 0 unless 0 is out of range.
649  if (m_min > 0 || m_max < 0)
650  m_settingValue = QString::number(m_min);
651 
652  // The settings pages were coded to assume a parameter true/false
653  // meaning allow_single_step. Many pages use this but it was not
654  // implemented. It is difficult to implement using the current
655  // UI widget design. So I have changed it so you can specify
656  // the size of pageup / pagedown increments as an integer instead.
657  // For compatibility with callers still using true to indicate
658  // allowing single step, the code will set the step size as 1 and
659  // the pageup / pagedown as the requested step.
660 
661  if (m_pageMultiple == 1)
662  {
663  m_pageMultiple = step;
664  m_step = 1;
665  }
666  if (m_pageMultiple == 0)
667  {
668  m_pageMultiple = 5;
669  }
670 }
671 
673 {
674  item->DisplayState("spinbox", "widgettype");
675  item->setEnabled(isEnabled());
676  item->SetText(m_label);
677  if (m_settingValue.toInt() == m_min && !m_specialValueText.isEmpty())
678  item->SetText(m_specialValueText, "value");
679  else
680  item->SetText(m_settingValue, "value");
681  item->SetText(getHelpText(), "description");
682  item->setDrawArrow(haveSubSettings());
683 }
684 
686 {
687  return m_settingValue.toInt();
688 }
689 
691 {
692  if (!isEnabled())
693  return;
694 
695  if (isReadOnly())
696  return;
697 
698  MythScreenStack *popupStack = GetMythMainWindow()->GetStack("popup stack");
699 
700  auto *settingdialog = new MythSpinBoxDialog(popupStack, getLabel());
701 
702  if (settingdialog->Create())
703  {
704  settingdialog->SetRange(m_min, m_max, m_step, m_pageMultiple);
705  if (!m_specialValueText.isEmpty())
706  settingdialog->AddSelection(m_specialValueText, m_min);
707  settingdialog->SetValue(m_settingValue);
708  settingdialog->SetReturnEvent(screen, "editsetting");
709  popupStack->AddScreen(settingdialog);
710  }
711  else
712  {
713  delete settingdialog;
714  }
715 }
716 
718 {
719  if (m_settingValue != dce->GetResultText())
720  setValue(dce->GetResultText());
721 }
722 
723 /******************************************************************************
724  MythUICheckBoxSetting
725 *******************************************************************************/
726 
728  StandardSetting(_storage)
729 {
730 }
731 
732 void MythUICheckBoxSetting::setValue(const QString &value)
733 {
735  if (haveChanged())
736  emit valueChanged(value == "1");
737 }
738 
740 {
741  StandardSetting::setValue(value ? "1" : "0");
742  if (haveChanged())
743  emit valueChanged(value);
744 }
745 
747 {
749  item->DisplayState("checkbox", "widgettype");
750  item->setCheckable(true);
751  item->SetText("", "value");
752  if (m_settingValue == "1")
754  else
756 }
757 
759 {
760  if (!isEnabled())
761  return;
762 
763  if (isReadOnly())
764  return;
765 
766  auto *dce = new DialogCompletionEvent("editsetting", 0, "", "");
767  QCoreApplication::postEvent(screen, dce);
768 }
769 
771 {
772  setValue(!boolValue());
773 }
774 
775 /******************************************************************************
776  Standard setting dialog
777 *******************************************************************************/
778 
780 {
781  if (m_settingsTree)
782  m_settingsTree->deleteLater();
783 }
784 
786 {
787  if (!LoadWindowFromXML("standardsetting-ui.xml", "settingssetup", this))
788  return false;
789 
790  bool error = false;
791  UIUtilE::Assign(this, m_title, "title", &error);
792  UIUtilW::Assign(this, m_groupHelp, "grouphelp", &error);
793  UIUtilE::Assign(this, m_buttonList, "settingslist", &error);
794 
795  UIUtilW::Assign(this, m_selectedSettingHelp, "selectedsettinghelp");
796 
797  if (error)
798  {
799  LOG(VB_GENERAL, LOG_ERR, "Theme elements missing.");
800  return false;
801  }
802 
807 
808  BuildFocusList();
809 
811 
812  return true;
813 }
814 
816 {
817  if (!item)
818  return;
819 
820  auto *setting = item->GetData().value<StandardSetting*>();
821  if (setting && m_selectedSettingHelp)
822  {
823  disconnect(m_selectedSettingHelp);
824  m_selectedSettingHelp->SetText(setting->getHelpText());
826  }
827 }
828 
830 {
831  auto* setting = item->GetData().value<StandardSetting*>();
832  if (setting)
833  setting->edit(this);
834 }
835 
837 {
838  if (event->type() == DialogCompletionEvent::kEventType)
839  {
840  auto *dce = dynamic_cast<DialogCompletionEvent*>(event);
841  if (dce == nullptr)
842  return;
843  QString resultid = dce->GetId();
844 
845  if (resultid == "leveldown")
846  {
847  //a GroupSetting have been clicked
848  LevelDown();
849  }
850  else if (resultid == "editsetting")
851  {
853  if (item)
854  {
855  auto *ss = item->GetData().value<StandardSetting*>();
856  if (ss)
857  ss->resultEdit(dce);
858  }
859  }
860  else if (resultid == "exit")
861  {
862  int buttonnum = dce->GetResult();
863  if (buttonnum == 0)
864  {
865  Save();
867  if (m_settingsTree)
869  }
870  else if (buttonnum == 1)
871  {
873  }
874  }
875  }
876 }
877 
879 {
880  if (m_settingsTree)
881  {
882  m_settingsTree->Load();
883  m_settingsTree->MoveToThread(QApplication::instance()->thread());
884  }
885 }
886 
888 {
890 }
891 
893 {
894  return m_settingsTree;
895 }
896 
898  StandardSetting *groupSettings, StandardSetting *selectedSetting)
899 {
900  if (!groupSettings)
901  return;
902 
904  {
905  disconnect(m_currentGroupSetting,
906  &StandardSetting::settingsChanged, nullptr, nullptr);
908  }
909 
910  m_currentGroupSetting = groupSettings;
912 
914  if (m_groupHelp)
915  {
917  }
918  updateSettings(selectedSetting);
919  connect(m_currentGroupSetting,
922 }
923 
925 {
926  m_buttonList->Reset();
928  return;
929 
930  QList<StandardSetting *> *settings =
932  if (!settings)
933  return;
934 
935  QList<StandardSetting *>::const_iterator i;
936  MythUIButtonListItem *selectedItem = nullptr;
937  for (i = settings->constBegin(); i != settings->constEnd(); ++i)
938  {
939  if ((*i)->isVisible())
940  {
941  if (selectedSetting == (*i))
942  selectedItem = (*i)->createButton(m_buttonList);
943  else
944  (*i)->createButton(m_buttonList);
945  }
946  }
947  if (selectedItem)
948  m_buttonList->SetItemCurrent(selectedItem);
950 }
951 
953 {
954  if (m_settingsTree)
955  m_settingsTree->Save();
956 }
957 
959 {
961  return;
962 
964  {
967  }
968 }
969 
971 {
973  if (item)
974  {
975  auto *ss = item->GetData().value<StandardSetting*>();
976  if (ss && ss->haveSubSettings() && ss->isEnabled())
978  }
979 }
980 
982 {
984  {
985  QString label = tr("Exit ?");
986 
987  MythScreenStack *popupStack =
988  GetMythMainWindow()->GetStack("popup stack");
989 
990  auto * menuPopup = new MythDialogBox(label, popupStack, "exitmenu");
991 
992  if (menuPopup->Create())
993  {
994  popupStack->AddScreen(menuPopup);
995 
996  menuPopup->SetReturnEvent(this, "exit");
997 
998  menuPopup->AddButton(tr("Save then Exit"));
999  menuPopup->AddButton(tr("Exit without saving changes"));
1000  menuPopup->AddButton(tr("Cancel"));
1001  }
1002  else
1003  {
1004  delete menuPopup;
1005  }
1006  }
1007  else
1008  {
1010  }
1011 }
1012 
1013 static QKeyEvent selectEvent
1014  (QKeyEvent(QEvent::KeyPress,0,Qt::NoModifier,"SELECT"));
1015 static QKeyEvent deleteEvent
1016  (QKeyEvent(QEvent::KeyPress,0,Qt::NoModifier,"DELETE"));
1017 
1019 {
1020  QStringList actions;
1021 
1022  bool handled = m_buttonList->keyPressEvent(e);
1023  if (handled)
1024  return true;
1025 
1026  handled = GetMythMainWindow()->TranslateKeyPress("Global", e, actions);
1027 
1028  //send the key to the selected Item first
1030  if (item)
1031  {
1032  auto *ss = item->GetData().value<StandardSetting*>();
1033  if (ss)
1034  handled = ss->keyPressEvent(e);
1035  }
1036  if (handled)
1037  return true;
1038 
1039  for (int i = 0; i < actions.size() && !handled; i++)
1040  {
1041  const QString& action = actions[i];
1042  handled = true;
1043 
1044  if (action == "LEFT")
1045  {
1046  if (m_currentGroupSetting &&
1048  Close();
1049  else
1050  LevelUp();
1051  }
1052  else if (action == "RIGHT")
1053  {
1054  LevelDown();
1055  }
1056  else if (action == "EDIT")
1057  {
1059  }
1060  else if (action == "DELETE")
1061  {
1062  deleteEntry();
1063  }
1064  else
1065  {
1066  handled = MythScreenType::keyPressEvent(e);
1067  }
1068  }
1069 
1070  return handled;
1071 }
1072 
1074 {
1076  if (!item)
1077  return;
1078 
1079  auto *source = item->GetData().value<GroupSetting*>();
1080  if (!source)
1081  return;
1082  // m_title->GetText() for screen title
1083  auto *menu = new MythMenu(source->getLabel(), this, "mainmenu");
1084  menu->AddItem(tr("Edit"), &StandardSettingDialog::editEntry);
1085  if (source->canDelete())
1086  menu->AddItem(tr("Delete"), &StandardSettingDialog::deleteSelected);
1087 
1088  MythScreenStack *popupStack = GetMythMainWindow()->GetStack("popup stack");
1089 
1090  auto *menuPopup = new MythDialogBox(menu, popupStack, "menudialog");
1091  menuPopup->SetReturnEvent(this, "mainmenu");
1092 
1093  if (menuPopup->Create())
1094  popupStack->AddScreen(menuPopup);
1095  else
1096  delete menuPopup;
1097 }
1098 
1100 {
1102 }
1103 
1105 {
1107 }
1108 
1110 {
1112  if (!item)
1113  return;
1114 
1115  auto *source = item->GetData().value<GroupSetting*>();
1116  if (!source)
1117  return;
1118 
1119  if (source->canDelete())
1120  {
1121  QString message = tr("Do you want to delete the '%1' entry?")
1122  .arg(source->getLabel());
1124  }
1125 }
1126 
1128 {
1129  if (ok)
1130  {
1132  if (!item)
1133  return;
1134  auto *source = item->GetData().value<GroupSetting*>();
1135  if (!source)
1136  return;
1137  source->deleteEntry();
1138 // m_settingsTree->removeChild(source);
1139  source->getParent()->removeChild(source);
1140  m_buttonList->RemoveItem(item);
1141  }
1142 
1143 }
MythUISpinBoxSetting::MythUISpinBoxSetting
MythUISpinBoxSetting(Storage *_storage, int min, int max, int step, int pageMultiple=8, QString special_value_text=QString())
Definition: standardsettings.cpp:638
MythScreenType::LoadInBackground
void LoadInBackground(const QString &message="")
Definition: mythscreentype.cpp:283
MSqlQuery::next
bool next(void)
Wrap QSqlQuery::next() so we can display the query results.
Definition: mythdbcon.cpp:812
MSqlQuery
QSqlQuery wrapper that fetches a DB connection from the connection pool.
Definition: mythdbcon.h:127
MythUIComboBoxSetting::clearSelections
void clearSelections()
Definition: standardsettings.cpp:517
MythUITextEditSetting::edit
void edit(MythScreenType *screen) override
Definition: standardsettings.cpp:392
MythUIButtonList::GetItemCurrent
MythUIButtonListItem * GetItemCurrent() const
Definition: mythuibuttonlist.cpp:1614
StandardSetting::haveSubSettings
virtual bool haveSubSettings()
Definition: standardsettings.cpp:153
StandardSetting::setName
virtual void setName(const QString &name)
Definition: standardsettings.cpp:252
MythUICheckBoxSetting::updateButton
void updateButton(MythUIButtonListItem *item) override
This method is called whenever the UI need to reflect a change Reimplement this If you widget need a ...
Definition: standardsettings.cpp:746
StandardSettingDialog::m_currentGroupSetting
StandardSetting * m_currentGroupSetting
Definition: standardsettings.h:515
mythuitext.h
StandardSetting::getLabel
QString getLabel(void) const
Definition: standardsettings.h:35
MythUIComboBoxSetting::fillSelectionsFromDir
void fillSelectionsFromDir(const QDir &dir, bool absPath=true)
Definition: standardsettings.cpp:618
StandardSetting::Close
virtual void Close(void)
Definition: standardsettings.h:77
StandardSetting::setValue
virtual void setValue(const QString &newValue)
Definition: standardsettings.cpp:169
DialogCompletionEvent::GetId
QString GetId()
Definition: mythdialogbox.h:52
error
static void error(const char *str,...)
Definition: vbi.cpp:37
StandardSetting::clearTargetedSettings
void clearTargetedSettings(const QString &value)
Definition: standardsettings.cpp:133
StandardSetting::Open
virtual void Open(void)
Definition: standardsettings.h:76
mythdb.h
MythUIButtonListItem::DisplayState
void DisplayState(const QString &state, const QString &name)
Definition: mythuibuttonlist.cpp:3613
MythUIButtonListItem::FullChecked
@ FullChecked
Definition: mythuibuttonlist.h:48
StandardSetting::helpTextChanged
void helpTextChanged(const QString &newValue)
MythScreenType::Close
virtual void Close()
Definition: mythscreentype.cpp:383
StandardSetting::removeTargetedChild
void removeTargetedChild(const QString &value, StandardSetting *child)
Definition: standardsettings.cpp:123
StandardSettingDialog::m_buttonList
MythUIButtonList * m_buttonList
Definition: standardsettings.h:497
MythUIComboBoxSetting::m_rewrite
bool m_rewrite
Definition: standardsettings.h:254
StandardSettingDialog::m_title
MythUIText * m_title
Definition: standardsettings.h:510
MythUIButtonList::RemoveItem
void RemoveItem(MythUIButtonListItem *item)
Definition: mythuibuttonlist.cpp:1512
StandardSetting::m_readonly
bool m_readonly
Definition: standardsettings.h:113
MSqlQuery::lastInsertId
QVariant lastInsertId()
Return the id of the last inserted row.
Definition: mythdbcon.cpp:935
MythUIButtonList::itemSelected
void itemSelected(MythUIButtonListItem *item)
StandardSetting::m_label
QString m_label
Definition: standardsettings.h:114
StandardSetting::m_settingValue
QString m_settingValue
Definition: standardsettings.h:111
mythdialogbox.h
MSqlQuery::value
QVariant value(int i) const
Definition: mythdbcon.h:204
MythScreenStack
Definition: mythscreenstack.h:16
StandardSettingDialog::GetGroupSettings
GroupSetting * GetGroupSettings(void) const
Definition: standardsettings.cpp:892
MythUITextEditSetting::updateButton
void updateButton(MythUIButtonListItem *item) override
This method is called whenever the UI need to reflect a change Reimplement this If you widget need a ...
Definition: standardsettings.cpp:424
GroupSetting::updateButton
void updateButton(MythUIButtonListItem *item) override
This method is called whenever the UI need to reflect a change Reimplement this If you widget need a ...
Definition: standardsettings.cpp:304
MSqlQuery::exec
bool exec(void)
Wrap QSqlQuery::exec() so we can display SQL.
Definition: mythdbcon.cpp:618
MythUISpinBoxSetting::m_pageMultiple
int m_pageMultiple
Definition: standardsettings.h:351
MythUIComboBoxSetting::edit
void edit(MythScreenType *screen) override
Definition: standardsettings.cpp:538
StandardSetting::clearSettings
virtual void clearSettings()
Definition: standardsettings.cpp:159
ButtonStandardSetting::edit
void edit(MythScreenType *screen) override
Definition: standardsettings.cpp:319
LOG
#define LOG(_MASK_, _LEVEL_, _QSTRING_)
Definition: mythlogging.h:39
StandardSetting::addTargetedChild
void addTargetedChild(const QString &value, StandardSetting *setting)
Definition: standardsettings.cpp:116
MythScreenType
Screen in which all other widgets are contained and rendered.
Definition: mythscreentype.h:45
StandardSettingDialog::m_selectedSettingHelp
MythUIText * m_selectedSettingHelp
Definition: standardsettings.h:512
StandardSetting::m_name
QString m_name
Definition: standardsettings.h:116
StandardSettingDialog::~StandardSettingDialog
~StandardSettingDialog() override
Definition: standardsettings.cpp:779
MythUIButtonListItem::setVisible
void setVisible(bool flag)
Definition: mythuibuttonlist.h:122
MythUIComboBoxSetting::~MythUIComboBoxSetting
~MythUIComboBoxSetting() override
Definition: standardsettings.cpp:476
MythTextInputDialog::haveResult
void haveResult(QString)
ButtonStandardSetting::ButtonStandardSetting
ButtonStandardSetting(const QString &label)
Definition: standardsettings.cpp:314
StandardSetting::m_haveChanged
bool m_haveChanged
Definition: standardsettings.h:120
StandardSettingDialog::Close
void Close(void) override
Definition: standardsettings.cpp:981
MythUIComboBoxSetting::m_labels
QVector< QString > m_labels
Definition: standardsettings.h:250
StandardSetting::haveChanged
bool haveChanged()
Return true if the setting have changed or any of its children.
Definition: standardsettings.cpp:185
AutoIncrementSetting::m_column
QString m_column
Definition: standardsettings.h:138
StandardSettingDialog::updateSettings
void updateSettings(StandardSetting *selectedSetting=nullptr)
Definition: standardsettings.cpp:924
ButtonStandardSetting::clicked
void clicked()
MythUIButtonListItem::SetText
void SetText(const QString &text, const QString &name="", const QString &state="")
Definition: mythuibuttonlist.cpp:3319
StandardSettingDialog::LevelDown
void LevelDown()
Definition: standardsettings.cpp:970
StandardSetting::m_enabled
bool m_enabled
Definition: standardsettings.h:112
MythUIFileBrowserSetting::m_typeFilter
QDir::Filters m_typeFilter
Definition: standardsettings.h:201
StandardSettingDialog::editEntry
void editEntry(void)
Definition: standardsettings.cpp:1099
MythUIButtonListItem
Definition: mythuibuttonlist.h:41
StandardSetting::setChanged
void setChanged(bool changed)
Definition: standardsettings.cpp:208
StandardSetting::settingsChanged
void settingsChanged(StandardSetting *selectedSetting=nullptr)
StandardSetting::addChild
virtual void addChild(StandardSetting *child)
Definition: standardsettings.cpp:70
StandardSettingDialog::Create
bool Create(void) override
Definition: standardsettings.cpp:785
StandardSettingDialog::setCurrentGroupSetting
void setCurrentGroupSetting(StandardSetting *groupSettings, StandardSetting *selectedSetting=nullptr)
Definition: standardsettings.cpp:897
mythlogging.h
StandardSetting::getSubSettings
virtual QList< StandardSetting * > * getSubSettings()
Definition: standardsettings.cpp:145
StandardSetting::createButton
MythUIButtonListItem * createButton(MythUIButtonList *list)
Definition: standardsettings.cpp:37
MythUIComboBoxSetting::resultEdit
void resultEdit(DialogCompletionEvent *dce) override
Definition: standardsettings.cpp:587
MythUIButtonListItem::setCheckable
void setCheckable(bool flag)
Definition: mythuibuttonlist.cpp:3690
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:1111
MythUISpinBoxSetting::m_specialValueText
QString m_specialValueText
Definition: standardsettings.h:352
MythUITextEditSetting::resultEdit
void resultEdit(DialogCompletionEvent *dce) override
Definition: standardsettings.cpp:417
StandardSetting::resultEdit
virtual void resultEdit(DialogCompletionEvent *dce)=0
AutoIncrementSetting::Save
void Save(void) override
Definition: standardsettings.cpp:324
MythUIButtonList::keyPressEvent
bool keyPressEvent(QKeyEvent *event) override
Key event handler.
Definition: mythuibuttonlist.cpp:2528
MythDialogBox
Basic menu dialog, message and a list of options.
Definition: mythdialogbox.h:166
Storage::Load
virtual void Load(void)=0
menu
static MythThemedMenu * menu
Definition: mythtv-setup.cpp:58
MSqlQuery::InitCon
static MSqlQueryInfo InitCon(ConnectionReuse _reuse=kNormalConnection)
Only use this in combination with MSqlQuery constructor.
Definition: mythdbcon.cpp:550
MythUISpinBoxSetting::updateButton
void updateButton(MythUIButtonListItem *item) override
This method is called whenever the UI need to reflect a change Reimplement this If you widget need a ...
Definition: standardsettings.cpp:672
GroupSetting::deleteEntry
virtual void deleteEntry(void)
Definition: standardsettings.h:449
StandardSetting::getParent
StandardSetting * getParent() const
Definition: standardsettings.h:49
MythDB::DBError
static void DBError(const QString &where, const MSqlQuery &query)
Definition: mythdb.cpp:225
MythUISpinBoxSetting::intValue
int intValue()
Definition: standardsettings.cpp:685
MythUITextEditSetting::SetPasswordEcho
void SetPasswordEcho(bool b)
Definition: standardsettings.cpp:387
MythUIFileBrowserSetting::updateButton
void updateButton(MythUIButtonListItem *item) override
This method is called whenever the UI need to reflect a change Reimplement this If you widget need a ...
Definition: standardsettings.cpp:466
StandardSetting::Load
virtual void Load(void)
Definition: standardsettings.cpp:213
MythUICheckBoxSetting::valueChanged
void valueChanged(bool)
MythScreenType::BuildFocusList
void BuildFocusList(void)
Definition: mythscreentype.cpp:203
MythUICheckBoxSetting::resultEdit
void resultEdit(DialogCompletionEvent *dce) override
Definition: standardsettings.cpp:770
MythUIComboBoxSetting::getValueIndex
int getValueIndex(const QString &value) const
Definition: standardsettings.cpp:491
StandardSetting::Save
virtual void Save(void)
Definition: standardsettings.cpp:232
StandardSettingDialog::Save
void Save()
Definition: standardsettings.cpp:952
MythUIFileBrowserSetting::resultEdit
void resultEdit(DialogCompletionEvent *dce) override
Definition: standardsettings.cpp:460
StandardSetting::m_targets
QMap< QString, QList< StandardSetting * > > m_targets
Definition: standardsettings.h:124
GroupSetting::edit
void edit(MythScreenType *screen) override
Definition: standardsettings.cpp:292
mythuifilebrowser.h
StandardSetting::setReadOnly
virtual void setReadOnly(bool readonly)
Definition: standardsettings.cpp:53
StandardSetting::getValue
virtual QString getValue(void) const
Definition: standardsettings.h:52
MythUISpinBoxSetting::edit
void edit(MythScreenType *screen) override
Definition: standardsettings.cpp:690
MythUICheckBoxSetting::edit
void edit(MythScreenType *screen) override
Definition: standardsettings.cpp:758
MythUIButtonListItem::GetData
QVariant GetData()
Definition: mythuibuttonlist.cpp:3715
StandardSetting::keyPressEvent
virtual bool keyPressEvent(QKeyEvent *event)
Definition: standardsettings.cpp:85
MythUIComboBoxSetting::m_isSet
bool m_isSet
Definition: standardsettings.h:255
MythUISpinBoxSetting::m_min
int m_min
Definition: standardsettings.h:348
StandardSetting::ShouldRedraw
void ShouldRedraw(StandardSetting *setting)
MythUITextEditSetting::m_passwordEcho
bool m_passwordEcho
Definition: standardsettings.h:159
FilterNone
@ FilterNone
Definition: mythuitextedit.h:21
Storage::Save
virtual void Save(void)=0
MythUIFileBrowser
Definition: mythuifilebrowser.h:76
MythUIComboBoxSetting::updateButton
void updateButton(MythUIButtonListItem *item) override
This method is called whenever the UI need to reflect a change Reimplement this If you widget need a ...
Definition: standardsettings.cpp:524
UIUtilDisp::Assign
static bool Assign(ContainerType *container, UIType *&item, const QString &name, bool *err=nullptr)
Definition: mythuiutils.h:27
StandardSetting::setLabel
virtual void setLabel(QString str)
Definition: standardsettings.h:34
StandardSettingDialog::m_groupHelp
MythUIText * m_groupHelp
Definition: standardsettings.h:511
MythUIButtonListItem::NotChecked
@ NotChecked
Definition: mythuibuttonlist.h:46
standardsettings.h
mythuispinbox.h
StandardSetting::valueChanged
void valueChanged(const QString &newValue)
deleteEvent
static QKeyEvent deleteEvent(QKeyEvent(QEvent::KeyPress, 0, Qt::NoModifier,"DELETE"))
AutoIncrementSetting::AutoIncrementSetting
AutoIncrementSetting(QString _table, QString _column)
Definition: standardsettings.cpp:377
StandardSetting::setEnabled
virtual void setEnabled(bool enabled)
Definition: standardsettings.cpp:47
MythMenu
Definition: mythdialogbox.h:99
MythUIComboBoxSetting::addSelection
void addSelection(const QString &label, QString value=QString(), bool select=false)
Definition: standardsettings.cpp:502
MythScreenType::keyPressEvent
bool keyPressEvent(QKeyEvent *event) override
Key event handler.
Definition: mythscreentype.cpp:401
StandardSettingDialog::customEvent
void customEvent(QEvent *event) override
Definition: standardsettings.cpp:836
GroupSetting::applyChange
virtual void applyChange()
Definition: standardsettings.h:446
StandardSettingDialog::settingSelected
void settingSelected(MythUIButtonListItem *item)
Definition: standardsettings.cpp:815
StandardSettingDialog::Init
void Init(void) override
Used after calling Load() to assign data to widgets and other UI initilisation which is prohibited in...
Definition: standardsettings.cpp:887
XMLParseBase::LoadWindowFromXML
static bool LoadWindowFromXML(const QString &xmlfile, const QString &windowname, MythUIType *parent)
Definition: xmlparsebase.cpp:701
StandardSetting::MoveToThread
void MoveToThread(QThread *thread)
Definition: standardsettings.cpp:273
MythUISpinBoxSetting::resultEdit
void resultEdit(DialogCompletionEvent *dce) override
Definition: standardsettings.cpp:717
StandardSetting::edit
virtual void edit(MythScreenType *screen)=0
StandardSetting::byName
StandardSetting * byName(const QString &name)
Definition: standardsettings.cpp:259
StandardSetting::removeChild
virtual void removeChild(StandardSetting *child)
Definition: standardsettings.cpp:79
MythUIButtonListItem::setEnabled
void setEnabled(bool flag)
Definition: mythuibuttonlist.cpp:3705
StandardSetting::isEnabled
bool isEnabled() const
Definition: standardsettings.h:45
StandardSetting::getHelpText
QString getHelpText(void) const
Definition: standardsettings.h:38
DialogCompletionEvent
Event dispatched from MythUI modal dialogs to a listening class containing a result of some form.
Definition: mythdialogbox.h:41
StandardSettingDialog::Load
void Load(void) override
Load data which will ultimately be displayed on-screen or used to determine what appears on-screen (S...
Definition: standardsettings.cpp:878
MythUISpinBoxSetting::m_max
int m_max
Definition: standardsettings.h:349
MythUIText::SetText
virtual void SetText(const QString &text)
Definition: mythuitext.cpp:115
MythUIFileBrowserSetting::m_nameFilter
QStringList m_nameFilter
Definition: standardsettings.h:204
DialogCompletionEvent::kEventType
static const Type kEventType
Definition: mythdialogbox.h:57
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:104
StandardSettingDialog::m_settingsTree
GroupSetting * m_settingsTree
Definition: standardsettings.h:514
MythUIButtonList::SetItemCurrent
void SetItemCurrent(MythUIButtonListItem *item)
Definition: mythuibuttonlist.cpp:1581
MythUIButtonListItemSetting
Definition: standardsettings.h:17
build_compdb.action
action
Definition: build_compdb.py:9
MythUICheckBoxSetting::MythUICheckBoxSetting
MythUICheckBoxSetting(Storage *_storage=nullptr)
Definition: standardsettings.cpp:727
StandardSetting::ChangeSaved
void ChangeSaved()
MythUIButtonListItem::setDrawArrow
void setDrawArrow(bool flag)
Definition: mythuibuttonlist.cpp:3695
StandardSetting::m_parent
StandardSetting * m_parent
Definition: standardsettings.h:122
MythUIButtonListItemSetting::ShouldUpdate
void ShouldUpdate(StandardSetting *setting)
Definition: standardsettings.cpp:16
StandardSetting::~StandardSetting
~StandardSetting() override
Definition: standardsettings.cpp:21
StandardSetting::m_visible
bool m_visible
Definition: standardsettings.h:117
mythuibutton.h
MythMainWindow::GetStack
MythScreenStack * GetStack(const QString &Stackname)
Definition: mythmainwindow.cpp:322
StandardSetting::setVisible
void setVisible(bool visible)
Definition: standardsettings.cpp:59
StandardSetting
Definition: standardsettings.h:29
StandardSettingDialog::keyPressEvent
bool keyPressEvent(QKeyEvent *event) override
Key event handler.
Definition: standardsettings.cpp:1018
StandardSettingDialog::LevelUp
void LevelUp()
Definition: standardsettings.cpp:958
DialogCompletionEvent::GetResult
int GetResult() const
Definition: mythdialogbox.h:53
MythTextInputDialog
Dialog prompting the user to enter a text string.
Definition: mythdialogbox.h:314
StandardSettingDialog::settingClicked
void settingClicked(MythUIButtonListItem *item)
Definition: standardsettings.cpp:829
StandardSetting::setParent
void setParent(StandardSetting *parent)
Definition: standardsettings.cpp:65
StandardSettingDialog::deleteEntry
void deleteEntry(void)
Definition: standardsettings.cpp:1109
MythUIButtonList
List widget, displays list items in a variety of themeable arrangements and can trigger signals when ...
Definition: mythuibuttonlist.h:191
MythSpinBoxDialog
Dialog prompting the user to enter a number using a spin box.
Definition: mythdialogbox.h:355
StandardSetting::addTargetedChildren
void addTargetedChildren(const QString &value, std::initializer_list< StandardSetting * > settings)
Definition: standardsettings.cpp:106
StandardSetting::updateButton
virtual void updateButton(MythUIButtonListItem *item)
This method is called whenever the UI need to reflect a change Reimplement this If you widget need a ...
Definition: standardsettings.cpp:95
mythmainwindow.h
MythUIComboBoxSetting::getValueLabel
QString getValueLabel(void) const
Definition: standardsettings.cpp:496
MythUICheckBoxSetting::setValue
void setValue(const QString &newValue) override
Definition: standardsettings.cpp:732
StandardSettingDialog::deleteEntryConfirmed
void deleteEntryConfirmed(bool ok)
Definition: standardsettings.cpp:1127
Storage
Definition: mythstorage.h:23
StandardSetting::m_children
QList< StandardSetting * > m_children
Definition: standardsettings.h:123
MythUIButtonListItem::setChecked
void setChecked(CheckState state)
Definition: mythuibuttonlist.cpp:3679
MythScreenStack::AddScreen
virtual void AddScreen(MythScreenType *screen, bool allowFade=true)
Definition: mythscreenstack.cpp:52
MythUIFileBrowserSetting::edit
void edit(MythScreenType *screen) override
Definition: standardsettings.cpp:435
ShowOkPopup
MythConfirmationDialog * ShowOkPopup(const QString &message, bool showCancel)
Non-blocking version of MythPopupBox::showOkPopup()
Definition: mythdialogbox.cpp:566
selectEvent
static QKeyEvent selectEvent(QKeyEvent(QEvent::KeyPress, 0, Qt::NoModifier,"SELECT"))
StandardSetting::m_storage
Storage * m_storage
Definition: standardsettings.h:121
StandardSetting::isReadOnly
bool isReadOnly() const
Definition: standardsettings.h:46
MythUIComboBoxSetting::setValue
void setValue(int value) override
Definition: standardsettings.cpp:482
MythUIComboBoxSetting::m_values
QVector< QString > m_values
Definition: standardsettings.h:251
AutoIncrementSetting::m_table
QString m_table
Definition: standardsettings.h:137
StandardSettingDialog::deleteSelected
void deleteSelected(void)
Definition: standardsettings.cpp:1104
StandardSettingDialog::ShowMenu
void ShowMenu(void) override
Definition: standardsettings.cpp:1073
MythUIComboBoxSetting::size
virtual int size(void) const
Definition: standardsettings.cpp:630
GroupSetting
Definition: standardsettings.h:435
MythUISpinBoxSetting::m_step
int m_step
Definition: standardsettings.h:350
DialogCompletionEvent::GetData
QVariant GetData()
Definition: mythdialogbox.h:55
DialogCompletionEvent::GetResultText
QString GetResultText()
Definition: mythdialogbox.h:54
MythUICheckBoxSetting::boolValue
bool boolValue()
Definition: standardsettings.h:403