aboutsummaryrefslogtreecommitdiffstats
path: root/src/imports
diff options
context:
space:
mode:
authorMitch Curtis <mitch.curtis@theqtcompany.com>2016-02-29 15:56:03 +0100
committerJ-P Nurmi <jpnurmi@theqtcompany.com>2016-04-13 09:07:38 +0000
commit7a8f055c6ee274292f2585f59ff6bac4383d6b01 (patch)
tree4c7b3537d40c8dd50284e21622d36d28db67d501 /src/imports
parent4ae3a828ad972e24802ea711fc12e12883cc28be (diff)
Expose checkable where necessary, instead of in QQuickAbstractButton
QQuickCheckBox, QQuickRadioButton and QQuickSwitch are inherently checkable, so having this property available to QML doesn't make sense. QQuickButton and QQuickMenuItem are the two classes that need to expose the property. Change-Id: Ic421c195295c4bef0fc934c98fa9e781d98c9b67 Task-number: QTBUG-51554 Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
Diffstat (limited to 'src/imports')
-rw-r--r--src/imports/controls/CheckDelegate.qml4
-rw-r--r--src/imports/controls/ComboBox.qml1
-rw-r--r--src/imports/controls/ItemDelegate.qml14
-rw-r--r--src/imports/controls/RadioDelegate.qml4
-rw-r--r--src/imports/controls/SwipeDelegate.qml14
-rw-r--r--src/imports/controls/doc/images/qtquickcontrols-itemdelegate.gifbin12468 -> 14448 bytes
-rw-r--r--src/imports/controls/doc/snippets/qtquickcontrols-combobox-delegate.qml1
-rw-r--r--src/imports/controls/doc/snippets/qtquickcontrols-itemdelegate-background.qml2
-rw-r--r--src/imports/controls/doc/snippets/qtquickcontrols-itemdelegate-contentItem.qml2
-rw-r--r--src/imports/controls/doc/snippets/qtquickcontrols-itemdelegate-indicator.qml2
-rw-r--r--src/imports/controls/doc/snippets/qtquickcontrols-swipedelegate-indicator.qml1
-rw-r--r--src/imports/controls/doc/src/qtquickcontrols2-customize.qdoc13
-rw-r--r--src/imports/controls/material/CheckIndicator.qml2
-rw-r--r--src/imports/controls/material/ItemDelegate.qml80
-rw-r--r--src/imports/controls/material/SwipeDelegate.qml79
-rw-r--r--src/imports/controls/universal/ItemDelegate.qml14
-rw-r--r--src/imports/controls/universal/MenuItem.qml4
-rw-r--r--src/imports/controls/universal/SwipeDelegate.qml14
18 files changed, 26 insertions, 225 deletions
diff --git a/src/imports/controls/CheckDelegate.qml b/src/imports/controls/CheckDelegate.qml
index 4c5f0644..8d266b7d 100644
--- a/src/imports/controls/CheckDelegate.qml
+++ b/src/imports/controls/CheckDelegate.qml
@@ -53,8 +53,8 @@ T.CheckDelegate {
//! [contentItem]
contentItem: Text {
- leftPadding: control.checkable && control.mirrored ? control.indicator.width + control.spacing : 0
- rightPadding: control.checkable && !control.mirrored ? control.indicator.width + control.spacing : 0
+ leftPadding: control.mirrored ? control.indicator.width + control.spacing : 0
+ rightPadding: !control.mirrored ? control.indicator.width + control.spacing : 0
text: control.text
font: control.font
diff --git a/src/imports/controls/ComboBox.qml b/src/imports/controls/ComboBox.qml
index 6e3dc91b..dccc7c10 100644
--- a/src/imports/controls/ComboBox.qml
+++ b/src/imports/controls/ComboBox.qml
@@ -57,7 +57,6 @@ T.ComboBox {
delegate: ItemDelegate {
width: control.width
text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole] : model[control.textRole]) : modelData
- checkable: true
autoExclusive: true
checked: control.currentIndex === index
highlighted: control.highlightedIndex === index
diff --git a/src/imports/controls/ItemDelegate.qml b/src/imports/controls/ItemDelegate.qml
index 13a13e1e..f418788e 100644
--- a/src/imports/controls/ItemDelegate.qml
+++ b/src/imports/controls/ItemDelegate.qml
@@ -52,8 +52,8 @@ T.ItemDelegate {
//! [contentItem]
contentItem: Text {
- leftPadding: control.checkable && control.mirrored ? control.indicator.width + control.spacing : 0
- rightPadding: control.checkable && !control.mirrored ? control.indicator.width + control.spacing : 0
+ leftPadding: control.mirrored ? (control.indicator ? control.indicator.width : 0) + control.spacing : 0
+ rightPadding: !control.mirrored ? (control.indicator ? control.indicator.width : 0) + control.spacing : 0
text: control.text
font: control.font
@@ -65,16 +65,6 @@ T.ItemDelegate {
}
//! [contentItem]
- //! [indicator]
- indicator: Image {
- x: control.mirrored ? control.leftPadding : control.width - width - control.rightPadding
- y: control.topPadding + (control.availableHeight - height) / 2
-
- visible: control.checked
- source: control.checkable ? "qrc:/qt-project.org/imports/Qt/labs/controls/images/check.png" : ""
- }
- //! [indicator]
-
//! [background]
background: Rectangle {
implicitWidth: 100
diff --git a/src/imports/controls/RadioDelegate.qml b/src/imports/controls/RadioDelegate.qml
index 55186ae5..01b62767 100644
--- a/src/imports/controls/RadioDelegate.qml
+++ b/src/imports/controls/RadioDelegate.qml
@@ -52,8 +52,8 @@ T.RadioDelegate {
//! [contentItem]
contentItem: Text {
- leftPadding: control.checkable && control.mirrored ? control.indicator.width + control.spacing : 0
- rightPadding: control.checkable && !control.mirrored ? control.indicator.width + control.spacing : 0
+ leftPadding: control.mirrored ? control.indicator.width + control.spacing : 0
+ rightPadding: !control.mirrored ? control.indicator.width + control.spacing : 0
text: control.text
font: control.font
diff --git a/src/imports/controls/SwipeDelegate.qml b/src/imports/controls/SwipeDelegate.qml
index b3cf4714..45d6ed54 100644
--- a/src/imports/controls/SwipeDelegate.qml
+++ b/src/imports/controls/SwipeDelegate.qml
@@ -52,8 +52,8 @@ T.SwipeDelegate {
//! [contentItem]
contentItem: Text {
- leftPadding: control.checkable && control.mirrored ? control.indicator.width + control.spacing : 0
- rightPadding: control.checkable && !control.mirrored ? control.indicator.width + control.spacing : 0
+ leftPadding: control.mirrored ? (control.indicator ? control.indicator.width : 0) + control.spacing : 0
+ rightPadding: !control.mirrored ? (control.indicator ? control.indicator.width : 0) + control.spacing : 0
text: control.text
font: control.font
@@ -73,16 +73,6 @@ T.SwipeDelegate {
}
//! [contentItem]
- //! [indicator]
- indicator: Image {
- x: control.mirrored ? control.leftPadding : control.width - width - control.rightPadding
- y: control.topPadding + (control.availableHeight - height) / 2
-
- visible: control.checked
- source: control.checkable ? "qrc:/qt-project.org/imports/Qt/labs/controls/images/check.png" : ""
- }
- //! [indicator]
-
//! [background]
background: Rectangle {
color: control.pressed ? "#bdbebf" : "#eeeeee"
diff --git a/src/imports/controls/doc/images/qtquickcontrols-itemdelegate.gif b/src/imports/controls/doc/images/qtquickcontrols-itemdelegate.gif
index 7f8a2af8..0e8554ff 100644
--- a/src/imports/controls/doc/images/qtquickcontrols-itemdelegate.gif
+++ b/src/imports/controls/doc/images/qtquickcontrols-itemdelegate.gif
Binary files differ
diff --git a/src/imports/controls/doc/snippets/qtquickcontrols-combobox-delegate.qml b/src/imports/controls/doc/snippets/qtquickcontrols-combobox-delegate.qml
index 60f56940..1241eeaa 100644
--- a/src/imports/controls/doc/snippets/qtquickcontrols-combobox-delegate.qml
+++ b/src/imports/controls/doc/snippets/qtquickcontrols-combobox-delegate.qml
@@ -40,7 +40,6 @@ Item {
delegate: ItemDelegate {
width: combo.width
text: modelData
- checkable: true
autoExclusive: true
checked: combo.currentIndex === index
Rectangle {
diff --git a/src/imports/controls/doc/snippets/qtquickcontrols-itemdelegate-background.qml b/src/imports/controls/doc/snippets/qtquickcontrols-itemdelegate-background.qml
index 10d5696e..85aba1c8 100644
--- a/src/imports/controls/doc/snippets/qtquickcontrols-itemdelegate-background.qml
+++ b/src/imports/controls/doc/snippets/qtquickcontrols-itemdelegate-background.qml
@@ -30,8 +30,6 @@ import Qt.labs.controls 1.0
ItemDelegate {
text: "ItemDelegate"
- checked: true
- checkable: true
background: Rectangle {
color: 'transparent'
border.color: 'red'
diff --git a/src/imports/controls/doc/snippets/qtquickcontrols-itemdelegate-contentItem.qml b/src/imports/controls/doc/snippets/qtquickcontrols-itemdelegate-contentItem.qml
index 43e6f85e..aa7d5e2b 100644
--- a/src/imports/controls/doc/snippets/qtquickcontrols-itemdelegate-contentItem.qml
+++ b/src/imports/controls/doc/snippets/qtquickcontrols-itemdelegate-contentItem.qml
@@ -30,8 +30,6 @@ import Qt.labs.controls 1.0
ItemDelegate {
text: "ItemDelegate"
- checked: true
- checkable: true
Rectangle {
anchors.fill: contentItem
color: "transparent"
diff --git a/src/imports/controls/doc/snippets/qtquickcontrols-itemdelegate-indicator.qml b/src/imports/controls/doc/snippets/qtquickcontrols-itemdelegate-indicator.qml
index fb80957d..13e8b6cf 100644
--- a/src/imports/controls/doc/snippets/qtquickcontrols-itemdelegate-indicator.qml
+++ b/src/imports/controls/doc/snippets/qtquickcontrols-itemdelegate-indicator.qml
@@ -30,8 +30,6 @@ import Qt.labs.controls 1.0
ItemDelegate {
text: "ItemDelegate"
- checked: true
- checkable: true
Rectangle {
anchors.fill: indicator
color: "transparent"
diff --git a/src/imports/controls/doc/snippets/qtquickcontrols-swipedelegate-indicator.qml b/src/imports/controls/doc/snippets/qtquickcontrols-swipedelegate-indicator.qml
index 22530e4b..e184dc64 100644
--- a/src/imports/controls/doc/snippets/qtquickcontrols-swipedelegate-indicator.qml
+++ b/src/imports/controls/doc/snippets/qtquickcontrols-swipedelegate-indicator.qml
@@ -31,7 +31,6 @@ import Qt.labs.controls 1.0
SwipeDelegate {
text: "SwipeDelegate"
checked: true
- checkable: true
Rectangle {
anchors.fill: indicator
color: "transparent"
diff --git a/src/imports/controls/doc/src/qtquickcontrols2-customize.qdoc b/src/imports/controls/doc/src/qtquickcontrols2-customize.qdoc
index 103da5fe..4975ac24 100644
--- a/src/imports/controls/doc/src/qtquickcontrols2-customize.qdoc
+++ b/src/imports/controls/doc/src/qtquickcontrols2-customize.qdoc
@@ -228,9 +228,7 @@
\section3 Indicator
- \image qtquickcontrols-itemdelegate-indicator.png
-
- \snippet ItemDelegate.qml indicator
+ ItemDelegate has no indicator item by default.
\section1 Customizing Label
@@ -505,8 +503,9 @@
\section1 Customizing SwipeDelegate
- SwipeDelegate consists of four visual items: \l {Control::background}{background},
- \l {Control::contentItem}{content item}, \c exposure.left, and \c exposure.right.
+ SwipeDelegate consists of five visual items: \l {Control::background}{background},
+ \l {Control::contentItem}{content item}, \l {AbstractButton::indicator}{indicator},
+ \c exposure.left, and \c exposure.right.
\section3 Background
@@ -520,6 +519,10 @@
\snippet SwipeDelegate.qml contentItem
+ \section3 Indicator
+
+ SwipeDelegate has no indicator item by default.
+
\section3 Left, right, and behind
\image qtquickcontrols-swipedelegate.gif
diff --git a/src/imports/controls/material/CheckIndicator.qml b/src/imports/controls/material/CheckIndicator.qml
index 5c26e26f..962d4a9e 100644
--- a/src/imports/controls/material/CheckIndicator.qml
+++ b/src/imports/controls/material/CheckIndicator.qml
@@ -46,8 +46,6 @@ Rectangle {
border.width: control.checked ? width / 2 : 2
radius: 2
- visible: control.checkable
-
property alias control: ripple.control
Behavior on border.width {
diff --git a/src/imports/controls/material/ItemDelegate.qml b/src/imports/controls/material/ItemDelegate.qml
index 132cce3d..e3ec6bd9 100644
--- a/src/imports/controls/material/ItemDelegate.qml
+++ b/src/imports/controls/material/ItemDelegate.qml
@@ -37,7 +37,6 @@
import QtQuick 2.6
import Qt.labs.templates 1.0 as T
import Qt.labs.controls.material 1.0
-import Qt.labs.controls.material.impl 1.0
T.ItemDelegate {
id: control
@@ -52,85 +51,10 @@ T.ItemDelegate {
padding: 16
spacing: 16
- //! [indicator]
- indicator: Rectangle {
- id: indicatorItem
- x: text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
- y: control.topPadding + (control.availableHeight - height) / 2
- implicitWidth: 20
- implicitHeight: 20
- color: "transparent"
- border.color: control.checked ? control.Material.accentColor : control.Material.secondaryTextColor
- border.width: control.checked ? width / 2 : 2
- radius: 2
-
- visible: control.checkable
-
- Behavior on border.width {
- NumberAnimation {
- duration: 100
- easing.type: Easing.OutCubic
- }
- }
-
- Behavior on border.color {
- ColorAnimation {
- duration: 100
- easing.type: Easing.OutCubic
- }
- }
-
- Ripple {
- width: parent.width
- height: width
- control: control
- colored: control.checked
- opacity: control.pressed ? 1 : 0
- }
-
- // TODO: This needs to be transparent
- Image {
- id: checkImage
- x: (parent.width - width) / 2
- y: (parent.height - height) / 2
- width: 16
- height: 16
- source: "qrc:/qt-project.org/imports/Qt/labs/controls/material/images/check.png"
- fillMode: Image.PreserveAspectFit
-
- scale: control.checked ? 1 : 0
- Behavior on scale { NumberAnimation { duration: 100 } }
- }
-
- states: State {
- name: "checked"
- when: control.checked
- }
-
- transitions: Transition {
- SequentialAnimation {
- NumberAnimation {
- target: indicatorItem
- property: "scale"
- // Go down 2 pixels in size.
- to: 1 - 2 / indicatorItem.width
- duration: 120
- }
- NumberAnimation {
- target: indicatorItem
- property: "scale"
- to: 1
- duration: 120
- }
- }
- }
- }
- //! [indicator]
-
//! [contentItem]
contentItem: Text {
- leftPadding: control.checkable && !control.mirrored ? control.indicator.width + control.spacing : 0
- rightPadding: control.checkable && control.mirrored ? control.indicator.width + control.spacing : 0
+ leftPadding: control.checkable && !control.mirrored ? (control.indicator ? control.indicator.width : 0) + control.spacing : 0
+ rightPadding: control.checkable && control.mirrored ? (control.indicator ? control.indicator.width : 0) + control.spacing : 0
text: control.text
font: control.font
diff --git a/src/imports/controls/material/SwipeDelegate.qml b/src/imports/controls/material/SwipeDelegate.qml
index 34d546d7..c5942140 100644
--- a/src/imports/controls/material/SwipeDelegate.qml
+++ b/src/imports/controls/material/SwipeDelegate.qml
@@ -52,85 +52,10 @@ T.SwipeDelegate {
padding: 16
spacing: 16
- //! [indicator]
- indicator: Rectangle {
- id: indicatorItem
- x: text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
- y: control.topPadding + (control.availableHeight - height) / 2
- implicitWidth: 20
- implicitHeight: 20
- color: "transparent"
- border.color: control.checked ? control.Material.accentColor : control.Material.secondaryTextColor
- border.width: control.checked ? width / 2 : 2
- radius: 2
-
- visible: control.checkable
-
- Behavior on border.width {
- NumberAnimation {
- duration: 100
- easing.type: Easing.OutCubic
- }
- }
-
- Behavior on border.color {
- ColorAnimation {
- duration: 100
- easing.type: Easing.OutCubic
- }
- }
-
- Ripple {
- width: parent.width
- height: width
- control: control
- colored: control.checked
- opacity: control.pressed ? 1 : 0
- }
-
- // TODO: This needs to be transparent
- Image {
- id: checkImage
- x: (parent.width - width) / 2
- y: (parent.height - height) / 2
- width: 16
- height: 16
- source: "qrc:/qt-project.org/imports/Qt/labs/controls/material/images/check.png"
- fillMode: Image.PreserveAspectFit
-
- scale: control.checked ? 1 : 0
- Behavior on scale { NumberAnimation { duration: 100 } }
- }
-
- states: State {
- name: "checked"
- when: control.checked
- }
-
- transitions: Transition {
- SequentialAnimation {
- NumberAnimation {
- target: indicatorItem
- property: "scale"
- // Go down 2 pixels in size.
- to: 1 - 2 / indicatorItem.width
- duration: 120
- }
- NumberAnimation {
- target: indicatorItem
- property: "scale"
- to: 1
- duration: 120
- }
- }
- }
- }
- //! [indicator]
-
//! [contentItem]
contentItem: Text {
- leftPadding: control.checkable && !control.mirrored ? control.indicator.width + control.spacing : 0
- rightPadding: control.checkable && control.mirrored ? control.indicator.width + control.spacing : 0
+ leftPadding: !control.mirrored ? (control.indicator ? control.indicator.width : 0) + control.spacing : 0
+ rightPadding: control.mirrored ? (control.indicator ? control.indicator.width : 0) + control.spacing : 0
text: control.text
font: control.font
diff --git a/src/imports/controls/universal/ItemDelegate.qml b/src/imports/controls/universal/ItemDelegate.qml
index d381086d..d8fc80e8 100644
--- a/src/imports/controls/universal/ItemDelegate.qml
+++ b/src/imports/controls/universal/ItemDelegate.qml
@@ -55,20 +55,10 @@ T.ItemDelegate {
rightPadding: 12
bottomPadding: 13
- //! [indicator]
- indicator: Image {
- x: text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
- y: control.topPadding + (control.availableHeight - height) / 2
-
- visible: control.checked
- source: !control.checkable ? "" : "image://universal/checkmark/" + (!control.enabled ? control.Universal.baseLowColor : control.pressed ? control.Universal.baseHighColor : control.Universal.baseMediumHighColor)
- }
- //! [indicator]
-
//! [contentItem]
contentItem: Text {
- leftPadding: control.checkable && !control.mirrored ? control.indicator.width + control.spacing : 0
- rightPadding: control.checkable && control.mirrored ? control.indicator.width + control.spacing : 0
+ leftPadding: !control.mirrored ? (control.indicator ? control.indicator.width : 0) + control.spacing : 0
+ rightPadding: control.mirrored ? (control.indicator ? control.indicator.width : 0) + control.spacing : 0
text: control.text
font: control.font
diff --git a/src/imports/controls/universal/MenuItem.qml b/src/imports/controls/universal/MenuItem.qml
index 128ef9da..22eaee61 100644
--- a/src/imports/controls/universal/MenuItem.qml
+++ b/src/imports/controls/universal/MenuItem.qml
@@ -56,8 +56,8 @@ T.MenuItem {
//! [contentItem]
contentItem: Text {
- leftPadding: control.checkable && !control.mirrored ? control.indicator.width + control.spacing : 0
- rightPadding: control.checkable && control.mirrored ? control.indicator.width + control.spacing : 0
+ leftPadding: !control.mirrored ? control.indicator.width + control.spacing : 0
+ rightPadding: control.mirrored ? control.indicator.width + control.spacing : 0
text: control.text
font: control.font
diff --git a/src/imports/controls/universal/SwipeDelegate.qml b/src/imports/controls/universal/SwipeDelegate.qml
index 7041e18e..aa1a68e9 100644
--- a/src/imports/controls/universal/SwipeDelegate.qml
+++ b/src/imports/controls/universal/SwipeDelegate.qml
@@ -55,20 +55,10 @@ T.SwipeDelegate {
rightPadding: 12
bottomPadding: 13
- //! [indicator]
- indicator: Image {
- x: text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
- y: control.topPadding + (control.availableHeight - height) / 2
-
- visible: control.checked
- source: !control.checkable ? "" : "image://universal/checkmark/" + (!control.enabled ? control.Universal.baseLowColor : control.pressed ? control.Universal.baseHighColor : control.Universal.baseMediumHighColor)
- }
- //! [indicator]
-
//! [contentItem]
contentItem: Text {
- leftPadding: control.checkable && !control.mirrored ? control.indicator.width + control.spacing : 0
- rightPadding: control.checkable && control.mirrored ? control.indicator.width + control.spacing : 0
+ leftPadding: !control.mirrored ? (control.indicator ? control.indicator.width : 0) + control.spacing : 0
+ rightPadding: control.mirrored ? (control.indicator ? control.indicator.width : 0) + control.spacing : 0
text: control.text
font: control.font