5import QtQuick.Controls as QQC2
8import org.kde.kirigami as Kirigami
41 required property string label
46 property alias value: spinbox.value
51 property alias from: spinbox.from
56 property alias to: spinbox.to
61 property alias stepSize: spinbox.stepSize
66 property alias textFromValue: spinbox.textFromValue
71 property alias valueFromText: spinbox.valueFromText
76 property alias displayText: spinbox.displayText
93 property var status: Kirigami.MessageType.Information
98 property string statusMessage: ""
103 function increase() {
110 function decrease() {
114 focusPolicy: Kirigami.Settings.isMobile ? Qt.StrongFocus : Qt.NoFocus
116 onClicked: spinbox.forceActiveFocus()
119 contentItem: ColumnLayout {
121 Layout.fillWidth: true
125 Layout.fillWidth: true
127 elide: Text.ElideRight
128 color: root.enabled ? Kirigami.Theme.textColor : Kirigami.Theme.disabledTextColor
134 onClicked: root.decrease()
135 icon.name: 'list-remove-symbolic'
136 visible: Kirigami.Settings.isMobile
143 focusPolicy: Qt.NoFocus
146 leftPadding: Kirigami.Units.largeSpacing * 2
147 rightPadding: Kirigami.Units.largeSpacing * 2
148 visible: Kirigami.Settings.isMobile
149 contentItem: QQC2.Label {
150 verticalAlignment: Text.AlignVCenter
151 height: Kirigami.Units.gridUnit * 2
152 text: root.textFromValue(root.value, root.locale)
155 implicitHeight: Kirigami.Units.gridUnit * 2
157 color: Kirigami.ColorUtils.linearInterpolation(Kirigami.Theme.backgroundColor, Kirigami.Theme.textColor, Kirigami.Theme.frameContrast)
167 color: Kirigami.ColorUtils.linearInterpolation(Kirigami.Theme.backgroundColor, Kirigami.Theme.textColor, Kirigami.Theme.frameContrast)
172 bottom: parent.bottom
179 onClicked: root.increase()
180 visible: Kirigami.Settings.isMobile
181 icon.name: 'list-add'
190 Layout.fillWidth: true
191 visible: !Kirigami.Settings.isMobile
195 Kirigami.InlineMessage {
197 visible: root.statusMessage.length > 0
198 Layout.topMargin: visible ?
Kirigami.Units.smallSpacing : 0
199 Layout.fillWidth:
true
200 text: root.statusMessage