QProgressDialog: fix setBar() not properly adopting the new QProgressBar
The "adoption" code is taken from setLabel(). Task-number: QTBUG-40503 Change-Id: Id512b28eb756b4a80e5701e599e2cbdf5346ff62 Reviewed-by: David Faure <david.faure@kdab.com>
This commit is contained in:
parent
53b781cb12
commit
18bb58a5a6
@ -505,9 +505,17 @@ void QProgressDialog::setBar(QProgressBar *bar)
|
||||
}
|
||||
delete d->bar;
|
||||
d->bar = bar;
|
||||
if (bar) {
|
||||
if (bar->parentWidget() == this)
|
||||
bar->hide(); // until we resize
|
||||
else
|
||||
bar->setParent(this, 0);
|
||||
}
|
||||
int w = qMax(isVisible() ? width() : 0, sizeHint().width());
|
||||
int h = qMax(isVisible() ? height() : 0, sizeHint().height());
|
||||
resize(w, h);
|
||||
if (bar)
|
||||
bar->show();
|
||||
}
|
||||
|
||||
|
||||
|
@ -218,7 +218,6 @@ void tst_QProgressDialog::settingCustomWidgets()
|
||||
|
||||
QVERIFY(!dlg.isAncestorOf(bar));
|
||||
dlg.setBar(bar);
|
||||
QEXPECT_FAIL("", "QProgressBar doesn't adopt custom progress bar as children", Continue);
|
||||
QVERIFY(dlg.isAncestorOf(bar));
|
||||
QTest::ignoreMessage(QtWarningMsg, "QProgressDialog::setBar: Attempt to set the same progress bar again");
|
||||
dlg.setBar(bar); // setting the same widget again should not crash
|
||||
@ -227,13 +226,7 @@ void tst_QProgressDialog::settingCustomWidgets()
|
||||
|
||||
QVERIFY(!l);
|
||||
QVERIFY(!btn);
|
||||
#if 0
|
||||
QEXPECT_FAIL("", "QProgressBar doesn't clean up custom progress bars", Continue);
|
||||
QVERIFY(!bar);
|
||||
#else
|
||||
// make cleanup() pass
|
||||
delete bar;
|
||||
#endif
|
||||
}
|
||||
|
||||
class QTestTranslator : public QTranslator
|
||||
|
Loading…
x
Reference in New Issue
Block a user