Allow DockWidget::setWidget() to be called multiple times

Fixes #66
This commit is contained in:
Sergio Martins
2020-08-30 14:42:22 +01:00
parent e017438605
commit ae000e75bc
3 changed files with 30 additions and 3 deletions

View File

@@ -212,11 +212,20 @@ void DockWidgetBase::addDockWidgetToContainingWindow(DockWidgetBase *other, Loca
void DockWidgetBase::setWidget(QWidgetOrQuick *w)
{
Q_ASSERT(w && !d->widget);
Q_ASSERT(w);
qCDebug(addwidget) << Q_FUNC_INFO << w;
if (w == d->widget)
return;
if (d->widget) {
// Unparent the old widget, we're giving back ownership
d->widget->setParent(nullptr);
}
d->widget = w;
setSizePolicy(w->sizePolicy());
if (w)
setSizePolicy(w->sizePolicy());
Q_EMIT widgetChanged(w);
setWindowTitle(uniqueName());
}