OSDN Git Service

QScrollAreaPrivate cleanup
authorIvailo Monev <xakepa10@laimg.moc>
Mon, 27 May 2019 22:44:47 +0000 (22:44 +0000)
committerIvailo Monev <xakepa10@laimg.moc>
Mon, 27 May 2019 22:44:47 +0000 (22:44 +0000)
Signed-off-by: Ivailo Monev <xakepa10@laimg.moc>
src/gui/widgets/qscrollarea.cpp
src/gui/widgets/qscrollarea_p.h

index e935af3..51d376d 100644 (file)
@@ -380,6 +380,9 @@ void QScrollArea::setWidgetResizable(bool resizable)
 {
     Q_D(QScrollArea);
     d->resizable = resizable;
+    if (d->widget && !d->widgetSize.isValid()) {
+        d->widgetSize = resizable ? d->widget->sizeHint() : d->widget->size();
+    }
     updateGeometry();
     d->updateScrollBars();
 }
@@ -394,8 +397,6 @@ QSize QScrollArea::sizeHint() const
     QSize sz(f, f);
     int h = fontMetrics().height();
     if (d->widget) {
-        if (!d->widgetSize.isValid())
-            d->widgetSize = d->resizable ? d->widget->sizeHint() : d->widget->size();
         sz += d->widgetSize;
     } else {
         sz += QSize(12 * h, 8 * h);
index e18cdcf..67f4acf 100644 (file)
@@ -69,7 +69,7 @@ public:
     void updateScrollBars();
     void updateWidgetPosition();
     QPointer<QWidget> widget;
-    mutable QSize widgetSize;
+    QSize widgetSize;
     bool resizable;
     Qt::Alignment alignment;
 };