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 <QInputMethodEvent>
7 #include <QRunnable>
8 #include <utility>
9 
14 
15 #include "mythscreenstack.h"
16 #include "mythmainwindow.h"
17 #include "mythuihelper.h"
18 #include "mythprogressdialog.h"
19 #include "mythuigroup.h"
20 #include "mythuistatetype.h"
21 #include "mythgesture.h"
22 #include "mythuitext.h"
23 
25 {
26  public:
27  explicit SemaphoreLocker(QSemaphore *lock) : m_lock(lock)
28  {
29  if (m_lock)
30  m_lock->acquire();
31  }
33  {
34  if (m_lock)
35  m_lock->release();
36  }
37  private:
38  QSemaphore *m_lock {nullptr};
39 };
40 
41 const QEvent::Type ScreenLoadCompletionEvent::kEventType =
42  (QEvent::Type) QEvent::registerEventType();
43 
44 class ScreenLoadTask : public QRunnable
45 {
46  public:
47  explicit ScreenLoadTask(MythScreenType &parent) : m_parent(parent) {}
48 
49  private:
50  void run(void) override // QRunnable
51  {
52  m_parent.Load();
53  m_parent.m_isLoaded = true;
54  m_parent.m_isLoading = false;
55  m_parent.m_loadLock.release();
56  }
57 
59 };
60 
62  MythScreenStack *parent, const QString &name, bool fullscreen) :
63  MythUIComposite(parent, name)
64 {
65  m_fullScreen = fullscreen;
66 
67  m_screenStack = parent;
68 
69  // Can be overridden, of course, but default to full sized.
71 
72  if (QCoreApplication::applicationName() == MYTH_APPNAME_MYTHFRONTEND)
74  QString("SCREEN_TYPE CREATED %1").arg(name));
75 }
76 
78  MythUIType *parent, const QString &name, bool fullscreen) :
79  MythUIComposite(parent, name)
80 {
81  m_fullScreen = fullscreen;
82 
84 
85  if (QCoreApplication::applicationName() == MYTH_APPNAME_MYTHFRONTEND)
87  QString("SCREEN_TYPE CREATED %1").arg(name));
88 }
89 
91 {
92  if (QCoreApplication::applicationName() == MYTH_APPNAME_MYTHFRONTEND)
94  QString("SCREEN_TYPE DESTROYED %1").arg(objectName()));
95 
96  // locking ensures background screen load can finish running
97  SemaphoreLocker locker(&m_loadLock);
98 
99  m_currentFocusWidget = nullptr;
100  emit Exiting();
101 }
102 
104 {
105  return m_fullScreen;
106 }
107 
109 {
110  m_fullScreen = full;
111 }
112 
114 {
115  return m_currentFocusWidget;
116 }
117 
119 {
120  if (!widget || !widget->IsVisible(true))
121  {
122  for (auto *current : std::as_const(m_focusWidgetList))
123  {
124  if (current->CanTakeFocus() && current->IsVisible(true))
125  {
126  widget = current;
127  break;
128  }
129  }
130  }
131 
132  if (!widget)
133  return false;
134 
135  if (m_currentFocusWidget == widget)
136  return true;
137 
138  MythUIText *helpText = dynamic_cast<MythUIText *>(GetChild("helptext"));
139  if (helpText)
140  helpText->Reset();
141 
144  m_currentFocusWidget = widget;
146 
147  if (helpText && !widget->GetHelpText().isEmpty())
148  helpText->SetText(widget->GetHelpText());
149 
150  return true;
151 }
152 
154 {
155  if (!m_currentFocusWidget || m_focusWidgetList.isEmpty())
156  return SetFocusWidget(nullptr);
157  if (m_focusWidgetList.size() == 1)
158  return false;
159 
160  // Run the list from the current pointer to the end/begin and loop
161  // around back to itself. Start by geting an iterator pointing at
162  // the current focus (or at the end if the focus isn't in the
163  // list).
166  if (up)
167  {
168  if (it != m_focusWidgetList.end())
169  it++;
170  if (it == m_focusWidgetList.end())
171  it = m_focusWidgetList.begin();
172  // Put an upper limit on loops to guarantee exit at some point.
173  for (auto count = m_focusWidgetList.size() * 2; count > 0; count--)
174  {
175  MythUIType *current = *it;
176  if (current->IsVisible(true) && current->IsEnabled())
177  return SetFocusWidget(current);
178  it++;
179  if (it == m_focusWidgetList.end())
180  it = m_focusWidgetList.begin();
181  if (*it == m_currentFocusWidget)
182  return false;
183  }
184  }
185  else
186  {
187  if (it == m_focusWidgetList.begin())
188  it = m_focusWidgetList.end();
189  // Put an upper limit on loops to guarantee exit at some point.
190  for (auto count = m_focusWidgetList.size() * 2; count > 0; count--)
191  {
192  it--;
193  if (*it == m_currentFocusWidget)
194  return false;
195  MythUIType *current = *it;
196  if (current->IsVisible(true) && current->IsEnabled())
197  return SetFocusWidget(current);
198  if (it == m_focusWidgetList.begin())
199  it = m_focusWidgetList.end();
200  }
201  }
202 
203  return false;
204 }
205 
207 {
208  m_focusWidgetList.clear();
209  m_currentFocusWidget = nullptr;
210 
212 
213  if (!m_focusWidgetList.empty())
214  SetFocusWidget();
215 }
216 
218 {
219  return m_screenStack;
220 }
221 
223 {
224  if (!m_fullScreen)
225  {
226  if (!GetMythMainWindow()->GetPaintWindow()->mask().isEmpty())
227  {
228  // remove this screen's area from the mask so any embedded video is
229  // shown which was covered by this screen
230  if (!m_savedMask.isEmpty())
232  }
233  }
234 
236 }
237 
239 {
240  if (!m_fullScreen)
241  {
242  if (!GetMythMainWindow()->GetPaintWindow()->mask().isEmpty())
243  {
244  // add this screens area to the mask so any embedded video isn't
245  // shown in front of this screen
246  QRegion region = GetMythMainWindow()->GetPaintWindow()->mask();
247  m_savedMask = region;
248  region = region.united(QRegion(m_area));
249  GetMythMainWindow()->GetPaintWindow()->setMask(region);
250  }
251  }
252 
254 }
255 
257 {
258  return m_isDeleting;
259 }
260 
261 void MythScreenType::SetDeleting(bool deleting)
262 {
263  m_isDeleting = deleting;
264 }
265 
267 {
268  return true;
269 }
270 
282 {
283  // Virtual
284 }
285 
286 void MythScreenType::LoadInBackground(const QString& message)
287 {
288  m_loadLock.acquire();
289 
290  m_isLoading = true;
291  m_isLoaded = false;
292 
294 
295  OpenBusyPopup(message);
296 
297  auto *loadTask = new ScreenLoadTask(*this);
298  MThreadPool::globalInstance()->start(loadTask, "ScreenLoad");
299 }
300 
302 {
303  SemaphoreLocker locker(&m_loadLock);
304 
305  m_isLoading = true;
306  m_isLoaded = false;
307 
309  Load();
310  m_isLoaded = true;
311  m_isLoading = false;
312 }
313 
315 {
316  m_isInitialized = false;
318 }
319 
320 void MythScreenType::OpenBusyPopup(const QString& message)
321 {
322  if (m_busyPopup)
323  return;
324 
325  QString msg(tr("Loading..."));
326  if (!message.isEmpty())
327  msg = message;
328 
329  MythScreenStack *popupStack =
330  GetMythMainWindow()->GetStack("popup stack");
331  m_busyPopup =
332  new MythUIBusyDialog(msg, popupStack, "mythscreentypebusydialog");
333 
334  if (m_busyPopup->Create())
335  popupStack->AddScreen(m_busyPopup, false);
336 }
337 
339 {
340  if (m_busyPopup)
341  m_busyPopup->Close();
342  m_busyPopup = nullptr;
343 }
344 
345 void MythScreenType::SetBusyPopupMessage(const QString &message)
346 {
347  if (m_busyPopup)
348  m_busyPopup->SetMessage(message);
349 }
350 
352 {
353  if (m_busyPopup)
354  m_busyPopup->Reset();
355 }
356 
361 {
362  return m_isInitialized;
363 }
364 
366 {
367  SemaphoreLocker locker(&m_loadLock); // don't run while loading..
368 
369  CloseBusyPopup();
370  Init();
371  m_isInitialized = true;
372 }
373 
382 {
383  // Virtual
384 }
385 
387 {
388  CloseBusyPopup();
389  if (GetScreenStack())
390  GetScreenStack()->PopScreen(this);
391 }
392 
394 {
395  // Virtual
396 }
397 
398 bool MythScreenType::inputMethodEvent(QInputMethodEvent *event)
399 {
402 }
403 
404 bool MythScreenType::keyPressEvent(QKeyEvent *event)
405 {
406  if (!GetMythMainWindow()->IsExitingToMain() && m_currentFocusWidget &&
408  return true;
409 
410  bool handled = false;
411  QStringList actions;
412  handled = GetMythMainWindow()->TranslateKeyPress("Global", event, actions);
413 
414  for (int i = 0; i < actions.size() && !handled; i++)
415  {
416  QString action = actions[i];
417  handled = true;
418 
419  if (action == "LEFT" || action == "UP" || action == "PREVIOUS")
420  {
421  if (!NextPrevWidgetFocus(false))
422  handled = false;
423  }
424  else if (action == "RIGHT" || action == "DOWN" || action == "NEXT")
425  {
426  if (!NextPrevWidgetFocus(true))
427  handled = false;
428  }
429  else if (action == "ESCAPE")
430  Close();
431  else if (action == "MENU")
432  ShowMenu();
433  else if (action.startsWith("SYSEVENT"))
434  gCoreContext->SendSystemEvent(QString("KEY_%1").arg(action.mid(8)));
435  else if (action == ACTION_SCREENSHOT)
439  else
440  handled = false;
441  }
442 
443  return handled;
444 }
445 
447 {
448  bool handled = false;
449  if (event->GetGesture() == MythGestureEvent::Click)
450  {
451  switch (event->GetButton())
452  {
453  case Qt::RightButton:
454  ShowMenu();
455  handled = true;
456  break;
457  default :
458  break;
459  }
460 
461  }
462 
463  if (!handled)
464  {
465  MythUIType *clicked = GetChildAt(event->GetPosition());
466  if (clicked && clicked->IsEnabled())
467  {
468  SetFocusWidget(clicked);
469  if (clicked->gestureEvent(event))
470  handled = true;
471  }
472  }
473 
474  return handled;
475 }
476 
481  const QString &filename, QDomElement &element, bool showWarnings)
482 {
483  if (element.tagName() == "area")
484  {
485  MythRect rect = parseRect(element, false);
486  MythRect rectN = parseRect(element);
487  QRect screenArea = GetMythMainWindow()->GetUIScreenRect();
488 
489  if (rect.x() == -1)
490  rectN.moveLeft((screenArea.width() - rectN.width()) / 2);
491 
492  if (rect.y() == -1)
493  rectN.moveTop((screenArea.height() - rectN.height()) / 2);
494 
495  SetArea(rectN);
496 
497  m_fullScreen = (m_area.width() >= screenArea.width() &&
498  m_area.height() >= screenArea.height());
499  }
500  else
501  {
502  return MythUIType::ParseElement(filename, element, showWarnings);
503  }
504 
505  return true;
506 }
507 
512 {
513  auto *st = dynamic_cast<MythScreenType *>(base);
514  if (!st)
515  {
516  LOG(VB_GENERAL, LOG_ERR, "ERROR, bad parsing");
517  return;
518  }
519 
520  m_fullScreen = st->m_fullScreen;
521  m_isDeleting = false;
522 
523  MythUIType::CopyFrom(base);
524 
525  ConnectDependants(true);
526 
527  BuildFocusList();
528 };
529 
537 {
538  LOG(VB_GENERAL, LOG_ERR, "CreateCopy called on screentype - bad.");
539 }
540 
542 {
543  if (m_painter)
544  return m_painter;
545  if (m_screenStack)
547  return GetMythPainter();
548 }
MythUIType::keyPressEvent
virtual bool keyPressEvent(QKeyEvent *event)
Key event handler.
Definition: mythuitype.cpp:992
MythUIType::m_area
MythRect m_area
Definition: mythuitype.h:274
MythScreenType::LoadInBackground
void LoadInBackground(const QString &message="")
Definition: mythscreentype.cpp:286
MythGestureEvent::GetPosition
QPoint GetPosition() const
Definition: mythgesture.h:87
MythScreenType::SetBusyPopupMessage
void SetBusyPopupMessage(const QString &message)
Definition: mythscreentype.cpp:345
MythUIType::AddFocusableChildrenToList
void AddFocusableChildrenToList(FocusInfoType &focusList)
Definition: mythuitype.cpp:1152
mythuitext.h
MythUIType::inputMethodEvent
virtual bool inputMethodEvent(QInputMethodEvent *event)
Input Method event handler.
Definition: mythuitype.cpp:1001
MythScreenType::NextPrevWidgetFocus
virtual bool NextPrevWidgetFocus(bool up_or_down)
Definition: mythscreentype.cpp:153
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:82
MythUIScreenBounds::GetUIScreenRect
QRect GetUIScreenRect()
Definition: mythuiscreenbounds.cpp:198
MythUIType::ConnectDependants
void ConnectDependants(bool recurse=false)
Definition: mythuitype.cpp:1442
MythGestureEvent::GetGesture
Gesture GetGesture() const
Definition: mythgesture.h:85
MythUIType::GetChildAt
MythUIType * GetChildAt(QPoint p, bool recursive=true, bool focusable=true) const
Return the first MythUIType at the given coordinates.
Definition: mythuitype.cpp:236
MythGestureEvent::GetButton
Qt::MouseButton GetButton() const
Definition: mythgesture.h:88
ACTION_SCREENSHOT
static constexpr const char * ACTION_SCREENSHOT
Definition: mythuiactions.h:22
MythScreenType::Close
virtual void Close()
Definition: mythscreentype.cpp:386
MythScreenType::m_currentFocusWidget
MythUIType * m_currentFocusWidget
Definition: mythscreentype.h:124
MythUIType::GetChild
MythUIType * GetChild(const QString &name) const
Get a named child of this UIType.
Definition: mythuitype.cpp:133
mythscreenstack.h
MythUIBusyDialog::Create
bool Create(void) override
Definition: mythprogressdialog.cpp:32
MythScreenStack
Definition: mythscreenstack.h:16
MythScreenType::Create
virtual bool Create(void)
Definition: mythscreentype.cpp:266
MythMainWindow::HandleTVAction
void HandleTVAction(const QString &Action)
Definition: mythmainwindow.cpp:1522
MythUIType::SetArea
virtual void SetArea(const MythRect &rect)
Definition: mythuitype.cpp:609
MythScreenType::OpenBusyPopup
void OpenBusyPopup(const QString &message="")
Definition: mythscreentype.cpp:320
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:480
LOG
#define LOG(_MASK_, _LEVEL_, _QSTRING_)
Definition: mythlogging.h:39
MythScreenType
Screen in which all other widgets are contained and rendered.
Definition: mythscreentype.h:45
mythuistatetype.h
MythUIType::m_focusOrder
int m_focusOrder
Definition: mythuitype.h:272
MythRect
Wrapper around QRect allowing us to handle percentage and other relative values for areas in mythui.
Definition: mythrect.h:17
MythScreenType::CopyFrom
void CopyFrom(MythUIType *base) override
Copy this widgets state from another.
Definition: mythscreentype.cpp:511
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:281
MythDate::current
QDateTime current(bool stripped)
Returns current Date and Time in UTC.
Definition: mythdate.cpp:14
mythprogressdialog.h
ScreenLoadTask::m_parent
MythScreenType & m_parent
Definition: mythscreentype.cpp:58
MythScreenType::GetFocusWidget
MythUIType * GetFocusWidget(void) const
Definition: mythscreentype.cpp:113
MythRect::moveLeft
void moveLeft(const QString &sX)
Definition: mythrect.cpp:309
MythScreenType::ResetBusyPopup
void ResetBusyPopup(void)
Definition: mythscreentype.cpp:351
MythUIType::ActivateAnimations
void ActivateAnimations(MythUIAnimation::Trigger trigger)
Definition: mythuitype.cpp:283
MythScreenType::ReloadInBackground
void ReloadInBackground(void)
Definition: mythscreentype.cpp:314
mythlogging.h
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:1112
SemaphoreLocker::m_lock
QSemaphore * m_lock
Definition: mythscreentype.cpp:38
MythUIType::LoseFocus
void LoseFocus()
Definition: mythuitype.cpp:1029
ACTION_TVPOWERON
static constexpr const char * ACTION_TVPOWERON
Definition: mythuiactions.h:25
MythUIAnimation::AboutToShow
@ AboutToShow
Definition: mythuianimation.h:50
MythCoreContext::SendSystemEvent
void SendSystemEvent(const QString &msg)
Definition: mythcorecontext.cpp:1544
MythUIType::IsEnabled
bool IsEnabled(void) const
Definition: mythuitype.h:117
MythScreenType::SetFocusWidget
bool SetFocusWidget(MythUIType *widget=nullptr)
Definition: mythscreentype.cpp:118
MythScreenType::GetPainter
MythPainter * GetPainter(void) override
Definition: mythscreentype.cpp:541
MythScreenType::BuildFocusList
void BuildFocusList(void)
Definition: mythscreentype.cpp:206
MythRect::moveTop
void moveTop(const QString &sY)
Definition: mythrect.cpp:319
MythScreenType::m_busyPopup
MythUIBusyDialog * m_busyPopup
Definition: mythscreentype.h:131
MythGestureEvent::Click
@ Click
Definition: mythgesture.h:77
MythUIType::CopyFrom
virtual void CopyFrom(MythUIType *base)
Copy this widgets state from another.
Definition: mythuitype.cpp:1174
SemaphoreLocker::~SemaphoreLocker
~SemaphoreLocker()
Definition: mythscreentype.cpp:32
MythUIBusyDialog
Definition: mythprogressdialog.h:36
MythMainWindow::GetPaintWindow
QWidget * GetPaintWindow()
Definition: mythmainwindow.cpp:268
MythScreenStack::GetPainter
static MythPainter * GetPainter(void)
Definition: mythscreenstack.cpp:387
XMLParseBase::parseRect
static MythRect parseRect(const QString &text, bool normalize=true)
Definition: xmlparsebase.cpp:132
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:381
ACTION_TVPOWEROFF
static constexpr const char * ACTION_TVPOWEROFF
Definition: mythuiactions.h:24
MythScreenType::m_isInitialized
bool m_isInitialized
Definition: mythscreentype.h:122
gCoreContext
MythCoreContext * gCoreContext
This global variable contains the MythCoreContext instance for the app.
Definition: mythcorecontext.cpp:55
MythUIType::TakeFocus
bool TakeFocus()
Definition: mythuitype.cpp:1039
MythScreenType::m_focusWidgetList
FocusInfoType m_focusWidgetList
Definition: mythscreentype.h:128
MythScreenType::LoadInForeground
void LoadInForeground(void)
Definition: mythscreentype.cpp:301
MythScreenType::GetScreenStack
MythScreenStack * GetScreenStack() const
Definition: mythscreentype.cpp:217
MythScreenType::m_loadLock
QSemaphore m_loadLock
Definition: mythscreentype.h:119
mythgesture.h
A C++ ripoff of the stroke library for MythTV.
ScreenLoadTask::ScreenLoadTask
ScreenLoadTask(MythScreenType &parent)
Definition: mythscreentype.cpp:47
mythuigroup.h
MythUIType
The base class on which all widgets and screens are based.
Definition: mythuitype.h:85
MythScreenType::~MythScreenType
~MythScreenType() override
Definition: mythscreentype.cpp:90
mthreadpool.h
mythuihelper.h
MYTH_APPNAME_MYTHFRONTEND
static constexpr const char * MYTH_APPNAME_MYTHFRONTEND
Definition: mythcorecontext.h:21
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
MythScreenType::m_isDeleting
bool m_isDeleting
Definition: mythscreentype.h:117
MythScreenType::doInit
void doInit(void)
Definition: mythscreentype.cpp:365
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:536
mythcorecontext.h
MythScreenType::ScreenLoadTask
friend class ScreenLoadTask
Definition: mythscreentype.h:49
MythScreenType::inputMethodEvent
bool inputMethodEvent(QInputMethodEvent *event) override
Input Method event handler.
Definition: mythscreentype.cpp:398
MythScreenType::m_isLoaded
volatile bool m_isLoaded
Definition: mythscreentype.h:121
MythPainter
Definition: mythpainter.h:34
MythUIType::gestureEvent
virtual bool gestureEvent(MythGestureEvent *event)
Mouse click/movement handler, receives mouse gesture events from the QCoreApplication event loop.
Definition: mythuitype.cpp:1016
MythScreenType::IsDeleting
bool IsDeleting(void) const
Definition: mythscreentype.cpp:256
SemaphoreLocker::SemaphoreLocker
SemaphoreLocker(QSemaphore *lock)
Definition: mythscreentype.cpp:27
MythUIText::SetText
virtual void SetText(const QString &text)
Definition: mythuitext.cpp:132
MythScreenType::m_isLoading
volatile bool m_isLoading
Definition: mythscreentype.h:120
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:86
MythScreenType::ShowMenu
virtual void ShowMenu(void)
Definition: mythscreentype.cpp:393
MythUIType::m_painter
MythPainter * m_painter
Definition: mythuitype.h:295
GetMythMainWindow
MythMainWindow * GetMythMainWindow(void)
Definition: mythmainwindow.cpp:104
build_compdb.action
action
Definition: build_compdb.py:9
MythScreenType::m_fullScreen
bool m_fullScreen
Definition: mythscreentype.h:116
MythMainWindow::IsExitingToMain
bool IsExitingToMain() const
Definition: mythmainwindow.cpp:1040
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:446
MythUIAnimation::AboutToHide
@ AboutToHide
Definition: mythuianimation.h:50
MythMainWindow::GetStack
MythScreenStack * GetStack(const QString &Stackname)
Definition: mythmainwindow.cpp:323
MythScreenStack::AllowReInit
void AllowReInit(void)
Definition: mythscreenstack.h:34
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:133
MythScreenType::aboutToHide
virtual void aboutToHide(void)
Definition: mythscreentype.cpp:222
MythScreenType::m_screenStack
MythScreenStack * m_screenStack
Definition: mythscreentype.h:130
MythGestureEvent
A custom event that represents a mouse gesture.
Definition: mythgesture.h:39
MythScreenType::SetDeleting
void SetDeleting(bool deleting)
Definition: mythscreentype.cpp:261
GetMythPainter
MythPainter * GetMythPainter(void)
Definition: mythmainwindow.cpp:119
MythScreenType::aboutToShow
virtual void aboutToShow(void)
Definition: mythscreentype.cpp:238
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:1240
MythMainWindow::ScreenShot
static bool ScreenShot(int Width=0, int Height=0, QString Filename="")
Definition: mythmainwindow.cpp:565
build_compdb.filename
filename
Definition: build_compdb.py:21
MThreadPool::globalInstance
static MThreadPool * globalInstance(void)
Definition: mthreadpool.cpp:307
mythmainwindow.h
SemaphoreLocker
Definition: mythscreentype.cpp:24
MythScreenStack::AddScreen
virtual void AddScreen(MythScreenType *screen, bool allowFade=true)
Definition: mythscreenstack.cpp:52
MythScreenType::IsInitialized
bool IsInitialized(void) const
Has Init() been called on this screen?
Definition: mythscreentype.cpp:360
MythScreenType::IsFullscreen
bool IsFullscreen(void) const
Definition: mythscreentype.cpp:103
MythUIType::IsVisible
bool IsVisible(bool recurse=false) const
Definition: mythuitype.cpp:902
MythUIType::MythScreenType
friend class MythScreenType
Definition: mythuitype.h:307
ScreenLoadTask::run
void run(void) override
Definition: mythscreentype.cpp:50
ScreenLoadCompletionEvent::kEventType
static const Type kEventType
Definition: mythscreentype.h:33
MythScreenType::CloseBusyPopup
void CloseBusyPopup(void)
Definition: mythscreentype.cpp:338
MThreadPool::start
void start(QRunnable *runnable, const QString &debugName, int priority=0)
Definition: mthreadpool.cpp:342
mythscreentype.h
ScreenLoadTask
Definition: mythscreentype.cpp:44
mythobservable.h
MythScreenType::SetFullscreen
void SetFullscreen(bool full)
Definition: mythscreentype.cpp:108
MythUIType::GetHelpText
QString GetHelpText(void) const
Definition: mythuitype.h:176
MythUIComposite
Definition: mythuicomposite.h:7