21import QtQuick.Controls as QC
22import QtQuick.Templates as T
24import org.mauikit.controls as Maui
41 Maui.Theme.colorSet: Maui.Theme.Button
42 Maui.Theme.inherit: false
44 implicitHeight: _layout.implicitHeight + topPadding + bottomPadding
46 property int spacing: Maui.Style.space.small
51 readonly property alias menu : entryMenu
58 property alias icon : _icon
60 property alias rightContent : _rightLayout.data
72 function setTextColor(control)
74 if(control.Maui.Controls.status)
76 switch(control.Maui.Controls.status)
78 case Maui.Controls.Positive: return control.Maui.Theme.positiveBackgroundColor
79 case Maui.Controls.Negative: return control.Maui.Theme.negativeBackgroundColor
80 case Maui.Controls.Neutral: return control.Maui.Theme.neutralBackgroundColor
81 case Maui.Controls.Normal: return control.Maui.Theme.textColor
85 return control.Maui.Theme.textColor
88 hoverEnabled: !Maui.Handy.isMobile
90 opacity: control.enabled ? 1 : 0.5
92 color: Maui.Theme.textColor
93 selectionColor: Maui.Theme.highlightColor
94 selectedTextColor: Maui.Theme.highlightedTextColor
97 verticalAlignment:
Text.AlignVCenter
98 horizontalAlignment:
Text.AlignLeft
102 leftPadding: Maui.Style.space.medium
103 rightPadding: _rightLayout.implicitWidth + Maui.Style.space.medium
104 topPadding: _titleLoader.implicitHeight
105 topInset: _titleLoader.implicitHeight
107 bottomPadding: _subtitleLoader.implicitHeight
108 bottomInset: _subtitleLoader.implicitHeight
110 selectByMouse: !Maui.Handy.isMobile
111 renderType: Screen.devicePixelRatio % 1 !== 0 ?
Text.QtRendering :
Text.NativeRendering
113 persistentSelection:
true
114 font: Maui.Style.defaultFont
116 wrapMode: TextInput.NoWrap
118 onPressAndHold: (
event) =>
120 if(Maui.Handy.isMobile)
123 event.accepted =
true
127 event.accepted =
false
131 onPressed: (
event) =>
133 if(!Maui.Handy.isMobile &&
event.button ===
Qt.RightButton)
136 event.accepted =
true
140 event.accepted =
true
148 sequence: StandardKey.Escape
156 Behavior on leftPadding
160 duration: Maui.Style.units.longDuration
161 easing.type: Easing.InOutQuad
165 Behavior on rightPadding
169 duration: Maui.Style.units.longDuration
170 easing.type: Easing.InOutQuad
174 background: Rectangle
176 implicitHeight: Maui.Style.iconSize
177 color: control.enabled ? (control.hovered ? Maui.Theme.hoverColor : Maui.Theme.backgroundColor) :
"transparent"
179 radius: Maui.
Style.radiusV
183 Maui.ColorTransition{}
186 Behavior on border.color
188 Maui.ColorTransition{}
191 border.color: statusColor(control)
193 function statusColor(control)
195 if(control.Maui.Controls.status)
197 switch(control.Maui.Controls.status)
199 case Maui.Controls.Positive:
return control.Maui.Theme.positiveBackgroundColor
200 case Maui.Controls.Negative:
return control.Maui.Theme.negativeBackgroundColor
201 case Maui.Controls.Neutral:
return control.Maui.Theme.neutralBackgroundColor
202 case Maui.Controls.Normal:
215 active: control.Maui.Controls.title && control.Maui.Controls.title.length > 0
218 anchors.bottom: _layout.top
220 sourceComponent: QC.Label
222 text: control.Maui.Controls.title
223 color: setTextColor(control)
224 bottomPadding: Maui.Style.defaultSpacing
225 elide:
Text.ElideRight
226 wrapMode:
Text.NoWrap
233 active: control.Maui.Controls.subtitle && control.Maui.Controls.subtitle.length > 0
236 anchors.top: _layout.bottom
238 sourceComponent: QC.Label
240 text: control.Maui.Controls.subtitle
241 font.pointSize: Maui.Style.fontSizes.small
243 color: setTextColor(control)
244 topPadding: Maui.Style.defaultSpacing
245 elide:
Text.ElideRight
246 wrapMode:
Text.WordWrap
258 anchors.topMargin: _titleLoader.implicitHeight
259 anchors.bottomMargin: _subtitleLoader.implicitHeight
261 anchors.leftMargin: Maui.Style.space.medium
262 anchors.rightMargin: _badgeLoader.visible ? 8 : 0
264 spacing: control.spacing
269 visible: source ? true :
false
270 implicitHeight: visible ? 16 : 0
271 implicitWidth: height
273 opacity: placeholder.opacity
278 Layout.preferredHeight: Maui.Style.iconSize + (Maui.Style.defaultPadding * 2)
283 Layout.fillWidth:
true
284 visible: !placeholder.visible
290 Layout.fillWidth:
true
291 text: control.placeholderText
294 verticalAlignment: control.verticalAlignment
295 elide:
Text.ElideRight
296 wrapMode:
Text.NoWrap
299 opacity: !control.length && !control.preeditText && !control.activeFocus ? 0.5 : 0
305 duration: Maui.Style.units.longDuration
306 easing.type: Easing.InOutQuad
316 spacing: control.spacing
321 focusPolicy:
Qt.NoFocus
325 visible: control.text.length || control.activeFocus
326 icon.name:
"edit-clear"
337 model: control.actions
342 focusPolicy:
Qt.NoFocus
344 checkable: action.checkable
357 active: control.Maui.Controls.badgeText && control.Maui.Controls.badgeText.length > 0 && control.visible
360 anchors.horizontalCenter: parent.right
361 anchors.verticalCenter: parent.top
362 anchors.verticalCenterOffset: 10
363 anchors.horizontalCenterOffset: -5
365 sourceComponent: Maui.Badge
367 text: control.Maui.Controls.badgeText
370 font.pointSize: Maui.Style.fontSizes.tiny
372 Maui.Theme.colorSet: Maui.Theme.View
373 Maui.Theme.backgroundColor: Maui.Theme.negativeBackgroundColor
374 Maui.Theme.textColor: Maui.Theme.negativeTextColor
376 OpacityAnimator on opacity
380 duration: Maui.Style.units.longDuration
381 running: parent.visible
384 ScaleAnimator on scale
388 duration: Maui.Style.units.longDuration
389 running: parent.visible
390 easing.type: Easing.OutInQuad
401 text:
i18nd(
"mauikit",
"Copy")
402 onTriggered: control.copy()
403 enabled: control.selectedText.length
408 text:
i18nd(
"mauikit",
"Cut")
409 onTriggered: control.cut()
410 enabled: control.selectedText.length
415 text:
i18nd(
"mauikit",
"Paste")
418 var text = control.paste()
419 control.insert(control.cursorPosition, text)
425 text:
i18nd(
"mauikit",
"Select All")
426 onTriggered: control.selectAll()
427 enabled: control.text.length
432 text:
i18nd(
"mauikit",
"Undo")
433 onTriggered: control.undo()
434 enabled: control.canUndo
439 text:
i18nd(
"mauikit",
"Redo")
440 onTriggered: control.redo()
441 enabled: control.canRedo
449 sourceComponent: DropArea
456 control.text +=
drop.text
458 }
else if(
drop.hasUrls)
460 control.text =
drop.urls
463 control.contentDropped(drop)
The MauiKit Style preferences singleton object.
list< QtObject > actions
actions : RowLayout
void contentDropped(var drop)
contentDropped :
QString i18nd(const char *domain, const char *text, const TYPE &arg...)
AKONADI_CALENDAR_EXPORT KCalendarCore::Event::Ptr event(const Akonadi::Item &item)
KIOWIDGETS_EXPORT DropJob * drop(const QDropEvent *dropEvent, const QUrl &destUrl, DropJobFlags dropjobFlags, JobFlags flags=DefaultFlags)