MythTV  master
mythscreentype.cpp
Go to the documentation of this file.
1 
2 #include "mythscreentype.h"
3 
4 #include <QCoreApplication>
5 #include <QDomDocument>
6 #include <QRunnable>
7 #include <utility>
8 
9 #include "mythcorecontext.h"
10 #include "mythobservable.h"
11 #include "mthreadpool.h"
12 
13 #include "mythscreenstack.h"
14 #include "mythmainwindow.h"
15 #include "mythuihelper.h"
16 #include "mythprogressdialog.h"
17 #include "mythuigroup.h"
18 #include "mythuistatetype.h"
19 #include "mythlogging.h"
20 #include "mythgesture.h"
21 #include "mythuitext.h"
22 
24 {
25  public:
26  explicit SemaphoreLocker(QSemaphore *lock) : m_lock(lock)
27  {
28  if (m_lock)
29  m_lock->acquire();
30  }
32  {
33  if (m_lock)
34  m_lock->release();
35  }
36  private:
37  QSemaphore *m_lock {nullptr};
38 };
39 
41  (QEvent::Type) QEvent::registerEventType();
42 
43 class ScreenLoadTask : public QRunnable
44 {
45  public:
46  explicit ScreenLoadTask(MythScreenType &parent) : m_parent(parent) {}
47 
48  private:
49  void run(void) override // QRunnable
50  {
51  m_parent.Load();
52  m_parent.m_isLoaded = true;
53  m_parent.m_isLoading = false;
54  m_parent.m_loadLock.release();
55  }
56 
58 };
59 
61  MythScreenStack *parent, const QString &name, bool fullscreen) :
62  MythUIComposite(parent, name)
63 {
64  m_fullScreen = fullscreen;
65 
66  m_screenStack = parent;
67 
68  // Can be overridden, of course, but default to full sized.
70 
71  if (QCoreApplication::applicationName() == MYTH_APPNAME_MYTHFRONTEND)
73  QString("SCREEN_TYPE CREATED %1").arg(name));
74 }
75 
77  MythUIType *parent, const QString &name, bool fullscreen) :
78  MythUIComposite(parent, name)
79 {
80  m_fullScreen = fullscreen;
81 
83 
84  if (QCoreApplication::applicationName() == MYTH_APPNAME_MYTHFRONTEND)
86  QString("SCREEN_TYPE CREATED %1").arg(name));
87 }
88 
90 {
91  if (QCoreApplication::applicationName() == MYTH_APPNAME_MYTHFRONTEND)
93  QString("SCREEN_TYPE DESTROYED %1").arg(objectName()));
94 
95  // locking ensures background screen load can finish running
96  SemaphoreLocker locker(&m_loadLock);
97 
98  m_currentFocusWidget = nullptr;
99  emit Exiting();
100 }
101 
103 {
104  return m_fullScreen;
105 }
106 
108 {
109  m_fullScreen = full;
110 }
111 
113 {
114  return m_currentFocusWidget;
115 }
116 
118 {
119  if (!widget || !widget->IsVisible(true))
120  {
121  QMap<int, MythUIType *>::iterator it = m_focusWidgetList.begin();
122 
123  while (it != m_focusWidgetList.end())
124  {
125  MythUIType *current = *it;
126 
127  if (current->CanTakeFocus() && current->IsVisible(true))
128  {
129  widget = current;
130  break;
131  }
132  ++it;
133  }
134  }
135 
136  if (!widget)
137  return false;
138 
139  if (m_currentFocusWidget == widget)
140  return true;
141 
142  MythUIText *helpText = dynamic_cast<MythUIText *>(GetChild("helptext"));
143  if (helpText)
144  helpText->Reset();
145 
148  m_currentFocusWidget = widget;
150 
151  if (helpText && !widget->GetHelpText().isEmpty())
152  helpText->SetText(widget->GetHelpText());
153 
154  return true;
155 }
156 
158 {
159  if (!m_currentFocusWidget || m_focusWidgetList.isEmpty())
160  return SetFocusWidget(nullptr);
161 
162  bool reachedCurrent = false;
163  bool looped = false;
164 
165  QMap<int, MythUIType *>::iterator it = m_focusWidgetList.begin();
166 
167  // There is probably a more efficient way to do this, but the list
168  // is never going to be that big so it will do for now
169  if (up)
170  {
171  while (it != m_focusWidgetList.end())
172  {
173  MythUIType *current = *it;
174 
175  if ((looped || reachedCurrent) &&
176  current->IsVisible(true) && current->IsEnabled())
177  return SetFocusWidget(current);
178 
180  reachedCurrent = true;
181 
182  ++it;
183 
184  if (it == m_focusWidgetList.end())
185  {
186  if (looped)
187  return false;
188  looped = true;
189  it = m_focusWidgetList.begin();
190  }
191  }
192  }
193  else
194  {
195  it = m_focusWidgetList.end() - 1;
196  while (it != m_focusWidgetList.begin() - 1)
197  {
198  MythUIType *current = *it;
199 
200  if ((looped || reachedCurrent) &&
201  current->IsVisible(true) && current->IsEnabled())
202  return SetFocusWidget(current);
203 
205  reachedCurrent = true;
206 
207  --it;
208 
209  if (it == m_focusWidgetList.begin() - 1)
210  {
211  if (looped)
212  return false;
213  looped = true;
214  it = m_focusWidgetList.end() - 1;
215  }
216  }
217  }
218 
219  return false;
220 }
221 
223 {
224  m_focusWidgetList.clear();
225  m_currentFocusWidget = nullptr;
226 
228 
229  if (!m_focusWidgetList.empty())
230  SetFocusWidget();
231 }
232 
234 {
235  return m_screenStack;
236 }
237 
239 {
240  if (!m_fullScreen)
241  {
242  if (!GetMythMainWindow()->GetPaintWindow()->mask().isEmpty())
243  {
244  // remove this screen's area from the mask so any embedded video is
245  // shown which was covered by this screen
246  if (!m_savedMask.isEmpty())
248  }
249  }
250 
252 }
253 
255 {
256  if (!m_fullScreen)
257  {
258  if (!GetMythMainWindow()->GetPaintWindow()->mask().isEmpty())
259  {
260  // add this screens area to the mask so any embedded video isn't
261  // shown in front of this screen
262  QRegion region = GetMythMainWindow()->GetPaintWindow()->mask();
263  m_savedMask = region;
264  region = region.united(QRegion(m_area));
265  GetMythMainWindow()->GetPaintWindow()->setMask(region);
266  }
267  }
268 
270 }
271 
273 {
274  return m_isDeleting;
275 }
276 
277 void MythScreenType::SetDeleting(bool deleting)
278 {
279  m_isDeleting = deleting;
280 }
281 
283 {
284  return true;
285 }
286 
298 {
299  // Virtual
300 }
301 
302 void MythScreenType::LoadInBackground(const QString& message)
303 {
304  m_loadLock.acquire();
305 
306  m_isLoading = true;
307  m_isLoaded = false;
308 
310 
311  OpenBusyPopup(message);
312 
313  auto *loadTask = new ScreenLoadTask(*this);
314  MThreadPool::globalInstance()->start(loadTask, "ScreenLoad");
315 }
316 
318 {
319  SemaphoreLocker locker(&m_loadLock);
320 
321  m_isLoading = true;
322  m_isLoaded = false;
323 
325  Load();
326  m_isLoaded = true;
327  m_isLoading = false;
328 }
329 
331 {
332  m_isInitialized = false;
334 }
335 
336 void MythScreenType::OpenBusyPopup(const QString& message)
337 {
338  if (m_busyPopup)
339  return;
340 
341  QString msg(tr("Loading..."));
342  if (!message.isEmpty())
343  msg = message;
344 
345  MythScreenStack *popupStack =
346  GetMythMainWindow()->GetStack("popup stack");
347  m_busyPopup =
348  new MythUIBusyDialog(msg, popupStack, "mythscreentypebusydialog");
349 
350  if (m_busyPopup->Create())
351  popupStack->AddScreen(m_busyPopup, false);
352 }
353 
355 {
356  if (m_busyPopup)
357  m_busyPopup->Close();
358  m_busyPopup = nullptr;
359 }
360 
361 void MythScreenType::SetBusyPopupMessage(const QString &message)
362 {
363  if (m_busyPopup)
364  m_busyPopup->SetMessage(message);
365 }
366 
368 {
369  if (m_busyPopup)
370  m_busyPopup->Reset();
371 }
372 
377 {
378  return m_isInitialized;
379 }
380 
382 {
383  SemaphoreLocker locker(&m_loadLock); // don't run while loading..
384 
385  CloseBusyPopup();
386  Init();
387  m_isInitialized = true;
388 }
389 
398 {
399  // Virtual
400 }
401 
403 {
404  CloseBusyPopup();
405  if (GetScreenStack())
406  GetScreenStack()->PopScreen(this);
407 }
408 
410 {
411  // Virtual
412 }
413 
414 bool MythScreenType::keyPressEvent(QKeyEvent *event)
415 {
416  if (!GetMythMainWindow()->IsExitingToMain() && m_currentFocusWidget &&
418  return true;
419 
420  bool handled = false;
421  QStringList actions;
422  handled = GetMythMainWindow()->TranslateKeyPress("Global", event, actions);
423 
424  for (int i = 0; i < actions.size() && !handled; i++)
425  {
426  QString action = actions[i];
427  handled = true;
428 
429  if (action == "LEFT" || action == "UP" || action == "PREVIOUS")
430  {
431  if (!NextPrevWidgetFocus(false))
432  handled = false;
433  }
434  else if (action == "RIGHT" || action == "DOWN" || action == "NEXT")
435  {
436  if (!NextPrevWidgetFocus(true))
437  handled = false;
438  }
439  else if (action == "ESCAPE")
440  Close();
441  else if (action == "MENU")
442  ShowMenu();
443  else if (action.startsWith("SYSEVENT"))
444  gCoreContext->SendSystemEvent(QString("KEY_%1").arg(action.mid(8)));
445  else if (action == ACTION_SCREENSHOT)
449  else
450  handled = false;
451  }
452 
453  return handled;
454 }
455 
457 {
458  bool handled = false;
459  if (event->GetGesture() == MythGestureEvent::Click)
460  {
461  switch (event->GetButton())
462  {
463  case Qt::RightButton:
464  ShowMenu();
465  handled = true;
466  break;
467  default :
468  break;
469  }
470 
471  }
472 
473  if (!handled)
474  {
475  MythUIType *clicked = GetChildAt(event->GetPosition());
476  if (clicked && clicked->IsEnabled())
477  {
478  SetFocusWidget(clicked);
479  if (clicked->gestureEvent(event))
480  handled = true;
481  }
482  }
483 
484  return handled;
485 }
486 
491  const QString &filename, QDomElement &element, bool showWarnings)
492 {
493  if (element.tagName() == "area")
494  {
495  MythRect rect = parseRect(element, false);
496  MythRect rectN = parseRect(element);
497  QRect screenArea = GetMythMainWindow()->GetUIScreenRect();
498 
499  if (rect.x() == -1)
500  rectN.moveLeft((screenArea.width() - rectN.width()) / 2);
501 
502  if (rect.y() == -1)
503  rectN.moveTop((screenArea.height() - rectN.height()) / 2);
504 
505  SetArea(rectN);
506 
507  m_fullScreen = (m_area.width() >= screenArea.width() &&
508  m_area.height() >= screenArea.height());
509  }
510  else
511  {
512  return MythUIType::ParseElement(filename, element, showWarnings);
513  }
514 
515  return true;
516 }
517 
522 {
523  auto *st = dynamic_cast<MythScreenType *>(base);
524  if (!st)
525  {
526  LOG(VB_GENERAL, LOG_ERR, "ERROR, bad parsing");
527  return;
528  }
529 
530  m_fullScreen = st->m_fullScreen;
531  m_isDeleting = false;
532 
533  MythUIType::CopyFrom(base);
534 
535  ConnectDependants(true);
536 
537  BuildFocusList();
538 };
539 
547 {
548  LOG(VB_GENERAL, LOG_ERR, "CreateCopy called on screentype - bad.");
549 }
550 
552 {
553  if (m_painter)
554  return m_painter;
555  if (m_screenStack)
557  return GetMythPainter();
558 }
MythUIType::keyPressEvent
virtual bool keyPressEvent(QKeyEvent *event)
Key event handler.
Definition: mythuitype.cpp:978
MythUIType::m_area
MythRect m_area
Definition: mythuitype.h:251
MythScreenType::LoadInBackground
void LoadInBackground(const QString &message="")
Definition: mythscreentype.cpp:302
MythGestureEvent::GetPosition
QPoint GetPosition() const
Definition: mythgesture.h:87
MythScreenType::SetBusyPopupMessage
void SetBusyPopupMessage(const QString &message)
Definition: mythscreentype.cpp:361
MythUIType::AddFocusableChildrenToList
void AddFocusableChildrenToList(FocusInfoType &focusList)
Definition: mythuitype.cpp:1129
mythuitext.h
MythScreenType::NextPrevWidgetFocus
virtual bool NextPrevWidgetFocus(bool up_or_down)
Definition: mythscreentype.cpp:157
MythUIText::Reset
void Reset(void) override
Reset the widget to it's original state, should not reset changes made by the theme.
Definition: mythuitext.cpp:84
MythUIScreenBounds::GetUIScreenRect
QRect GetUIScreenRect()
Definition: mythuiscreenbounds.cpp:192
MythUIType::ConnectDependants
void ConnectDependants(bool recurse=false)
Definition: mythuitype.cpp:1419
MythGestureEvent::GetGesture
Gesture GetGesture() const
Definition: mythgesture.h:85
MythGestureEvent::GetButton
Qt::MouseButton GetButton() const
Definition: mythgesture.h:88
MythScreenType::Close
virtual void Close()
Definition: mythscreentype.cpp:402
MythScreenType::m_currentFocusWidget
MythUIType * m_currentFocusWidget
Definition: mythscreentype.h:122
MythMainWindow::TranslateKeyPress
bool TranslateKeyPress(const QString &context, QKeyEvent *e, QStringList &actions, bool allowJumps=true)
Get a list of actions for a keypress in the given context.
Definition: mythmainwindow.cpp:1139
MythUIType::GetChild
MythUIType * GetChild(const QString &name) const
Get a named child of this UIType.
Definition: mythuitype.cpp:131
mythscreenstack.h
MythUIBusyDialog::Create
bool Create(void) override
Definition: mythprogressdialog.cpp:32
MythScreenType::MythScreenType
MythScreenType(MythScreenStack *parent, const QString &name, bool fullscreen=true)
Definition: mythscreentype.cpp:60
MythScreenStack
Definition: mythscreenstack.h:16
MythScreenType::Create
virtual bool Create(void)
Definition: mythscreentype.cpp:282
arg
arg(title).arg(filename).arg(doDelete))
MythMainWindow::HandleTVAction
void HandleTVAction(const QString &Action)
Definition: mythmainwindow.cpp:1549
MythUIType::SetArea
virtual void SetArea(const MythRect &rect)
Definition: mythuitype.cpp:595
MythScreenType::OpenBusyPopup
void OpenBusyPopup(const QString &message="")
Definition: mythscreentype.cpp:336
MythScreenType::ParseElement
bool ParseElement(const QString &filename, QDomElement &element, bool showWarnings) override
Parse the xml definition of this widget setting the state of the object accordingly.
Definition: mythscreentype.cpp:490
LOG
#define LOG(_MASK_, _LEVEL_, _QSTRING_)
Definition: mythlogging.h:23
MythScreenType
Screen in which all other widgets are contained and rendered.
Definition: mythscreentype.h:45
mythuistatetype.h
MYTH_APPNAME_MYTHFRONTEND
#define MYTH_APPNAME_MYTHFRONTEND
Definition: mythcorecontext.h:20
ScreenLoadCompletionEvent::kEventType
static Type kEventType
Definition: mythscreentype.h:32
ACTION_SCREENSHOT
#define ACTION_SCREENSHOT
Definition: mythuiactions.h:22
MythRect
Wrapper around QRect allowing us to handle percentage and other relative values for areas in mythui.
Definition: mythrect.h:18
MythScreenType::CopyFrom
void CopyFrom(MythUIType *base) override
Copy this widgets state from another.
Definition: mythscreentype.cpp:521
MythMainWindow::GetStack
MythScreenStack * GetStack(const QString &stackname)
Definition: mythmainwindow.cpp:326
MythScreenType::Load
virtual void Load(void)
Load data which will ultimately be displayed on-screen or used to determine what appears on-screen (S...
Definition: mythscreentype.cpp:297
MythDate::current
QDateTime current(bool stripped)
Returns current Date and Time in UTC.
Definition: mythdate.cpp:10
mythprogressdialog.h
ScreenLoadTask::m_parent
MythScreenType & m_parent
Definition: mythscreentype.cpp:57
MythScreenType::GetFocusWidget
MythUIType * GetFocusWidget(void) const
Definition: mythscreentype.cpp:112
MythRect::moveLeft
void moveLeft(const QString &sX)
Definition: mythrect.cpp:309
MythScreenType::ResetBusyPopup
void ResetBusyPopup(void)
Definition: mythscreentype.cpp:367
MythUIType::ActivateAnimations
void ActivateAnimations(MythUIAnimation::Trigger trigger)
Definition: mythuitype.cpp:269
MythScreenType::ReloadInBackground
void ReloadInBackground(void)
Definition: mythscreentype.cpp:330
mythlogging.h
SemaphoreLocker::m_lock
QSemaphore * m_lock
Definition: mythscreentype.cpp:37
MythUIType::LoseFocus
void LoseFocus()
Definition: mythuitype.cpp:1007
ACTION_TVPOWEROFF
#define ACTION_TVPOWEROFF
Definition: mythuiactions.h:24
MythUIAnimation::AboutToShow
@ AboutToShow
Definition: mythuianimation.h:46
MythCoreContext::SendSystemEvent
void SendSystemEvent(const QString &msg)
Definition: mythcorecontext.cpp:1550
MythUIType::IsEnabled
bool IsEnabled(void) const
Definition: mythuitype.h:96
MythScreenType::SetFocusWidget
bool SetFocusWidget(MythUIType *widget=nullptr)
Definition: mythscreentype.cpp:117
MythScreenType::GetPainter
MythPainter * GetPainter(void) override
Definition: mythscreentype.cpp:551
MythScreenType::BuildFocusList
void BuildFocusList(void)
Definition: mythscreentype.cpp:222
MythRect::moveTop
void moveTop(const QString &sY)
Definition: mythrect.cpp:319
filename
QString filename
Definition: mythplugins/mytharchive/mytharchivehelper/main.cpp:637
MythScreenType::m_busyPopup
MythUIBusyDialog * m_busyPopup
Definition: mythscreentype.h:129
MythGestureEvent::Click
@ Click
Definition: mythgesture.h:77
MythUIType::CopyFrom
virtual void CopyFrom(MythUIType *base)
Copy this widgets state from another.
Definition: mythuitype.cpp:1151
SemaphoreLocker::~SemaphoreLocker
~SemaphoreLocker()
Definition: mythscreentype.cpp:31
MythUIBusyDialog
Definition: mythprogressdialog.h:37
MythMainWindow::GetPaintWindow
QWidget * GetPaintWindow()
Definition: mythmainwindow.cpp:271
MythScreenStack::GetPainter
static MythPainter * GetPainter(void)
Definition: mythscreenstack.cpp:384
XMLParseBase::parseRect
static MythRect parseRect(const QString &text, bool normalize=true)
Definition: xmlparsebase.cpp:137
MythScreenType::Init
virtual void Init(void)
Used after calling Load() to assign data to widgets and other UI initilisation which is prohibited in...
Definition: mythscreentype.cpp:397
MythScreenType::m_isInitialized
bool m_isInitialized
Definition: mythscreentype.h:120
ACTION_TVPOWERON
#define ACTION_TVPOWERON
Definition: mythuiactions.h:25
gCoreContext
MythCoreContext * gCoreContext
This global variable contains the MythCoreContext instance for the app.
Definition: mythcorecontext.cpp:56
MythUIType::TakeFocus
bool TakeFocus()
Definition: mythuitype.cpp:1017
MythScreenType::m_focusWidgetList
FocusInfoType m_focusWidgetList
Definition: mythscreentype.h:126
MythScreenType::LoadInForeground
void LoadInForeground(void)
Definition: mythscreentype.cpp:317
MythScreenType::GetScreenStack
MythScreenStack * GetScreenStack() const
Definition: mythscreentype.cpp:233
MythScreenType::m_loadLock
QSemaphore m_loadLock
Definition: mythscreentype.h:117
mythgesture.h
A C++ ripoff of the stroke library for MythTV.
ScreenLoadTask::ScreenLoadTask
ScreenLoadTask(MythScreenType &parent)
Definition: mythscreentype.cpp:46
mythuigroup.h
MythUIType
The base class on which all widgets and screens are based.
Definition: mythuitype.h:66
MythScreenType::~MythScreenType
~MythScreenType() override
Definition: mythscreentype.cpp:89
MythMainWindow::ScreenShot
static bool ScreenShot(int w=0, int h=0, QString filename="")
Definition: mythmainwindow.cpp:576
mthreadpool.h
mythuihelper.h
MythUIText
All purpose text widget, displays a text string.
Definition: mythuitext.h:29
MythScreenType::keyPressEvent
bool keyPressEvent(QKeyEvent *event) override
Key event handler.
Definition: mythscreentype.cpp:414
MythScreenType::m_isDeleting
bool m_isDeleting
Definition: mythscreentype.h:115
MythScreenType::doInit
void doInit(void)
Definition: mythscreentype.cpp:381
MythScreenType::CreateCopy
void CreateCopy(MythUIType *parent) override
Copy the state of this widget to the one given, it must be of the same type.
Definition: mythscreentype.cpp:546
mythcorecontext.h
MythScreenType::ScreenLoadTask
friend class ScreenLoadTask
Definition: mythscreentype.h:48
MythScreenType::m_isLoaded
volatile bool m_isLoaded
Definition: mythscreentype.h:119
MythPainter
Definition: mythpainter.h:33
MythUIType::gestureEvent
virtual bool gestureEvent(MythGestureEvent *event)
Mouse click/movement handler, receives mouse gesture events from the QCoreApplication event loop.
Definition: mythuitype.cpp:994
MythScreenType::IsDeleting
bool IsDeleting(void) const
Definition: mythscreentype.cpp:272
SemaphoreLocker::SemaphoreLocker
SemaphoreLocker(QSemaphore *lock)
Definition: mythscreentype.cpp:26
MythUIType::GetChildAt
MythUIType * GetChildAt(const QPoint &p, bool recursive=true, bool focusable=true) const
Return the first MythUIType at the given coordinates.
Definition: mythuitype.cpp:222
MythUIText::SetText
virtual void SetText(const QString &text)
Definition: mythuitext.cpp:134
MythScreenType::m_isLoading
volatile bool m_isLoading
Definition: mythscreentype.h:118
MythUIBusyDialog::SetMessage
void SetMessage(const QString &message)
Definition: mythprogressdialog.cpp:45
MythScreenStack::PopScreen
virtual void PopScreen(MythScreenType *screen=nullptr, bool allowFade=true, bool deleteScreen=true)
Definition: mythscreenstack.cpp:83
MythScreenType::ShowMenu
virtual void ShowMenu(void)
Definition: mythscreentype.cpp:409
MythUIType::m_painter
MythPainter * m_painter
Definition: mythuitype.h:272
GetMythMainWindow
MythMainWindow * GetMythMainWindow(void)
Definition: mythmainwindow.cpp:105
build_compdb.action
action
Definition: build_compdb.py:9
MythScreenType::m_fullScreen
bool m_fullScreen
Definition: mythscreentype.h:114
MythScreenType::Exiting
void Exiting()
MythScreenType::gestureEvent
bool gestureEvent(MythGestureEvent *event) override
Mouse click/movement handler, receives mouse gesture events from the QCoreApplication event loop.
Definition: mythscreentype.cpp:456
MythUIAnimation::AboutToHide
@ AboutToHide
Definition: mythuianimation.h:46
MythScreenStack::AllowReInit
void AllowReInit(void)
Definition: mythscreenstack.h:33
MythUIBusyDialog::Reset
void Reset(void) override
Reset the widget to it's original state, should not reset changes made by the theme.
Definition: mythprogressdialog.cpp:53
MythScreenType::m_savedMask
QRegion m_savedMask
Definition: mythscreentype.h:131
MythScreenType::aboutToHide
virtual void aboutToHide(void)
Definition: mythscreentype.cpp:238
MythScreenType::m_screenStack
MythScreenStack * m_screenStack
Definition: mythscreentype.h:128
MythGestureEvent
A custom event that represents a mouse gesture.
Definition: mythgesture.h:40
MythScreenType::SetDeleting
void SetDeleting(bool deleting)
Definition: mythscreentype.cpp:277
GetMythPainter
MythPainter * GetMythPainter(void)
Definition: mythmainwindow.cpp:120
MythScreenType::aboutToShow
virtual void aboutToShow(void)
Definition: mythscreentype.cpp:254
MythUIType::ParseElement
virtual bool ParseElement(const QString &filename, QDomElement &element, bool showWarnings)
Parse the xml definition of this widget setting the state of the object accordingly.
Definition: mythuitype.cpp:1217
MThreadPool::globalInstance
static MThreadPool * globalInstance(void)
Definition: mthreadpool.cpp:306
mythmainwindow.h
SemaphoreLocker
Definition: mythscreentype.cpp:24
MythScreenStack::AddScreen
virtual void AddScreen(MythScreenType *screen, bool allowFade=true)
Definition: mythscreenstack.cpp:49
MythScreenType::IsInitialized
bool IsInitialized(void) const
Has Init() been called on this screen?
Definition: mythscreentype.cpp:376
MythScreenType::IsFullscreen
bool IsFullscreen(void) const
Definition: mythscreentype.cpp:102
MythUIType::IsVisible
bool IsVisible(bool recurse=false) const
Definition: mythuitype.cpp:888
ScreenLoadTask::run
void run(void) override
Definition: mythscreentype.cpp:49
MythScreenType::CloseBusyPopup
void CloseBusyPopup(void)
Definition: mythscreentype.cpp:354
MThreadPool::start
void start(QRunnable *runnable, const QString &debugName, int priority=0)
Definition: mthreadpool.cpp:341
mythscreentype.h
ScreenLoadTask
Definition: mythscreentype.cpp:44
mythobservable.h
MythScreenType::SetFullscreen
void SetFullscreen(bool full)
Definition: mythscreentype.cpp:107
MythUIType::GetHelpText
QString GetHelpText(void) const
Definition: mythuitype.h:154
MythUIComposite
Definition: mythuicomposite.h:8