diff --git a/src/Mod/Mesh/Gui/DlgEvaluateMeshImp.cpp b/src/Mod/Mesh/Gui/DlgEvaluateMeshImp.cpp index a14fc796e6fd..cdac9bd8e16e 100644 --- a/src/Mod/Mesh/Gui/DlgEvaluateMeshImp.cpp +++ b/src/Mod/Mesh/Gui/DlgEvaluateMeshImp.cpp @@ -25,6 +25,7 @@ #ifndef _PreComp_ # include # include +# include #endif #include "DlgEvaluateMeshImp.h" @@ -1273,11 +1274,18 @@ bool DockEvaluateMeshImp::hasInstance() DockEvaluateMeshImp::DockEvaluateMeshImp( QWidget* parent, Qt::WindowFlags fl ) : DlgEvaluateMeshImp( parent, fl ) { + scrollArea = new QScrollArea(); + scrollArea->setObjectName(QLatin1String("scrollArea")); + scrollArea->setFrameShape(QFrame::NoFrame); + scrollArea->setFrameShadow(QFrame::Plain); + scrollArea->setWidgetResizable(true); + scrollArea->setWidget(this); + // embed this dialog into a dockable widget container Gui::DockWindowManager* pDockMgr = Gui::DockWindowManager::instance(); // use Qt macro for preparing for translation stuff (but not translating yet) QDockWidget* dw = pDockMgr->addDockWindow("Evaluate & Repair Mesh", - this, Qt::RightDockWidgetArea); + scrollArea, Qt::RightDockWidgetArea); //dw->setAttribute(Qt::WA_DeleteOnClose); dw->setFeatures(QDockWidget::DockWidgetMovable|QDockWidget::DockWidgetFloatable); dw->show(); @@ -1298,7 +1306,11 @@ void DockEvaluateMeshImp::closeEvent(QCloseEvent*) { // closes the dock window Gui::DockWindowManager* pDockMgr = Gui::DockWindowManager::instance(); - pDockMgr->removeDockWindow(this); + pDockMgr->removeDockWindow(scrollArea); + + // make sure to also delete the scroll area + scrollArea->setWidget(nullptr); + scrollArea->deleteLater(); } /** diff --git a/src/Mod/Mesh/Gui/DlgEvaluateMeshImp.h b/src/Mod/Mesh/Gui/DlgEvaluateMeshImp.h index e663e795ae34..fffd94e34eb4 100644 --- a/src/Mod/Mesh/Gui/DlgEvaluateMeshImp.h +++ b/src/Mod/Mesh/Gui/DlgEvaluateMeshImp.h @@ -34,6 +34,7 @@ #include class QAbstractButton; +class QScrollArea; namespace Gui { class View3DInventor; @@ -159,6 +160,7 @@ class DockEvaluateMeshImp : public DlgEvaluateMeshImp QSize sizeHint () const; private: + QScrollArea* scrollArea; static DockEvaluateMeshImp* _instance; };