From d1b6b7be7d5bc7754a143b424295a267bbdafdbd Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Sun, 22 Dec 2013 03:17:30 -0600 Subject: Repair performance regression accidentally introduced with new style API --- src/widgets/qprogressbar.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'src/widgets/qprogressbar.cpp') diff --git a/src/widgets/qprogressbar.cpp b/src/widgets/qprogressbar.cpp index d5011da..99dedb0 100644 --- a/src/widgets/qprogressbar.cpp +++ b/src/widgets/qprogressbar.cpp @@ -429,8 +429,10 @@ void QProgressBar::drawContents( QPainter *p ) QWMatrix oldMatrix = buffer.painter()->worldMatrix(); - QStyleControlElementData ceData = populateControlElementDataFromWidget(this, QStyleOption()); - QStyle::ControlElementFlags elementFlags = getControlElementFlagsForObject(this, ceData.widgetObjectTypes, QStyleOption()); + const QStyleControlElementData &ceData = populateControlElementDataFromWidget(this, QStyleOption()); + QStyle::ControlElementFlags elementFlags = getControlElementFlagsForObject(this, QStyleOption()); + + QRect ceDataRectOrig = ceData.rect; // Draw contents if (m_orientation == Qt::Vertical) { @@ -447,7 +449,7 @@ void QProgressBar::drawContents( QPainter *p ) buffer.painter()->setWorldMatrix(m, TRUE); - ceData.rect = QRect(ceData.rect.y(), ceData.rect.x(), ceData.rect.height(), ceData.rect.width()); + const_cast(ceData).rect = QRect(ceData.rect.y(), ceData.rect.x(), ceData.rect.height(), ceData.rect.width()); } style().drawControl(QStyle::CE_ProgressBarContents, buffer.painter(), ceData, elementFlags, @@ -461,6 +463,8 @@ void QProgressBar::drawContents( QPainter *p ) QStyle::visualRect(style().subRect(QStyle::SR_ProgressBarLabel, this), this ), colorGroup(), flags); } + + const_cast(ceData).rect = ceDataRectOrig; } #endif -- cgit v1.2.3