8import QtQuick.Controls as QQC2
9import QtQuick.Templates as T
10import org.kde.kirigami as Kirigami
51 property alias focusSequence: focusShortcut.sequence
60 property list<T.Action> leftActions
69 property list<T.Action> rightActions
71 property alias _leftActionsRow: leftActionsRow
72 property alias _rightActionsRow: rightActionsRow
77 horizontalAlignment: TextInput.AlignLeft
79 leftPadding: Kirigami.Units.smallSpacing + (root.effectiveHorizontalAlignment === TextInput.AlignRight ? rightActionsRow : leftActionsRow).width
80 rightPadding: Kirigami.
Units.smallSpacing + (root.effectiveHorizontalAlignment === TextInput.
AlignRight ? leftActionsRow : rightActionsRow).width
82 Behavior on leftPadding {
84 duration: Kirigami.
Units.longDuration
85 easing.
type: Easing.InOutQuad
89 Behavior on rightPadding {
91 duration: Kirigami.
Units.longDuration
92 easing.
type: Easing.InOutQuad
98 enabled: root.visible && root.enabled
100 root.forceActiveFocus(
Qt.ShortcutFocusReason)
106 visible: focusShortcut.nativeText.length > 0 && root.text.length === 0 && !rightActionsRow.hovered && !leftActionsRow.hovered && root.hovered
107 text: focusShortcut.nativeText
110 component ActionIconMouseArea: MouseArea {
112 activeFocusOnTab:
true
113 cursorShape:
Qt.PointingHandCursor
115 Accessible.role: Accessible.Button
116 Keys.onPressed:
event => {
123 event.accepted =
true;
131 padding: Kirigami.Units.smallSpacing
132 spacing: Kirigami.Units.smallSpacing
133 layoutDirection:
Qt.LeftToRight
134 LayoutMirroring.enabled: root.effectiveHorizontalAlignment === TextInput.AlignRight
135 anchors.left: parent.left
136 anchors.leftMargin: Kirigami.Units.smallSpacing
137 anchors.top: parent.top
138 anchors.topMargin: parent.topPadding
139 anchors.bottom: parent.bottom
140 anchors.bottomMargin: parent.bottomPadding
142 model: root.leftActions
146 required
property T.Action modelData
148 implicitWidth: Kirigami.Units.iconSizes.sizeForLabels
149 implicitHeight: Kirigami.Units.iconSizes.sizeForLabels
151 anchors.verticalCenter: parent.verticalCenter
153 source: modelData.icon.name.length > 0 ? modelData.icon.name : modelData.icon.source
154 active: actionArea.containsPress || actionArea.activeFocus
155 visible: !(modelData instanceof Kirigami.Action) || modelData.visible
156 enabled: modelData.enabled
158 ActionIconMouseArea {
160 Accessible.
name: delegate.modelData.text
161 onClicked: mouse => delegate.modelData.trigger()
165 visible: (actionArea.containsMouse || actionArea.activeFocus) && (delegate.modelData.text.length > 0)
166 text: delegate.modelData.text
174 padding: Kirigami.
Units.smallSpacing
175 spacing: Kirigami.
Units.smallSpacing
177 LayoutMirroring.enabled: root.effectiveHorizontalAlignment === TextInput.
AlignRight
179 anchors.rightMargin: Kirigami.
Units.smallSpacing
180 anchors.top: parent.top
181 anchors.topMargin: parent.topPadding
182 anchors.bottom: parent.bottom
183 anchors.bottomMargin: parent.bottomPadding
185 model: root.rightActions
189 required property T.
Action modelData
191 implicitWidth: Kirigami.
Units.iconSizes.sizeForLabels
192 implicitHeight: Kirigami.
Units.iconSizes.sizeForLabels
194 anchors.verticalCenter: parent.verticalCenter
196 source: modelData.icon.
name.length > 0 ? modelData.icon.
name : modelData.icon.source
197 active: actionArea.containsPress || actionArea.activeFocus
198 visible: !(modelData instanceof Kirigami.
Action) || modelData.visible
199 enabled: modelData.enabled
201 ActionIconMouseArea {
203 Accessible.
name: delegate.modelData.text
204 onClicked: mouse => delegate.modelData.trigger()
208 visible: (actionArea.containsMouse || actionArea.activeFocus) && (delegate.modelData.text.length > 0)
209 text: delegate.modelData.text
An item that represents an abstract Action.
AKONADI_CALENDAR_EXPORT KCalendarCore::Event::Ptr event(const Akonadi::Item &item)
Type type(const QSqlDatabase &db)
KIOCORE_EXPORT QStringList list(const QString &fileClass)
QString name(StandardShortcut id)
QTextStream & right(QTextStream &stream)