aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/quickcontrols/basic/SpinBox.qml21
-rw-r--r--src/quickcontrols/fusion/SpinBox.qml17
-rw-r--r--src/quickcontrols/imagine/SpinBox.qml13
-rw-r--r--src/quickcontrols/ios/SpinBox.qml15
-rw-r--r--src/quickcontrols/macos/SpinBox.qml11
-rw-r--r--src/quickcontrols/material/SpinBox.qml17
-rw-r--r--src/quickcontrols/universal/SpinBox.qml16
-rw-r--r--src/quickcontrols/windows/SpinBox.qml20
8 files changed, 63 insertions, 67 deletions
diff --git a/src/quickcontrols/basic/SpinBox.qml b/src/quickcontrols/basic/SpinBox.qml
index 758472c5cb..cf4315e910 100644
--- a/src/quickcontrols/basic/SpinBox.qml
+++ b/src/quickcontrols/basic/SpinBox.qml
@@ -8,16 +8,13 @@ import QtQuick.Templates as T
T.SpinBox {
id: control
+ // Note: the width of the indicators are calculated into the padding
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentItem.implicitWidth + 2 * padding +
- up.implicitIndicatorWidth +
- down.implicitIndicatorWidth)
- implicitHeight: Math.max(implicitContentHeight + topPadding + bottomPadding,
- implicitBackgroundHeight,
- up.implicitIndicatorHeight,
- down.implicitIndicatorHeight)
+ contentItem.implicitWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ up.implicitIndicatorHeight, down.implicitIndicatorHeight)
- padding: 6
leftPadding: padding + (control.mirrored ? (up.indicator ? up.indicator.width : 0) : (down.indicator ? down.indicator.width : 0))
rightPadding: padding + (control.mirrored ? (down.indicator ? down.indicator.width : 0) : (up.indicator ? up.indicator.width : 0))
@@ -30,6 +27,8 @@ T.SpinBox {
contentItem: TextInput {
z: 2
text: control.displayText
+ clip: width < implicitWidth
+ padding: 6
font: control.font
color: control.palette.text
@@ -43,10 +42,8 @@ T.SpinBox {
inputMethodHints: control.inputMethodHints
Rectangle {
- x: -6 - (control.down.indicator ? 1 : 0)
- y: -6
- width: control.width - (control.up.indicator ? control.up.indicator.width - 1 : 0) - (control.down.indicator ? control.down.indicator.width - 1 : 0)
- height: control.height
+ width: parent.width
+ height: parent.height
visible: control.activeFocus
color: "transparent"
border.color: control.palette.highlight
diff --git a/src/quickcontrols/fusion/SpinBox.qml b/src/quickcontrols/fusion/SpinBox.qml
index 03fa470a32..1e7d05d7ce 100644
--- a/src/quickcontrols/fusion/SpinBox.qml
+++ b/src/quickcontrols/fusion/SpinBox.qml
@@ -10,18 +10,16 @@ import QtQuick.Controls.Fusion.impl
T.SpinBox {
id: control
+ // Note: the width of the indicators are calculated into the padding
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentItem.implicitWidth + 2 * padding +
- Math.max(up.implicitIndicatorWidth,
- down.implicitIndicatorWidth))
- implicitHeight: Math.max(implicitContentHeight + topPadding + bottomPadding,
- implicitBackgroundHeight,
- up.implicitIndicatorHeight +
- down.implicitIndicatorHeight)
+ contentItem.implicitWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ up.implicitIndicatorHeight + down.implicitIndicatorHeight)
padding: 4
- leftPadding: padding + (control.mirrored ? (up.indicator ? up.indicator.width : 0) : (down.indicator ? down.indicator.width : 0))
- rightPadding: padding + (control.mirrored ? (down.indicator ? down.indicator.width : 0) : (up.indicator ? up.indicator.width : 0))
+ leftPadding: padding + (control.mirrored ? (up.indicator ? up.indicator.width : 0) : 0)
+ rightPadding: padding + (!control.mirrored ? (up.indicator ? up.indicator.width : 0) : 0)
validator: IntValidator {
locale: control.locale.name
@@ -43,6 +41,7 @@ T.SpinBox {
readOnly: !control.editable
validator: control.validator
inputMethodHints: control.inputMethodHints
+ clip: width < implicitWidth
}
up.indicator: PaddedRectangle {
diff --git a/src/quickcontrols/imagine/SpinBox.qml b/src/quickcontrols/imagine/SpinBox.qml
index 973cc1d1d6..834f474344 100644
--- a/src/quickcontrols/imagine/SpinBox.qml
+++ b/src/quickcontrols/imagine/SpinBox.qml
@@ -9,14 +9,12 @@ import QtQuick.Controls.Imagine.impl
T.SpinBox {
id: control
+ // Note: the width of the indicators are calculated into the padding
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentItem.implicitWidth + 2 * padding +
- up.implicitIndicatorWidth +
- down.implicitIndicatorWidth)
- implicitHeight: Math.max(implicitContentHeight + topPadding + bottomPadding,
- implicitBackgroundHeight,
- up.implicitIndicatorHeight,
- down.implicitIndicatorHeight)
+ contentItem.implicitWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ up.implicitIndicatorHeight, down.implicitIndicatorHeight)
topPadding: background ? background.topPadding : 0
leftPadding: (background ? background.leftPadding : 0) + (control.mirrored ? (up.indicator ? up.indicator.width : 0) : (down.indicator ? down.indicator.width : 0))
@@ -49,6 +47,7 @@ T.SpinBox {
readOnly: !control.editable
validator: control.validator
inputMethodHints: control.inputMethodHints
+ clip: width < implicitWidth
NinePatchImage {
z: -1
diff --git a/src/quickcontrols/ios/SpinBox.qml b/src/quickcontrols/ios/SpinBox.qml
index ed4e4c1bc7..11131a0db1 100644
--- a/src/quickcontrols/ios/SpinBox.qml
+++ b/src/quickcontrols/ios/SpinBox.qml
@@ -8,16 +8,14 @@ import QtQuick.Controls.impl
T.SpinBox {
id: control
+
+ // Note: the width of the indicators are calculated into the padding
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentItem.implicitWidth + 2 * padding +
- up.implicitIndicatorWidth +
- down.implicitIndicatorWidth)
- implicitHeight: Math.max(implicitContentHeight + topPadding + bottomPadding,
- implicitBackgroundHeight,
- up.implicitIndicatorHeight,
- down.implicitIndicatorHeight)
+ contentItem.implicitWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ up.implicitIndicatorHeight, down.implicitIndicatorHeight)
- padding: 0
leftPadding: control.mirrored ? (up.indicator ? up.indicator.width : 0) : (down.indicator ? down.indicator.width : 0)
rightPadding: control.mirrored ? (down.indicator ? down.indicator.width : 0) : (up.indicator ? up.indicator.width : 0)
@@ -42,6 +40,7 @@ T.SpinBox {
readOnly: !control.editable
validator: control.validator
inputMethodHints: control.inputMethodHints
+ clip: width < implicitWidth
}
up.indicator: NinePatchImage {
diff --git a/src/quickcontrols/macos/SpinBox.qml b/src/quickcontrols/macos/SpinBox.qml
index 555b49eb32..dcc52f0ab2 100644
--- a/src/quickcontrols/macos/SpinBox.qml
+++ b/src/quickcontrols/macos/SpinBox.qml
@@ -8,9 +8,12 @@ import QtQuick.NativeStyle as NativeStyle
T.SpinBox {
id: control
- implicitWidth: Math.max(implicitContentWidth + leftInset + rightInset)
- implicitHeight: Math.max(implicitContentHeight, up.implicitIndicatorHeight + down.implicitIndicatorHeight)
- + topInset + bottomInset
+ // Note: the width of the indicators are calculated into the padding
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentItem.implicitWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ up.implicitIndicatorHeight, down.implicitIndicatorHeight)
spacing: 2
rightPadding: up.implicitIndicatorWidth + spacing
@@ -31,7 +34,7 @@ T.SpinBox {
selectedTextColor: control.palette.highlightedText
horizontalAlignment: Qt.AlignLeft
verticalAlignment: Qt.AlignVCenter
- implicitWidth: 100 // From IB XCode
+ implicitWidth: Math.max(100 /* from IB XCode */, contentWidth + leftPadding + rightPadding)
topPadding: 2
bottomPadding: 2
diff --git a/src/quickcontrols/material/SpinBox.qml b/src/quickcontrols/material/SpinBox.qml
index 7529f8e9a0..591f5061fa 100644
--- a/src/quickcontrols/material/SpinBox.qml
+++ b/src/quickcontrols/material/SpinBox.qml
@@ -9,20 +9,18 @@ import QtQuick.Controls.Material.impl
T.SpinBox {
id: control
+ // Note: the width of the indicators are calculated into the padding
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentItem.implicitWidth +
- up.implicitIndicatorWidth +
- down.implicitIndicatorWidth)
- implicitHeight: Math.max(implicitContentHeight + topPadding + bottomPadding,
- implicitBackgroundHeight,
- up.implicitIndicatorHeight,
- down.implicitIndicatorHeight)
+ contentItem.implicitWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ up.implicitIndicatorHeight, down.implicitIndicatorHeight)
spacing: 6
topPadding: 8
bottomPadding: 16
- leftPadding: (control.mirrored ? (up.indicator ? up.indicator.width : 0) : (down.indicator ? down.indicator.width : 0))
- rightPadding: (control.mirrored ? (down.indicator ? down.indicator.width : 0) : (up.indicator ? up.indicator.width : 0))
+ leftPadding: control.mirrored ? (up.indicator ? up.indicator.width : 0) : (down.indicator ? down.indicator.width : 0)
+ rightPadding: control.mirrored ? (down.indicator ? down.indicator.width : 0) : (up.indicator ? up.indicator.width : 0)
validator: IntValidator {
locale: control.locale.name
@@ -45,6 +43,7 @@ T.SpinBox {
readOnly: !control.editable
validator: control.validator
inputMethodHints: control.inputMethodHints
+ clip: width < implicitWidth
}
up.indicator: Item {
diff --git a/src/quickcontrols/universal/SpinBox.qml b/src/quickcontrols/universal/SpinBox.qml
index 07721c8712..ed233e0c10 100644
--- a/src/quickcontrols/universal/SpinBox.qml
+++ b/src/quickcontrols/universal/SpinBox.qml
@@ -9,20 +9,19 @@ import QtQuick.Controls.Universal
T.SpinBox {
id: control
+
+ // Note: the width of the indicators are calculated into the padding
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentItem.implicitWidth + 16 +
- up.implicitIndicatorWidth +
- down.implicitIndicatorWidth)
- implicitHeight: Math.max(implicitContentHeight + topPadding + bottomPadding,
- implicitBackgroundHeight,
- up.implicitIndicatorHeight,
- down.implicitIndicatorHeight)
+ contentItem.implicitWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ up.implicitIndicatorHeight, down.implicitIndicatorHeight)
// TextControlThemePadding + 2 (border)
padding: 12
topPadding: padding - 7
leftPadding: padding + (control.mirrored ? (up.indicator ? up.indicator.width : 0) : (down.indicator ? down.indicator.width : 0))
- rightPadding: padding - 4 + (control.mirrored ? (down.indicator ? down.indicator.width : 0) : (up.indicator ? up.indicator.width : 0))
+ rightPadding: padding + (control.mirrored ? (down.indicator ? down.indicator.width : 0) : (up.indicator ? up.indicator.width : 0))
bottomPadding: padding - 5
Universal.theme: activeFocus ? Universal.Light : undefined
@@ -47,6 +46,7 @@ T.SpinBox {
readOnly: !control.editable
validator: control.validator
inputMethodHints: control.inputMethodHints
+ clip: width < implicitWidth
}
up.indicator: Item {
diff --git a/src/quickcontrols/windows/SpinBox.qml b/src/quickcontrols/windows/SpinBox.qml
index 34fbfddbcf..982a5868a3 100644
--- a/src/quickcontrols/windows/SpinBox.qml
+++ b/src/quickcontrols/windows/SpinBox.qml
@@ -12,18 +12,15 @@ T.SpinBox {
&& down.indicator.hasOwnProperty("_qt_default")
readonly property bool __notCustomizable: true
- implicitWidth: Math.max(contentItem.implicitWidth + leftInset + rightInset,
- 90 /* minimum */ )
- implicitHeight: Math.max(contentItem.implicitHeight, up.implicitIndicatorHeight + down.implicitIndicatorHeight)
- + topInset + bottomInset
+ // Note: the indicators are inside the contentItem
+ implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+ contentItem.implicitWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+ implicitContentHeight + topPadding + bottomPadding,
+ up.implicitIndicatorHeight + down.implicitIndicatorHeight)
spacing: 2
- leftPadding: 0
- topPadding: 0
- rightPadding: rightInset
- bottomPadding: 0
-
validator: IntValidator {
locale: control.locale.name
bottom: Math.min(control.from, control.to)
@@ -38,16 +35,19 @@ T.SpinBox {
selectedTextColor: control.palette.highlightedText
horizontalAlignment: Qt.AlignLeft
verticalAlignment: Qt.AlignVCenter
+ implicitWidth: Math.max(90 /* minimum */, contentWidth + leftPadding + rightPadding)
topPadding: 0
bottomPadding: 0
leftPadding: 10
- rightPadding: 10
+ rightPadding: up.indicator.width + 10
readOnly: !control.editable
validator: control.validator
inputMethodHints: control.inputMethodHints
+ clip: width < implicitWidth
+
readonly property bool __ignoreNotCustomizable: true
// Since the indicators are embedded inside the TextField we need to avoid that