Remove DockWidget::setWidget(QWidget)

This commit is contained in:
Sergio Martins
2022-05-14 09:38:55 +01:00
parent df61c35314
commit f719697852
17 changed files with 164 additions and 118 deletions

View File

@@ -57,11 +57,19 @@ DockWidget_qtwidgets::~DockWidget_qtwidgets()
void DockWidget_qtwidgets::init()
{
connect(d->m_controller, &Controllers::DockWidget::widgetChanged, this, [this](QWidget *w) {
d->layout->addWidget(w);
connect(d->m_controller, &Controllers::DockWidget::guestViewChanged, this, [this] {
if (auto guest = dockWidget()->guestView()) {
d->layout->addWidget(static_cast<QWidget *>(guest->asQObject()));
}
});
}
void DockWidget_qtwidgets::setWidget(QWidget *widget)
{
auto wrapper = widget ? new ViewWrapper_qtwidgets(widget) : nullptr;
d->m_controller->setGuestView(std::shared_ptr<ViewWrapper>(wrapper));
}
Controllers::DockWidget *DockWidget_qtwidgets::dockWidget() const
{
return d->m_controller;
@@ -90,3 +98,12 @@ void DockWidget_qtwidgets::resizeEvent(QResizeEvent *e)
d->m_controller->onResize(e->size());
return QWidget::resizeEvent(e);
}
KDDockWidgets::Views::DockWidget_qtwidgets *
KDDockWidgets::createDockWidget_qtwidgets(const QString &uniqueName,
Controllers::DockWidget::Options options,
Controllers::DockWidget::LayoutSaverOptions layoutSaverOptions)
{
auto dw = new Controllers::DockWidget(uniqueName, options, layoutSaverOptions);
return static_cast<KDDockWidgets::Views::DockWidget_qtwidgets *>(dw->view());
}