diff options
author | J-P Nurmi <jpnurmi@theqtcompany.com> | 2016-03-20 08:08:40 +0100 |
---|---|---|
committer | J-P Nurmi <jpnurmi@theqtcompany.com> | 2016-03-21 20:00:29 +0000 |
commit | 09e0e044c379a78f539400e7a4a1bbb109148639 (patch) | |
tree | 82e36a39a312b007f2a83402983a8fe6ec3d19e5 /src/imports/controls | |
parent | 618f34889be51f531b6226e6362f40604967b486 (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.qml | 16 | ||||
-rw-r--r-- | src/imports/controls/doc/images/qtquickcontrols-progressbar-contentItem.png (renamed from src/imports/controls/doc/images/qtquickcontrols-progressbar-indicator.png) | bin | 133 -> 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.qdoc | 8 | ||||
-rw-r--r-- | src/imports/controls/material/ProgressBar.qml | 15 | ||||
-rw-r--r-- | src/imports/controls/material/qquickmaterialprogressstrip.cpp | 10 | ||||
-rw-r--r-- | src/imports/controls/plugins.qmltypes | 1 | ||||
-rw-r--r-- | src/imports/controls/qquickprogressstrip.cpp | 7 | ||||
-rw-r--r-- | src/imports/controls/universal/ProgressBar.qml | 15 | ||||
-rw-r--r-- | src/imports/controls/universal/qquickuniversalprogressstrip.cpp | 2 |
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 Binary files differindex 9ce19e92..9ce19e92 100644 --- a/src/imports/controls/doc/images/qtquickcontrols-progressbar-indicator.png +++ b/src/imports/controls/doc/images/qtquickcontrols-progressbar-contentItem.png 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()); |