Mesh: embed Evaluation dialog into a scroll area

This commit is contained in:
wmayer
2021-10-24 21:36:44 +02:00
parent 9f2dd4a363
commit ca6d49d080
2 changed files with 16 additions and 2 deletions

View File

@@ -25,6 +25,7 @@
#ifndef _PreComp_
# include <QDockWidget>
# include <QMessageBox>
# include <QScrollArea>
#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();
}
/**

View File

@@ -34,6 +34,7 @@
#include <Mod/Mesh/App/Types.h>
class QAbstractButton;
class QScrollArea;
namespace Gui {
class View3DInventor;
@@ -159,6 +160,7 @@ public:
QSize sizeHint () const;
private:
QScrollArea* scrollArea;
static DockEvaluateMeshImp* _instance;
};