MythTV  master
Public Slots | Signals | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members

A tree widget for displaying and navigating a MythGenericTree() More...

#include <mythuibuttontree.h>

Inheritance diagram for MythUIButtonTree:
Inheritance graph
[legend]
Collaboration diagram for MythUIButtonTree:
Collaboration graph
[legend]

Public Slots

void handleSelect (MythUIButtonListItem *item)
 Handle a list item receiving focus. More...
 
void handleClick (MythUIButtonListItem *item)
 Handle a list item being clicked. More...
 
void handleVisible (MythUIButtonListItem *item)
 Handle a list item becoming visible. More...
 
void Select ()
 
void Deselect ()
 
- Public Slots inherited from MythUIType
void LoseFocus ()
 
bool TakeFocus ()
 
void Activate ()
 
void Hide (void)
 
void Show (void)
 
void Refresh (void)
 
void UpdateDependState (bool isDefault)
 
void UpdateDependState (MythUIType *dependee, bool isDefault)
 

Signals

void itemSelected (MythUIButtonListItem *item)
 
void itemClicked (MythUIButtonListItem *item)
 
void itemVisible (MythUIButtonListItem *item)
 
void nodeChanged (MythGenericTree *node)
 
void rootChanged (MythGenericTree *node)
 
- Signals inherited from MythUIType
void RequestUpdate ()
 
void RequestUpdate (const QRect &)
 
void RequestRegionUpdate (const QRect &)
 
void TakingFocus ()
 
void LosingFocus ()
 
void Showing ()
 
void Hiding ()
 
void Enabling ()
 
void Disabling ()
 
void FinishedMoving ()
 
void FinishedFading ()
 
void DependChanged (bool isDefault)
 

Public Member Functions

 MythUIButtonTree (MythUIType *parent, const QString &name)
 
 ~MythUIButtonTree ()=default
 
bool keyPressEvent (QKeyEvent *) override
 Key event handler. More...
 
bool gestureEvent (MythGestureEvent *event) override
 Mouse click/movement handler, receives mouse gesture events from the QCoreApplication event loop. More...
 
bool AssignTree (MythGenericTree *tree)
 Assign the root node of the tree to be displayed. More...
 
void Reset (void) override
 Reset the widget to it's original state, should not reset changes made by the theme. More...
 
bool SetNodeByString (QStringList route)
 Using a path based on the node string, set the currently selected node. More...
 
bool SetNodeById (QList< int > route)
 Using a path based on the node IDs, set the currently selected node. More...
 
bool SetCurrentNode (MythGenericTree *node)
 Set the currently selected node. More...
 
void ShowSearchDialog (void)
 
MythGenericTreeGetCurrentNode (void) const
 
void SetActive (bool active)
 Set the widget active/inactive. More...
 
MythUIButtonListItemGetItemCurrent (void) const
 Return the currently selected list item. More...
 
void RemoveItem (MythUIButtonListItem *item, bool deleteNode=false)
 Remove the item from the tree. More...
 
void RemoveCurrentItem (bool deleteNode=false)
 Remove the currently selected item from the tree. More...
 
- Public Member Functions inherited from MythUIType
 MythUIType (QObject *parent, const QString &name)
 
void AddChild (MythUIType *child)
 Add a child UIType. More...
 
MythUITypeGetChild (const QString &name) const
 Get a named child of this UIType. More...
 
MythUITypeGetChildAt (const QPoint &p, bool recursive=true, bool focusable=true) const
 Return the first MythUIType at the given coordinates. More...
 
QList< MythUIType * > * GetAllChildren (void)
 Return a list of all child widgets. More...
 
void DeleteChild (const QString &name)
 Delete a named child of this UIType. More...
 
void DeleteChild (MythUIType *child)
 Delete the given UIType if it is a child of this UIType. More...
 
void DeleteAllChildren (void)
 Delete all child widgets. More...
 
bool NeedsRedraw (void) const
 
void ResetNeedsRedraw (void)
 
void SetRedraw (void)
 
void SetChildNeedsRedraw (MythUIType *child)
 
bool CanTakeFocus (void) const
 Return if this widget can accept input focus. More...
 
void SetCanTakeFocus (bool set=true)
 Set whether this widget can take focus. More...
 
void SetFocusOrder (int)
 
bool IsEnabled (void) const
 
void SetEnabled (bool enable)
 
bool MoveToTop (void)
 
bool MoveChildToTop (MythUIType *child)
 
void ActivateAnimations (MythUIAnimation::Trigger trigger)
 
QList< MythUIAnimation * > * GetAnimations (void)
 
virtual void Pulse (void)
 Pulse is called 70 times a second to trigger a single frame of an animation. More...
 
void Draw (MythPainter *p, int xoffset, int yoffset, int alphaMod=255, QRect clipRect=QRect())
 
void SetPosition (int x, int y)
 Convenience method, calls SetPosition(const MythPoint&) Override that instead to change functionality. More...
 
virtual void SetPosition (const MythPoint &point)
 
virtual MythPoint GetPosition (void) const
 
virtual void SetSize (const QSize &size)
 
virtual void SetMinSize (const MythPoint &size)
 Set the minimum size of this widget, for widgets which can be rescaled. More...
 
virtual QSize GetMinSize (void) const
 
virtual void SetArea (const MythRect &rect)
 
virtual void AdjustMinArea (int delta_x, int delta_y, int delta_w, int delta_h)
 Adjust the size of a sibling. More...
 
virtual void VanishSibling (void)
 
virtual void SetMinAreaParent (MythRect actual_area, MythRect allowed_area, MythUIType *child)
 Adjust the size of sibling objects within the button. More...
 
virtual void SetMinArea (const MythRect &rect)
 Set the minimum area based on the given size. More...
 
virtual MythRect GetArea (void) const
 If the object has a minimum area defined, return it, other wise return the default area. More...
 
virtual MythRect GetFullArea (void) const
 
virtual void RecalculateArea (bool recurse=true)
 
void ExpandArea (const MythRect &rect)
 
virtual QRegion GetDirtyArea (void) const
 
bool IsVisible (bool recurse=false) const
 
virtual void SetVisible (bool visible)
 
void MoveTo (QPoint destXY, QPoint speedXY)
 
void AdjustAlpha (int mode, int alphachange, int minalpha=0, int maxalpha=255)
 
void SetAlpha (int newalpha)
 
int GetAlpha (void) const
 
virtual void mediaEvent (MythMediaEvent *event)
 Media/Device status event handler, received from MythMediaMonitor. More...
 
MythFontPropertiesGetFont (const QString &text) const
 
bool AddFont (const QString &text, MythFontProperties *fontProp)
 
void SetHelpText (const QString &text)
 
QString GetHelpText (void) const
 
void SetXMLLocation (const QString &filename, int where)
 
QString GetXMLLocation (void) const
 
void SetXMLName (const QString &name)
 
QString GetXMLName (void) const
 
bool IsDeferredLoading (bool recurse=false) const
 
void SetDeferLoad (bool defer)
 
virtual void LoadNow (void)
 Cause images in this and child widgets to be loaded. More...
 
bool ContainsPoint (const QPoint &point) const
 Check if the given point falls within this widgets area. More...
 
virtual MythPainterGetPainter (void)
 
void SetPainter (MythPainter *painter)
 
void SetCentre (UIEffects::Centre centre)
 
void SetZoom (float zoom)
 
void SetHorizontalZoom (float zoom)
 
void SetVerticalZoom (float zoom)
 
void SetAngle (float angle)
 
void SetDependIsDefault (bool isDefault)
 
void SetReverseDependence (MythUIType *dependee, bool reverse)
 
void SetDependsMap (QMap< QString, QString > dependsMap)
 
QMap< QString, QString > GetDependsMap () const
 

Protected Member Functions

bool ParseElement (const QString &filename, QDomElement &element, bool showWarnings) override
 Parse the xml definition of this widget setting the state of the object accordingly. More...
 
void CopyFrom (MythUIType *base) override
 Copy this widgets state from another. More...
 
void CreateCopy (MythUIType *parent) override
 Copy the state of this widget to the one given, it must be of the same type. More...
 
- Protected Member Functions inherited from MythUIType
virtual ~MythUIType ()
 
void customEvent (QEvent *event) override
 
virtual void DrawSelf (MythPainter *p, int xoffset, int yoffset, int alphaMod, QRect clipRect)
 
void AddFocusableChildrenToList (QMap< int, MythUIType * > &focusList)
 
void HandleAlphaPulse ()
 Handle one frame of an alpha (transparency) change animation. More...
 
void HandleMovementPulse ()
 Handle one frame of a movement animation. More...
 
int CalcAlpha (int alphamod)
 
int NormX (const int width)
 
int NormY (const int height)
 
void ConnectDependants (bool recurse=false)
 
virtual void Finalize (void)
 Perform any post-xml parsing initialisation tasks. More...
 

Private Member Functions

void Init (void)
 Initialise the tree having loaded the formatting options from the theme. More...
 
void SetTreeState (bool refreshAll=false)
 Update the widget following a change. More...
 
bool UpdateList (MythUIButtonList *list, MythGenericTree *node)
 Update a list with children of the tree node. More...
 
bool DoSetCurrentNode (MythGenericTree *node)
 
void SwitchList (bool right)
 Move from list, or one level of the tree, to another. More...
 

Private Attributes

bool m_active {true}
 
bool m_initialized {false}
 
uint m_numLists {1}
 
uint m_visibleLists {0}
 
uint m_currentDepth {0}
 
int m_depthOffset {0}
 
uint m_oldDepth {0}
 
QList< MythUIButtonList * > m_buttonlists
 
MythUIButtonListm_listTemplate {nullptr}
 
MythUIButtonListm_activeList {nullptr}
 
uint m_activeListID {0}
 
MythGenericTreem_rootNode {nullptr}
 
MythGenericTreem_currentNode {nullptr}
 
uint m_listSpacing {0}
 

Additional Inherited Members

- Static Public Member Functions inherited from XMLParseBase
static QString getFirstText (QDomElement &element)
 
static bool parseBool (const QString &text)
 
static bool parseBool (QDomElement &element)
 
static MythPoint parsePoint (const QString &text, bool normalize=true)
 
static MythPoint parsePoint (QDomElement &element, bool normalize=true)
 
static QSize parseSize (const QString &text, bool normalize=true)
 
static QSize parseSize (QDomElement &element, bool normalize=true)
 
static MythRect parseRect (const QString &text, bool normalize=true)
 
static MythRect parseRect (QDomElement &element, bool normalize=true)
 
static int parseAlignment (const QString &text)
 
static int parseAlignment (QDomElement &element)
 
static QBrush parseGradient (const QDomElement &element)
 
static QString parseText (QDomElement &element)
 
static MythUITypeGetGlobalObjectStore (void)
 
static void ClearGlobalObjectStore (void)
 
static void ParseChildren (const QString &filename, QDomElement &element, MythUIType *parent, bool showWarnings)
 
static MythUITypeParseUIType (const QString &filename, QDomElement &element, const QString &type, MythUIType *parent, MythScreenType *screen, bool showWarnings, QMap< QString, QString > &parentDependsMap)
 
static bool WindowExists (const QString &xmlfile, const QString &windowname)
 
static bool LoadWindowFromXML (const QString &xmlfile, const QString &windowname, MythUIType *parent)
 
static bool LoadBaseTheme (void)
 
static bool LoadBaseTheme (const QString &baseTheme)
 
static bool CopyWindowFromBase (const QString &windowname, MythScreenType *win)
 
- Protected Attributes inherited from MythUIType
QList< MythUIType * > m_ChildrenList
 
QMap< QString, QString > m_dependsMap
 
QList< QPair< MythUIType *, bool > > m_dependsValue
 
QList< int > m_dependOperator
 
bool m_Visible {true}
 
bool m_HasFocus {false}
 
bool m_CanHaveFocus {false}
 
bool m_Enabled {true}
 
bool m_EnableInitiator {false}
 
bool m_Initiator {false}
 
bool m_Vanish {false}
 
bool m_Vanished {false}
 
bool m_IsDependDefault {false}
 
QMap< MythUIType *, boolm_ReverseDepend
 
int m_focusOrder {0}
 
MythRect m_Area {0,0,0,0}
 
MythRect m_MinArea {0,0,0,0}
 
MythPoint m_MinSize
 
QRegion m_DirtyRegion {0,0,0,0}
 
bool m_NeedsRedraw {false}
 
UIEffects m_Effects
 
int m_AlphaChangeMode {0}
 
int m_AlphaChange {0}
 
int m_AlphaMin {0}
 
int m_AlphaMax {255}
 
bool m_Moving {false}
 
QPoint m_XYDestination {0,0}
 
QPoint m_XYSpeed {0,0}
 
FontMapm_Fonts {nullptr}
 
MythUITypem_Parent {nullptr}
 
MythPainterm_Painter {nullptr}
 
QList< MythUIAnimation * > m_animations
 
QString m_helptext
 
QString m_xmlName
 
QString m_xmlLocation
 
bool m_deferload {false}
 
QColor m_BorderColor {Qt::black}
 

Detailed Description

A tree widget for displaying and navigating a MythGenericTree()

Definition at line 16 of file mythuibuttontree.h.

Constructor & Destructor Documentation

◆ MythUIButtonTree()

MythUIButtonTree::MythUIButtonTree ( MythUIType parent,
const QString &  name 
)

Definition at line 16 of file mythuibuttontree.cpp.

Referenced by CreateCopy().

◆ ~MythUIButtonTree()

MythUIButtonTree::~MythUIButtonTree ( )
default

Member Function Documentation

◆ keyPressEvent()

bool MythUIButtonTree::keyPressEvent ( QKeyEvent *  event)
overridevirtual

Key event handler.

Parameters
eventKeypress event

Reimplemented from MythUIType.

Definition at line 576 of file mythuibuttontree.cpp.

◆ gestureEvent()

bool MythUIButtonTree::gestureEvent ( MythGestureEvent event)
overridevirtual

Mouse click/movement handler, receives mouse gesture events from the QCoreApplication event loop.

Should not be used directly.

Parameters
eventMouse event

Reimplemented from MythUIType.

Definition at line 621 of file mythuibuttontree.cpp.

◆ AssignTree()

bool MythUIButtonTree::AssignTree ( MythGenericTree tree)

Assign the root node of the tree to be displayed.

MythUIButtonTree() is merely responsible for the display and navigation of a tree, the structure of that tree and the data it contains are the responsibility of MythGenericTree(). Generally MythUIButtonTree() will not modify the tree, for technical reason RemoteItem() is an exception to the rule.

You should operate directly on MythGenericTree() to change it's content.

Parameters
treeThe node to make the root of the displayed tree
Returns
True if successful

Definition at line 209 of file mythuibuttontree.cpp.

Referenced by GameUI::BuildTree(), PlaylistEditorView::Create(), NetTree::LoadData(), VideoDialog::loadData(), and PlaylistEditorView::reloadTree().

◆ Reset()

void MythUIButtonTree::Reset ( void  )
overridevirtual

Reset the widget to it's original state, should not reset changes made by the theme.

Reimplemented from MythUIType.

Definition at line 232 of file mythuibuttontree.cpp.

Referenced by AssignTree(), GameUI::BuildTree(), and PlaylistEditorView::reloadTree().

◆ SetNodeByString()

bool MythUIButtonTree::SetNodeByString ( QStringList  route)

Using a path based on the node string, set the currently selected node.

Parameters
routeList defining the path using node strings starting at the root node
Returns
True if successful

Definition at line 277 of file mythuibuttontree.cpp.

Referenced by VideoDialog::handleDynamicDirSelect(), VideoDialog::loadData(), PlaylistEditorView::restoreTreePosition(), and SetCurrentNode().

◆ SetNodeById()

bool MythUIButtonTree::SetNodeById ( QList< int >  route)

Using a path based on the node IDs, set the currently selected node.

Parameters
routeList defining the path using node IDs starting at the root node
Returns
True if successful

Definition at line 255 of file mythuibuttontree.cpp.

◆ SetCurrentNode()

bool MythUIButtonTree::SetCurrentNode ( MythGenericTree node)

Set the currently selected node.

Parameters
nodeThe node, which must appear in this tree or behaviour is undefined
Returns
True if successful

Definition at line 342 of file mythuibuttontree.cpp.

Referenced by GameUI::searchComplete(), VideoDialog::searchComplete(), and GameUI::updateChangedNode().

◆ ShowSearchDialog()

void MythUIButtonTree::ShowSearchDialog ( void  )

Definition at line 355 of file mythuibuttontree.cpp.

Referenced by MusicCommon::searchButtonList().

◆ GetCurrentNode()

MythGenericTree* MythUIButtonTree::GetCurrentNode ( void  ) const
inline

◆ SetActive()

void MythUIButtonTree::SetActive ( bool  active)

Set the widget active/inactive.

Parameters
active

Definition at line 434 of file mythuibuttontree.cpp.

Referenced by Deselect(), VideoDialog::searchComplete(), and Select().

◆ GetItemCurrent()

MythUIButtonListItem * MythUIButtonTree::GetItemCurrent ( void  ) const

Return the currently selected list item.

Returns
The list item

Definition at line 552 of file mythuibuttontree.cpp.

Referenced by VideoDialog::GetItemByMetadata(), VideoDialog::GetItemCurrent(), PlaylistEditorView::keyPressEvent(), RemoveCurrentItem(), and NetTree::UpdateCurrentItem().

◆ RemoveItem()

void MythUIButtonTree::RemoveItem ( MythUIButtonListItem item,
bool  deleteNode = false 
)

Remove the item from the tree.

Parameters
itemItem to be removed
deleteNodeAlso delete the node from the tree? Modifies the tree.
Returns
True if successful

Definition at line 385 of file mythuibuttontree.cpp.

Referenced by VideoDialog::OnRemoveVideo(), and RemoveCurrentItem().

◆ RemoveCurrentItem()

void MythUIButtonTree::RemoveCurrentItem ( bool  deleteNode = false)

Remove the currently selected item from the tree.

Parameters
deleteNodeAlso delete the node from the tree? Modifies the tree.
Returns
True if successful

Definition at line 424 of file mythuibuttontree.cpp.

Referenced by PlaylistEditorView::deletePlaylist().

◆ handleSelect

void MythUIButtonTree::handleSelect ( MythUIButtonListItem item)
slot

Handle a list item receiving focus.

Parameters
itemThe list item

Definition at line 509 of file mythuibuttontree.cpp.

Referenced by UpdateList().

◆ handleClick

void MythUIButtonTree::handleClick ( MythUIButtonListItem item)
slot

Handle a list item being clicked.

Parameters
itemThe list item

Definition at line 536 of file mythuibuttontree.cpp.

Referenced by UpdateList().

◆ handleVisible

void MythUIButtonTree::handleVisible ( MythUIButtonListItem item)
slot

Handle a list item becoming visible.

Parameters
itemThe list item

Definition at line 565 of file mythuibuttontree.cpp.

Referenced by UpdateList().

◆ Select

void MythUIButtonTree::Select ( )
slot

Definition at line 442 of file mythuibuttontree.cpp.

Referenced by MythUIButtonTree().

◆ Deselect

void MythUIButtonTree::Deselect ( )
slot

Definition at line 447 of file mythuibuttontree.cpp.

Referenced by MythUIButtonTree().

◆ itemSelected

void MythUIButtonTree::itemSelected ( MythUIButtonListItem item)
signal

Referenced by SetTreeState(), and UpdateList().

◆ itemClicked

void MythUIButtonTree::itemClicked ( MythUIButtonListItem item)
signal

Referenced by handleClick(), and UpdateList().

◆ itemVisible

void MythUIButtonTree::itemVisible ( MythUIButtonListItem item)
signal

Referenced by handleVisible(), and UpdateList().

◆ nodeChanged

void MythUIButtonTree::nodeChanged ( MythGenericTree node)
signal

Referenced by DoSetCurrentNode().

◆ rootChanged

void MythUIButtonTree::rootChanged ( MythGenericTree node)
signal

Referenced by AssignTree(), and Reset().

◆ ParseElement()

bool MythUIButtonTree::ParseElement ( const QString &  filename,
QDomElement &  element,
bool  showWarnings 
)
overrideprotectedvirtual

Parse the xml definition of this widget setting the state of the object accordingly.

Reimplemented from MythUIType.

Definition at line 648 of file mythuibuttontree.cpp.

◆ CopyFrom()

void MythUIButtonTree::CopyFrom ( MythUIType base)
overrideprotectedvirtual

Copy this widgets state from another.

Reimplemented from MythUIType.

Definition at line 679 of file mythuibuttontree.cpp.

Referenced by CreateCopy().

◆ CreateCopy()

void MythUIButtonTree::CreateCopy ( MythUIType parent)
overrideprotectedvirtual

Copy the state of this widget to the one given, it must be of the same type.

Reimplemented from MythUIType.

Definition at line 670 of file mythuibuttontree.cpp.

◆ Init()

void MythUIButtonTree::Init ( void  )
private

Initialise the tree having loaded the formatting options from the theme.

Definition at line 29 of file mythuibuttontree.cpp.

Referenced by SetTreeState().

◆ SetTreeState()

void MythUIButtonTree::SetTreeState ( bool  refreshAll = false)
private

Update the widget following a change.

Definition at line 71 of file mythuibuttontree.cpp.

Referenced by AssignTree(), handleSelect(), RemoveItem(), Reset(), SetActive(), SetNodeById(), SetNodeByString(), and SwitchList().

◆ UpdateList()

bool MythUIButtonTree::UpdateList ( MythUIButtonList list,
MythGenericTree node 
)
private

Update a list with children of the tree node.

Parameters
listList to refill
nodeParent node whose children will appear in the list
Returns
True if successful, False if the node had no children or was invalid

Definition at line 147 of file mythuibuttontree.cpp.

Referenced by SetTreeState().

◆ DoSetCurrentNode()

bool MythUIButtonTree::DoSetCurrentNode ( MythGenericTree node)
private

◆ SwitchList()

void MythUIButtonTree::SwitchList ( bool  right)
private

Move from list, or one level of the tree, to another.

Parameters
rightIf true move to the right or away from the root, if false move to the left or towards the root

Definition at line 459 of file mythuibuttontree.cpp.

Referenced by keyPressEvent().

Member Data Documentation

◆ m_active

bool MythUIButtonTree::m_active {true}
private

Definition at line 68 of file mythuibuttontree.h.

Referenced by CopyFrom(), Reset(), SetActive(), and SetTreeState().

◆ m_initialized

bool MythUIButtonTree::m_initialized {false}
private

Definition at line 69 of file mythuibuttontree.h.

Referenced by CopyFrom(), Init(), SetActive(), and SetTreeState().

◆ m_numLists

uint MythUIButtonTree::m_numLists {1}
private

Definition at line 70 of file mythuibuttontree.h.

Referenced by CopyFrom(), Init(), ParseElement(), and SetNodeByString().

◆ m_visibleLists

uint MythUIButtonTree::m_visibleLists {0}
private

Definition at line 71 of file mythuibuttontree.h.

Referenced by Reset(), SetTreeState(), and SwitchList().

◆ m_currentDepth

uint MythUIButtonTree::m_currentDepth {0}
private

◆ m_depthOffset

int MythUIButtonTree::m_depthOffset {0}
private

Definition at line 73 of file mythuibuttontree.h.

Referenced by AssignTree(), SetNodeByString(), and SetTreeState().

◆ m_oldDepth

uint MythUIButtonTree::m_oldDepth {0}
private

Definition at line 74 of file mythuibuttontree.h.

Referenced by Reset(), and SetTreeState().

◆ m_buttonlists

QList<MythUIButtonList*> MythUIButtonTree::m_buttonlists
private

Definition at line 75 of file mythuibuttontree.h.

Referenced by Init(), SetTreeState(), and SwitchList().

◆ m_listTemplate

MythUIButtonList* MythUIButtonTree::m_listTemplate {nullptr}
private

Definition at line 76 of file mythuibuttontree.h.

Referenced by CopyFrom(), and Init().

◆ m_activeList

MythUIButtonList* MythUIButtonTree::m_activeList {nullptr}
private

◆ m_activeListID

uint MythUIButtonTree::m_activeListID {0}
private

◆ m_rootNode

MythGenericTree* MythUIButtonTree::m_rootNode {nullptr}
private

◆ m_currentNode

MythGenericTree* MythUIButtonTree::m_currentNode {nullptr}
private

◆ m_listSpacing

uint MythUIButtonTree::m_listSpacing {0}
private

Definition at line 81 of file mythuibuttontree.h.

Referenced by CopyFrom(), Init(), and ParseElement().


The documentation for this class was generated from the following files: