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 
15 
16 #include "mythscreenstack.h"
17 #include "mythmainwindow.h"
18 #include "mythuihelper.h"
19 #include "mythprogressdialog.h"
20 #include "mythuigroup.h"
21 #include "mythuistatetype.h"
22 #include "mythgesture.h"
23 #include "mythuitext.h"
24 
26 {
27  public:
28  explicit SemaphoreLocker(QSemaphore *lock) : m_lock(lock)
29  {
30  if (m_lock)
31  m_lock->acquire();
32  }
34  {
35  if (m_lock)
36  m_lock->release();
37  }
38  private:
39  QSemaphore *m_lock {nullptr};
40 };
41 
42 const QEvent::Type ScreenLoadCompletionEvent::kEventType =
43  (QEvent::Type) QEvent::registerEventType();
44 
45 class ScreenLoadTask : public QRunnable
46 {
47  public:
48  explicit ScreenLoadTask(MythScreenType &parent) : m_parent(parent) {}
49 
50  private:
51  void run(void) override // QRunnable
52  {
53  m_parent.Load();
54  m_parent.m_isLoaded = true;
55  m_parent.m_isLoading = false;
56  m_parent.m_loadLock.release();
57  }
58 
60 };
61 
63  MythScreenStack *parent, const QString &name, bool fullscreen) :
64  MythUIComposite(parent, name),
65  m_fullScreen(fullscreen),
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  m_fullScreen(fullscreen)
80 {
82 
83  if (QCoreApplication::applicationName() == MYTH_APPNAME_MYTHFRONTEND)
85  QString("SCREEN_TYPE CREATED %1").arg(name));
86 }
87 
89 {
90  if (QCoreApplication::applicationName() == MYTH_APPNAME_MYTHFRONTEND)
92  QString("SCREEN_TYPE DESTROYED %1").arg(objectName()));
93 
94  // locking ensures background screen load can finish running
95  SemaphoreLocker locker(&m_loadLock);
96 
97  m_currentFocusWidget = nullptr;
98  emit Exiting();
99 }
100 
102 {
103  return m_fullScreen;
104 }
105 
107 {
108  m_fullScreen = full;
109 }
110 
112 {
113  return m_currentFocusWidget;
114 }
115 
117 {
118  if (!widget || !widget->IsVisible(true))
119  {
120  for (auto *current : std::as_const(m_focusWidgetList))
121  {
122  if (current->CanTakeFocus() && current->IsVisible(true))
123  {
124  widget = current;
125  break;
126  }
127  }
128  }
129 
130  if (!widget)
131  return false;
132 
133  if (m_currentFocusWidget == widget)
134  return true;
135 
136  MythUIText *helpText = dynamic_cast<MythUIText *>(GetChild("helptext"));
137  if (helpText)
138  helpText->Reset();
139 
142  m_currentFocusWidget = widget;
144 
145  if (helpText && !widget->GetHelpText().isEmpty())
146  helpText->SetText(widget->GetHelpText());
147 
148  return true;
149 }
150 
152 {
153  if (!m_currentFocusWidget || m_focusWidgetList.isEmpty())
154  return SetFocusWidget(nullptr);
155  if (m_focusWidgetList.size() == 1)
156  return false;
157 
158  // Run the list from the current pointer to the end/begin and loop
159  // around back to itself. Start by geting an iterator pointing at
160  // the current focus (or at the end if the focus isn't in the
161  // list).
164  if (up)
165  {
166  if (it != m_focusWidgetList.end())
167  it++;
168  if (it == m_focusWidgetList.end())
169  it = m_focusWidgetList.begin();
170  // Put an upper limit on loops to guarantee exit at some point.
171  for (auto count = m_focusWidgetList.size() * 2; count > 0; count--)
172  {
173  MythUIType *current = *it;
174  if (current->IsVisible(true) && current->IsEnabled())
175  return SetFocusWidget(current);
176  it++;
177  if (it == m_focusWidgetList.end())
178  it = m_focusWidgetList.begin();
179  if (*it == m_currentFocusWidget)
180  return false;
181  }
182  }
183  else
184  {
185  if (it == m_focusWidgetList.begin())
186  it = m_focusWidgetList.end();
187  // Put an upper limit on loops to guarantee exit at some point.
188  for (auto count = m_focusWidgetList.size() * 2; count > 0; count--)
189  {
190  it--;
191  if (*it == m_currentFocusWidget)
192  return false;
193  MythUIType *current = *it;
194  if (current->IsVisible(true) && current->IsEnabled())
195  return SetFocusWidget(current);
196  if (it == m_focusWidgetList.begin())
197  it = m_focusWidgetList.end();
198  }
199  }
200 
201  return false;
202 }
203 
205 {
206  m_focusWidgetList.clear();
207  m_currentFocusWidget = nullptr;
208 
210 
211  if (!m_focusWidgetList.empty())
212  SetFocusWidget();
213 }
214 
216 {
217  return m_screenStack;
218 }
219 
221 {
222  if (!m_fullScreen)
223  {
224  if (!GetMythMainWindow()->GetPaintWindow()->mask().isEmpty())
225  {
226  // remove this screen's area from the mask so any embedded video is
227  // shown which was covered by this screen
228  if (!m_savedMask.isEmpty())
230  }
231  }
232 
234 }
235 
237 {
238  if (!m_fullScreen)
239  {
240  if (!GetMythMainWindow()->GetPaintWindow()->mask().isEmpty())
241  {
242  // add this screens area to the mask so any embedded video isn't
243  // shown in front of this screen
244  QRegion region = GetMythMainWindow()->GetPaintWindow()->mask();
245  m_savedMask = region;
246  region = region.united(QRegion(m_area));
247  GetMythMainWindow()->GetPaintWindow()->setMask(region);
248  }
249  }
250 
252 }
253 
255 {
256  return m_isDeleting;
257 }
258 
259 void MythScreenType::SetDeleting(bool deleting)
260 {
261  m_isDeleting = deleting;
262 }
263 
265 {
266  return true;
267 }
268 
280 {
281  // Virtual
282 }
283 
284 void MythScreenType::LoadInBackground(const QString& message)
285 {
286  m_loadLock.acquire();
287 
288  m_isLoading = true;
289  m_isLoaded = false;
290 
292 
293  OpenBusyPopup(message);
294 
295  auto *loadTask = new ScreenLoadTask(*this);
296  MThreadPool::globalInstance()->start(loadTask, "ScreenLoad");
297 }
298 
300 {
301  SemaphoreLocker locker(&m_loadLock);
302 
303  m_isLoading = true;
304  m_isLoaded = false;
305 
307  Load();
308  m_isLoaded = true;
309  m_isLoading = false;
310 }
311 
313 {
314  m_isInitialized = false;
316 }
317 
318 void MythScreenType::OpenBusyPopup(const QString& message)
319 {
320  if (m_busyPopup)
321  return;
322 
323  QString msg(tr("Loading..."));
324  if (!message.isEmpty())
325  msg = message;
326 
327  MythScreenStack *popupStack =
328  GetMythMainWindow()->GetStack("popup stack");
329  m_busyPopup =
330  new MythUIBusyDialog(msg, popupStack, "mythscreentypebusydialog");
331 
332  if (m_busyPopup->Create())
333  popupStack->AddScreen(m_busyPopup, false);
334 }
335 
337 {
338  if (m_busyPopup)
339  m_busyPopup->Close();
340  m_busyPopup = nullptr;
341 }
342 
343 void MythScreenType::SetBusyPopupMessage(const QString &message)
344 {
345  if (m_busyPopup)
346  m_busyPopup->SetMessage(message);
347 }
348 
350 {
351  if (m_busyPopup)
352  m_busyPopup->Reset();
353 }
354 
359 {
360  return m_isInitialized;
361 }
362 
364 {
365  SemaphoreLocker locker(&m_loadLock); // don't run while loading..
366 
367  CloseBusyPopup();
368  Init();
369  m_isInitialized = true;
370 }
371 
380 {
381  // Virtual
382 }
383 
385 {
386  CloseBusyPopup();
387  if (GetScreenStack())
388  GetScreenStack()->PopScreen(this);
389 }
390 
392 {
393  // Virtual
394 }
395 
396 bool MythScreenType::inputMethodEvent(QInputMethodEvent *event)
397 {
400 }
401 
402 bool MythScreenType::keyPressEvent(QKeyEvent *event)
403 {
404  if (!GetMythMainWindow()->IsExitingToMain() && m_currentFocusWidget &&
406  return true;
407 
408  bool handled = false;
409  QStringList actions;
410  handled = GetMythMainWindow()->TranslateKeyPress("Global", event, actions);
411 
412  for (int i = 0; i < actions.size() && !handled; i++)
413  {
414  const QString& action = actions[i];
415  handled = true;
416 
417  if (action == "LEFT" || action == "UP" || action == "PREVIOUS")
418  {
419  if (!NextPrevWidgetFocus(false))
420  handled = false;
421  }
422  else if (action == "RIGHT" || action == "DOWN" || action == "NEXT")
423  {
424  if (!NextPrevWidgetFocus(true))
425  handled = false;
426  }
427  else if (action == "ESCAPE")
428  {
429  Close();
430  }
431  else if (action == "MENU")
432  {
433  ShowMenu();
434  }
435  else if (action.startsWith("SYSEVENT"))
436  {
437  gCoreContext->SendSystemEvent(QString("KEY_%1").arg(action.mid(8)));
438  }
439  else if (action == ACTION_SCREENSHOT)
440  {
442  }
444  {
446  }
447  else
448  {
449  handled = false;
450  }
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:989
MythUIType::m_area
MythRect m_area
Definition: mythuitype.h:274
MythScreenType::LoadInBackground
void LoadInBackground(const QString &message="")
Definition: mythscreentype.cpp:284
MythGestureEvent::GetPosition
QPoint GetPosition() const
Definition: mythgesture.h:87
MythGestureEvent::Click
@ Click
Definition: mythgesture.h:77
MythScreenType::SetBusyPopupMessage
void SetBusyPopupMessage(const QString &message)
Definition: mythscreentype.cpp:343
MythUIType::AddFocusableChildrenToList
void AddFocusableChildrenToList(FocusInfoType &focusList)
Definition: mythuitype.cpp:1149
mythuitext.h
MYTH_APPNAME_MYTHFRONTEND
static constexpr const char * MYTH_APPNAME_MYTHFRONTEND
Definition: mythappname.h:6
MythUIType::inputMethodEvent
virtual bool inputMethodEvent(QInputMethodEvent *event)
Input Method event handler.
Definition: mythuitype.cpp:998
MythScreenType::NextPrevWidgetFocus
virtual bool NextPrevWidgetFocus(bool up_or_down)
Definition: mythscreentype.cpp:151
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:65
MythUIScreenBounds::GetUIScreenRect
QRect GetUIScreenRect()
Definition: mythuiscreenbounds.cpp:198
MythUIType::ConnectDependants
void ConnectDependants(bool recurse=false)
Definition: mythuitype.cpp:1438
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:241
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:384
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:138
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:264
MythMainWindow::HandleTVAction
void HandleTVAction(const QString &Action)
Definition: mythmainwindow.cpp:1521
MythUIType::SetArea
virtual void SetArea(const MythRect &rect)
Definition: mythuitype.cpp:610
MythScreenType::OpenBusyPopup
void OpenBusyPopup(const QString &message="")
Definition: mythscreentype.cpp:318
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: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:521
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:279
MythDate::current
QDateTime current(bool stripped)
Returns current Date and Time in UTC.
Definition: mythdate.cpp:15
mythprogressdialog.h
ScreenLoadTask::m_parent
MythScreenType & m_parent
Definition: mythscreentype.cpp:59
MythScreenType::GetFocusWidget
MythUIType * GetFocusWidget(void) const
Definition: mythscreentype.cpp:111
MythRect::moveLeft
void moveLeft(const QString &sX)
Definition: mythrect.cpp:309
MythScreenType::ResetBusyPopup
void ResetBusyPopup(void)
Definition: mythscreentype.cpp:349
MythUIType::ActivateAnimations
void ActivateAnimations(MythUIAnimation::Trigger trigger)
Definition: mythuitype.cpp:288
MythScreenType::ReloadInBackground
void ReloadInBackground(void)
Definition: mythscreentype.cpp:312
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:1111
SemaphoreLocker::m_lock
QSemaphore * m_lock
Definition: mythscreentype.cpp:39
MythUIType::LoseFocus
void LoseFocus()
Definition: mythuitype.cpp:1026
ACTION_TVPOWERON
static constexpr const char * ACTION_TVPOWERON
Definition: mythuiactions.h:25
MythCoreContext::SendSystemEvent
void SendSystemEvent(const QString &msg)
Definition: mythcorecontext.cpp:1554
MythUIType::IsEnabled
bool IsEnabled(void) const
Definition: mythuitype.h:117
MythScreenType::SetFocusWidget
bool SetFocusWidget(MythUIType *widget=nullptr)
Definition: mythscreentype.cpp:116
MythScreenType::GetPainter
MythPainter * GetPainter(void) override
Definition: mythscreentype.cpp:551
MythScreenType::BuildFocusList
void BuildFocusList(void)
Definition: mythscreentype.cpp:204
MythRect::moveTop
void moveTop(const QString &sY)
Definition: mythrect.cpp:319
MythScreenType::m_busyPopup
MythUIBusyDialog * m_busyPopup
Definition: mythscreentype.h:131
MythUIType::CopyFrom
virtual void CopyFrom(MythUIType *base)
Copy this widgets state from another.
Definition: mythuitype.cpp:1171
SemaphoreLocker::~SemaphoreLocker
~SemaphoreLocker()
Definition: mythscreentype.cpp:33
MythUIBusyDialog
Definition: mythprogressdialog.h:36
MythMainWindow::GetPaintWindow
QWidget * GetPaintWindow()
Definition: mythmainwindow.cpp:267
MythScreenStack::GetPainter
static MythPainter * GetPainter(void)
Definition: mythscreenstack.cpp:389
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:379
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:57
MythUIType::TakeFocus
bool TakeFocus()
Definition: mythuitype.cpp:1036
MythScreenType::m_focusWidgetList
FocusInfoType m_focusWidgetList
Definition: mythscreentype.h:128
MythScreenType::LoadInForeground
void LoadInForeground(void)
Definition: mythscreentype.cpp:299
MythScreenType::GetScreenStack
MythScreenStack * GetScreenStack() const
Definition: mythscreentype.cpp:215
MythScreenType::m_loadLock
QSemaphore m_loadLock
Definition: mythscreentype.h:119
mythgesture.h
A C++ ripoff of the stroke library for MythTV.
MythUIAnimation::AboutToShow
@ AboutToShow
Definition: mythuianimation.h:51
mythappname.h
ScreenLoadTask::ScreenLoadTask
ScreenLoadTask(MythScreenType &parent)
Definition: mythscreentype.cpp:48
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:88
mthreadpool.h
mythuihelper.h
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:402
MythScreenType::m_isDeleting
bool m_isDeleting
Definition: mythscreentype.h:117
MythScreenType::doInit
void doInit(void)
Definition: mythscreentype.cpp:363
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:49
MythScreenType::inputMethodEvent
bool inputMethodEvent(QInputMethodEvent *event) override
Input Method event handler.
Definition: mythscreentype.cpp:396
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:1013
MythScreenType::IsDeleting
bool IsDeleting(void) const
Definition: mythscreentype.cpp:254
SemaphoreLocker::SemaphoreLocker
SemaphoreLocker(QSemaphore *lock)
Definition: mythscreentype.cpp:28
MythUIText::SetText
virtual void SetText(const QString &text)
Definition: mythuitext.cpp:115
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:391
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
MythUIAnimation::AboutToHide
@ AboutToHide
Definition: mythuianimation.h:51
MythScreenType::m_fullScreen
bool m_fullScreen
Definition: mythscreentype.h:116
MythMainWindow::IsExitingToMain
bool IsExitingToMain() const
Definition: mythmainwindow.cpp:1039
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
MythMainWindow::GetStack
MythScreenStack * GetStack(const QString &Stackname)
Definition: mythmainwindow.cpp:322
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:220
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:259
GetMythPainter
MythPainter * GetMythPainter(void)
Definition: mythmainwindow.cpp:119
MythScreenType::aboutToShow
virtual void aboutToShow(void)
Definition: mythscreentype.cpp:236
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:1237
MythMainWindow::ScreenShot
static bool ScreenShot(int Width=0, int Height=0, QString Filename="")
Definition: mythmainwindow.cpp:564
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:25
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:358
MythScreenType::IsFullscreen
bool IsFullscreen(void) const
Definition: mythscreentype.cpp:101
MythUIType::IsVisible
bool IsVisible(bool recurse=false) const
Definition: mythuitype.cpp:903
MythUIType::MythScreenType
friend class MythScreenType
Definition: mythuitype.h:307
ScreenLoadTask::run
void run(void) override
Definition: mythscreentype.cpp:51
ScreenLoadCompletionEvent::kEventType
static const Type kEventType
Definition: mythscreentype.h:33
MythScreenType::CloseBusyPopup
void CloseBusyPopup(void)
Definition: mythscreentype.cpp:336
MThreadPool::start
void start(QRunnable *runnable, const QString &debugName, int priority=0)
Definition: mthreadpool.cpp:342
mythscreentype.h
ScreenLoadTask
Definition: mythscreentype.cpp:45
mythobservable.h
MythScreenType::SetFullscreen
void SetFullscreen(bool full)
Definition: mythscreentype.cpp:106
MythUIType::GetHelpText
QString GetHelpText(void) const
Definition: mythuitype.h:176
MythUIComposite
Definition: mythuicomposite.h:7