aboutsummaryrefslogtreecommitdiffstats
path: root/src/quickcontrols2
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2017-11-14 14:40:29 +0100
committerJ-P Nurmi <jpnurmi@qt.io>2017-11-15 19:52:56 +0000
commit44b191636795a1f4baa984f49cd8330d2cd74585 (patch)
tree71edffec69600816af05599a873bf1d7d88c9649 /src/quickcontrols2
parent25536bd4365593035b30b08493ce12ea716d5302 (diff)
QQuickIconLabel: fix alignment
QQuickIconLabel is a wrapper around QQuickText & QQuickImage. While the alignment is mostly handled by layouting the internal QQuickText and QQuickImage instances, it must also propagate the alignment so that the text and image elements themselves also apply the correct content alignment. Task-number: QTBUG-64492 Change-Id: Ieb9d26fce703247bc6e2e61fa38e44c29937d1ad Reviewed-by: Liang Qi <liang.qi@qt.io>
Diffstat (limited to 'src/quickcontrols2')
-rw-r--r--src/quickcontrols2/qquickiconlabel.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/quickcontrols2/qquickiconlabel.cpp b/src/quickcontrols2/qquickiconlabel.cpp
index 266d30d7..960d9905 100644
--- a/src/quickcontrols2/qquickiconlabel.cpp
+++ b/src/quickcontrols2/qquickiconlabel.cpp
@@ -128,6 +128,10 @@ void QQuickIconLabelPrivate::syncImage()
image->setSource(icon.source());
image->setSourceSize(QSize(icon.width(), icon.height()));
image->setColor(icon.color());
+ const int valign = alignment & Qt::AlignVertical_Mask;
+ image->setVerticalAlignment(static_cast<QQuickImage::VAlignment>(valign));
+ const int halign = alignment & Qt::AlignHorizontal_Mask;
+ image->setHorizontalAlignment(static_cast<QQuickImage::HAlignment>(halign));
}
void QQuickIconLabelPrivate::updateOrSyncImage()
@@ -155,6 +159,10 @@ bool QQuickIconLabelPrivate::createLabel()
label->setFont(font);
label->setColor(color);
label->setElideMode(QQuickText::ElideRight);
+ const int valign = alignment & Qt::AlignVertical_Mask;
+ label->setVAlign(static_cast<QQuickText::VAlignment>(valign));
+ const int halign = alignment & Qt::AlignHorizontal_Mask;
+ label->setHAlign(static_cast<QQuickText::HAlignment>(halign));
label->setText(text);
if (componentComplete)
completeComponent(label);
@@ -523,6 +531,14 @@ void QQuickIconLabel::setAlignment(Qt::Alignment alignment)
return;
d->alignment = static_cast<Qt::Alignment>(align);
+ if (d->label) {
+ d->label->setVAlign(static_cast<QQuickText::VAlignment>(valign));
+ d->label->setHAlign(static_cast<QQuickText::HAlignment>(halign));
+ }
+ if (d->image) {
+ d->image->setVerticalAlignment(static_cast<QQuickImage::VAlignment>(valign));
+ d->image->setHorizontalAlignment(static_cast<QQuickImage::HAlignment>(halign));
+ }
d->layout();
}