21import QtQuick.Controls
24import org.mauikit.controls as Maui
30 implicitWidth: implicitContentWidth + leftPadding + rightPadding
31 implicitHeight: implicitContentHeight + topPadding + bottomPadding
33 spacing: Maui.Style.space.medium
40 default property list<QtObject> items
45 property list<QtObject> hiddenItems
50 property int currentIndex : 0
55 readonly
property int count : control.items.length + control.hiddenItems.length
57 property int display: ToolButton.TextBesideIcon
61 signal clicked(
int index)
66 signal pressAndHold(
int index)
71 signal doubleClicked(
int index)
73 Behavior on implicitWidth
77 duration: Maui.Style.units.shortDuration
78 easing.type: Easing.InOutQuad
82 property Component delegate : ToolButton
87 visible: modelData.visible
88 checked: index === control.currentIndex
90 leftPadding: Maui.Style.space.big
91 rightPadding: Maui.Style.space.big
93 icon.name: modelData.Maui.AppView.iconName
94 text: modelData.Maui.AppView.title
96 display: checked ? (!isWide ? ToolButton.IconOnly : ToolButton.TextBesideIcon) : ToolButton.IconOnly
100 visible: modelData.Maui.AppView.badgeText
101 text: modelData.Maui.AppView.badgeText
103 anchors.horizontalCenter: parent.right
104 anchors.verticalCenter: parent.top
105 anchors.verticalCenterOffset: 10
106 anchors.horizontalCenterOffset: -5
109 font.pointSize: Maui.Style.fontSizes.tiny
112 Maui.Theme.colorSet: Maui.Theme.View
113 Maui.Theme.backgroundColor: Maui.Theme.negativeBackgroundColor
114 Maui.Theme.textColor: Maui.Theme.negativeTextColor
119 if(index === control.currentIndex )
124 control.currentIndex = index
125 control.clicked(index)
131 onEntered: control.currentIndex = index
135 contentItem: RowLayout
138 spacing: control.spacing
143 delegate: control.delegate
150 leftPadding: Maui.Style.space.big
151 rightPadding: Maui.Style.space.big
152 readonly
property QtObject obj : control.currentIndex >= control.items.length && control.currentIndex < control.count? control.hiddenItems[control.currentIndex - control.items.length] : null
154 visible: obj && obj.visible
157 icon.name: obj ? obj.Maui.AppView.iconName :
""
161 display: checked ? (!isWide ? ToolButton.IconOnly : ToolButton.TextBesideIcon) : ToolButton.IconOnly
163 text: obj ? obj.Maui.
AppView.title :
""
169 icon.name:
"overflow-menu"
170 visible: control.hiddenItems.length > 0
172 Layout.alignment:
Qt.AlignCenter
173 display: checked ? ToolButton.TextBesideIcon : ToolButton.IconOnly
175 Behavior on implicitWidth
179 duration: Maui.Style.units.shortDuration
180 easing.type: Easing.InOutQuad
186 model: control.hiddenItems
190 text: modelData.Maui.AppView.title
191 icon.name: modelData.Maui.AppView.iconName
194 checked: control.currentIndex === control.items.length + index
199 if(control.items.length + index === control.currentIndex)
204 control.currentIndex = control.items.length + index
205 control.clicked(control.currentIndex)
A Badge item to display text - as a counter - or an icon as a notification hint.