aboutsummaryrefslogtreecommitdiffstats
path: root/src/imports/controls
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@theqtcompany.com>2016-03-20 08:08:40 +0100
committerJ-P Nurmi <jpnurmi@theqtcompany.com>2016-03-21 20:00:29 +0000
commit09e0e044c379a78f539400e7a4a1bbb109148639 (patch)
tree82e36a39a312b007f2a83402983a8fe6ec3d19e5 /src/imports/controls
parent618f34889be51f531b6226e6362f40604967b486 (diff)
ProgressBar: use contentItem instead of indicator
Change-Id: I8bd21b32b6f3d333c119d77b629b46fe411c06eb Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
Diffstat (limited to 'src/imports/controls')
-rw-r--r--src/imports/controls/ProgressBar.qml16
-rw-r--r--src/imports/controls/doc/images/qtquickcontrols-progressbar-contentItem.png (renamed from src/imports/controls/doc/images/qtquickcontrols-progressbar-indicator.png)bin133 -> 133 bytes
-rw-r--r--src/imports/controls/doc/snippets/qtquickcontrols-progressbar-contentItem.qml (renamed from src/imports/controls/doc/snippets/qtquickcontrols-progressbar-indicator.qml)5
-rw-r--r--src/imports/controls/doc/src/qtlabscontrols-customize.qdoc8
-rw-r--r--src/imports/controls/material/ProgressBar.qml15
-rw-r--r--src/imports/controls/material/qquickmaterialprogressstrip.cpp10
-rw-r--r--src/imports/controls/plugins.qmltypes1
-rw-r--r--src/imports/controls/qquickprogressstrip.cpp7
-rw-r--r--src/imports/controls/universal/ProgressBar.qml15
-rw-r--r--src/imports/controls/universal/qquickuniversalprogressstrip.cpp2
10 files changed, 37 insertions, 42 deletions
diff --git a/src/imports/controls/ProgressBar.qml b/src/imports/controls/ProgressBar.qml
index 795fd231..0439cbb9 100644
--- a/src/imports/controls/ProgressBar.qml
+++ b/src/imports/controls/ProgressBar.qml
@@ -42,17 +42,15 @@ T.ProgressBar {
id: control
implicitWidth: Math.max(background ? background.implicitWidth : 0,
- indicator ? indicator.implicitWidth : 0) + leftPadding + rightPadding
+ contentItem.implicitWidth + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0,
- indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding
+ contentItem.implicitHeight + topPadding + bottomPadding)
- //! [indicator]
- indicator: ProgressStrip {
+ //! [contentItem]
+ contentItem: ProgressStrip {
id: strip
- x: control.leftPadding
- y: control.topPadding + (control.availableHeight - height) / 2
- width: control.availableWidth
- height: 6
+ implicitHeight: 6
+ implicitWidth: 116
scale: control.mirrored ? -1 : 1
progress: control.position
indeterminate: control.indeterminate
@@ -62,7 +60,7 @@ T.ProgressBar {
running: control.visible && control.indeterminate
}
}
- //! [indicator]
+ //! [contentItem]
//! [background]
background: Rectangle {
diff --git a/src/imports/controls/doc/images/qtquickcontrols-progressbar-indicator.png b/src/imports/controls/doc/images/qtquickcontrols-progressbar-contentItem.png
index 9ce19e92..9ce19e92 100644
--- a/src/imports/controls/doc/images/qtquickcontrols-progressbar-indicator.png
+++ b/src/imports/controls/doc/images/qtquickcontrols-progressbar-contentItem.png
Binary files differ
diff --git a/src/imports/controls/doc/snippets/qtquickcontrols-progressbar-indicator.qml b/src/imports/controls/doc/snippets/qtquickcontrols-progressbar-contentItem.qml
index 28eb99bf..0bb1b418 100644
--- a/src/imports/controls/doc/snippets/qtquickcontrols-progressbar-indicator.qml
+++ b/src/imports/controls/doc/snippets/qtquickcontrols-progressbar-contentItem.qml
@@ -31,9 +31,8 @@ import Qt.labs.controls 1.0
ProgressBar {
value: 0.5
Rectangle {
- parent: indicator
- width: indicator.childrenRect.width
- height: indicator.height
+ parent: contentItem
+ anchors.fill: parent
color: "transparent"
border.color: "red"
}
diff --git a/src/imports/controls/doc/src/qtlabscontrols-customize.qdoc b/src/imports/controls/doc/src/qtlabscontrols-customize.qdoc
index df1ba5d0..921794a5 100644
--- a/src/imports/controls/doc/src/qtlabscontrols-customize.qdoc
+++ b/src/imports/controls/doc/src/qtlabscontrols-customize.qdoc
@@ -280,7 +280,7 @@
\section1 Customizing ProgressBar
ProgressBar consists of two visual items: \l {Control::background}{background}
- and \l {ProgressBar::indicator}{indicator}.
+ and \l {Control::contentItem}{content item}.
\section3 Background
@@ -288,11 +288,11 @@
\snippet ProgressBar.qml background
- \section3 Indicator
+ \section3 Content item
- \image qtquickcontrols-progressbar-indicator.png
+ \image qtquickcontrols-progressbar-contentItem.png
- \snippet ProgressBar.qml indicator
+ \snippet ProgressBar.qml contentItem
\section1 Customizing RadioButton
diff --git a/src/imports/controls/material/ProgressBar.qml b/src/imports/controls/material/ProgressBar.qml
index 52df1660..2493da15 100644
--- a/src/imports/controls/material/ProgressBar.qml
+++ b/src/imports/controls/material/ProgressBar.qml
@@ -43,17 +43,14 @@ T.ProgressBar {
id: control
implicitWidth: Math.max(background ? background.implicitWidth : 0,
- indicator ? indicator.implicitWidth : 0) + leftPadding + rightPadding
+ contentItem.implicitWidth + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0,
- indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding
+ contentItem.implicitHeight + topPadding + bottomPadding)
- //! [indicator]
- indicator: ProgressStrip {
+ //! [contentItem]
+ contentItem: ProgressStrip {
id: strip
- x: control.leftPadding
- y: control.topPadding + (control.availableHeight - height) / 2
- width: control.availableWidth
- height: 4
+ implicitHeight: 4
scale: control.mirrored ? -1 : 1
indeterminate: control.indeterminate
@@ -65,7 +62,7 @@ T.ProgressBar {
running: control.visible && control.indeterminate
}
}
- //! [indicator]
+ //! [contentItem]
//! [background]
background: Rectangle {
diff --git a/src/imports/controls/material/qquickmaterialprogressstrip.cpp b/src/imports/controls/material/qquickmaterialprogressstrip.cpp
index 34590340..1d3ffc20 100644
--- a/src/imports/controls/material/qquickmaterialprogressstrip.cpp
+++ b/src/imports/controls/material/qquickmaterialprogressstrip.cpp
@@ -207,9 +207,13 @@ QSGNode *QQuickMaterialProgressStrip::updatePaintNode(QSGNode *oldNode, UpdatePa
{
QQuickItemPrivate *d = QQuickItemPrivate::get(this);
+ QRectF bounds = boundingRect();
+ bounds.setHeight(implicitHeight());
+ bounds.moveTop((height() - bounds.height()) / 2.0);
+
if (!oldNode)
- oldNode = new QSGSimpleRectNode(boundingRect(), Qt::transparent);
- static_cast<QSGSimpleRectNode *>(oldNode)->setRect(boundingRect());
+ oldNode = new QSGSimpleRectNode(bounds, Qt::transparent);
+ static_cast<QSGSimpleRectNode *>(oldNode)->setRect(bounds);
const int count = m_indeterminate ? 2 : 1;
const qreal w = m_indeterminate ? 0 : m_progress * width();
@@ -230,7 +234,7 @@ QSGNode *QQuickMaterialProgressStrip::updatePaintNode(QSGNode *oldNode, UpdatePa
QSGRectangleNode *rectNode = static_cast<QSGRectangleNode *>(transformNode->firstChild());
Q_ASSERT(rectNode->type() == QSGNode::GeometryNodeType);
- rectNode->setRect(QRectF(0, 0, w, height()));
+ rectNode->setRect(QRectF(0, bounds.y(), w, bounds.height()));
rectNode->setColor(m_color);
rectNode->update();
diff --git a/src/imports/controls/plugins.qmltypes b/src/imports/controls/plugins.qmltypes
index 27d06b40..3df8d825 100644
--- a/src/imports/controls/plugins.qmltypes
+++ b/src/imports/controls/plugins.qmltypes
@@ -442,7 +442,6 @@ Module {
Property { name: "position"; type: "double"; isReadonly: true }
Property { name: "visualPosition"; type: "double"; isReadonly: true }
Property { name: "indeterminate"; type: "bool" }
- Property { name: "indicator"; type: "QQuickItem"; isPointer: true }
}
Component {
name: "QQuickRadioButton"
diff --git a/src/imports/controls/qquickprogressstrip.cpp b/src/imports/controls/qquickprogressstrip.cpp
index 0fc72087..fc3596db 100644
--- a/src/imports/controls/qquickprogressstrip.cpp
+++ b/src/imports/controls/qquickprogressstrip.cpp
@@ -63,8 +63,6 @@ QQuickProgressStrip::QQuickProgressStrip(QQuickItem *parent) :
m_indeterminate(false)
{
setFlag(QQuickItem::ItemHasContents);
- setImplicitWidth(116);
- setImplicitHeight(6);
}
QQuickProgressStrip::~QQuickProgressStrip()
@@ -142,6 +140,7 @@ QSGNode *QQuickProgressStrip::updatePaintNode(QSGNode *oldNode, QQuickItem::Upda
}
Q_ASSERT(rootTransformNode->type() == QSGNode::TransformNodeType);
+ const qreal y = (height() - implicitHeight()) / 2;
const QColor color(0x35, 0x36, 0x37);
if (m_indeterminate) {
if (rootTransformNode->childCount() != blocks) {
@@ -167,7 +166,7 @@ QSGNode *QQuickProgressStrip::updatePaintNode(QSGNode *oldNode, QQuickItem::Upda
m.translate(blockStartX(i), 0);
transformNode->setMatrix(m);
- rectNode->setRect(QRectF(QPointF(), QSizeF(blockWidth, height())));
+ rectNode->setRect(QRectF(QPointF(0, y), QSizeF(blockWidth, implicitHeight())));
rectNode->update();
transformNode = static_cast<QSGTransformNode *>(transformNode->nextSibling());
@@ -185,7 +184,7 @@ QSGNode *QQuickProgressStrip::updatePaintNode(QSGNode *oldNode, QQuickItem::Upda
rootTransformNode->appendChildNode(rectNode);
}
- rectNode->setRect(QRectF(QPointF(), QSizeF(m_progress * width(), height())));
+ rectNode->setRect(QRectF(QPointF(0, y), QSizeF(m_progress * width(), implicitHeight())));
rectNode->update();
}
diff --git a/src/imports/controls/universal/ProgressBar.qml b/src/imports/controls/universal/ProgressBar.qml
index 308b83f7..360b7896 100644
--- a/src/imports/controls/universal/ProgressBar.qml
+++ b/src/imports/controls/universal/ProgressBar.qml
@@ -43,17 +43,14 @@ T.ProgressBar {
id: control
implicitWidth: Math.max(background ? background.implicitWidth : 0,
- indicator ? indicator.implicitWidth : 0) + leftPadding + rightPadding
+ contentItem.implicitWidth + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0,
- indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding
+ contentItem.implicitHeight + topPadding + bottomPadding)
- //! [indicator]
- indicator: ProgressStrip {
+ //! [contentItem]
+ contentItem: ProgressStrip {
id: strip
- x: control.leftPadding
- y: control.topPadding + (control.availableHeight - height) / 2
- width: control.availableWidth
- height: 10
+ implicitHeight: 10
scale: control.mirrored ? -1 : 1
indeterminate: control.indeterminate
@@ -66,7 +63,7 @@ T.ProgressBar {
running: control.visible && control.indeterminate
}
}
- //! [indicator]
+ //! [contentItem]
//! [background]
background: Rectangle {
diff --git a/src/imports/controls/universal/qquickuniversalprogressstrip.cpp b/src/imports/controls/universal/qquickuniversalprogressstrip.cpp
index 750970da..f23e91da 100644
--- a/src/imports/controls/universal/qquickuniversalprogressstrip.cpp
+++ b/src/imports/controls/universal/qquickuniversalprogressstrip.cpp
@@ -281,6 +281,8 @@ QSGNode *QQuickUniversalProgressStrip::updatePaintNode(QSGNode *oldNode, UpdateP
QQuickItemPrivate *d = QQuickItemPrivate::get(this);
QRectF bounds = boundingRect();
+ bounds.setHeight(implicitHeight());
+ bounds.moveTop((height() - bounds.height()) / 2.0);
if (!m_indeterminate)
bounds.setWidth(m_progress * bounds.width());