Mesh: replace stacked widget of meshing panel with tabbed widget
This commit is contained in:
@@ -25,7 +25,6 @@
|
||||
#ifndef _PreComp_
|
||||
# include <TopExp_Explorer.hxx>
|
||||
# include <QMessageBox>
|
||||
# include <QButtonGroup>
|
||||
#endif
|
||||
|
||||
#include "Tessellation.h"
|
||||
@@ -55,13 +54,6 @@ Tessellation::Tessellation(QWidget* parent)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
buttonGroup = new QButtonGroup(this);
|
||||
buttonGroup->addButton(ui->radioButtonStandard, 0);
|
||||
buttonGroup->addButton(ui->radioButtonMefisto, 1);
|
||||
buttonGroup->addButton(ui->radioButtonNetgen, 2);
|
||||
connect(buttonGroup, SIGNAL(buttonClicked(int)),
|
||||
this, SLOT(meshingMethod(int)));
|
||||
|
||||
ParameterGrp::handle handle = App::GetApplication().GetParameterGroupByPath
|
||||
("User parameter:BaseApp/Preferences/Mod/Mesh/Meshing/Standard");
|
||||
double value = ui->spinSurfaceDeviation->value().getValue();
|
||||
@@ -78,33 +70,23 @@ Tessellation::Tessellation(QWidget* parent)
|
||||
|
||||
ui->spinMaximumEdgeLength->setRange(0, INT_MAX);
|
||||
|
||||
// set the standard method
|
||||
ui->radioButtonStandard->setChecked(true);
|
||||
ui->comboFineness->setCurrentIndex(2);
|
||||
on_comboFineness_currentIndexChanged(2);
|
||||
|
||||
#if !defined (HAVE_MEFISTO)
|
||||
ui->radioButtonMefisto->setDisabled(true);
|
||||
#else
|
||||
ui->radioButtonMefisto->setChecked(true);
|
||||
ui->stackedWidget->setTabEnabled(Mefisto, false);
|
||||
#endif
|
||||
#if !defined (HAVE_NETGEN)
|
||||
ui->radioButtonNetgen->setDisabled(true);
|
||||
#else
|
||||
ui->radioButtonNetgen->setChecked(true);
|
||||
ui->stackedWidget->setTabEnabled(Netgen, false);
|
||||
#endif
|
||||
|
||||
Gui::Command::doCommand(Gui::Command::Doc, "import Mesh, Part, PartGui");
|
||||
try {
|
||||
Gui::Command::doCommand(Gui::Command::Doc, "import MeshPart");
|
||||
}
|
||||
catch(...) {
|
||||
ui->radioButtonNetgen->setDisabled(true);
|
||||
ui->radioButtonMefisto->setDisabled(true);
|
||||
ui->radioButtonStandard->setChecked(true);
|
||||
catch (...) {
|
||||
ui->stackedWidget->setDisabled(true);
|
||||
}
|
||||
|
||||
meshingMethod(buttonGroup->checkedId());
|
||||
}
|
||||
|
||||
Tessellation::~Tessellation()
|
||||
@@ -255,10 +237,10 @@ bool Tessellation::accept()
|
||||
QString objname, label, subname;
|
||||
Gui::WaitCursor wc;
|
||||
|
||||
int method = buttonGroup->checkedId();
|
||||
int method = ui->stackedWidget->currentIndex();
|
||||
|
||||
// Save parameters
|
||||
if (method == 0) {
|
||||
if (method == Standard) {
|
||||
ParameterGrp::handle handle = App::GetApplication().GetParameterGroupByPath
|
||||
("User parameter:BaseApp/Preferences/Mod/Mesh/Meshing/Standard");
|
||||
double value = ui->spinSurfaceDeviation->value().getValue();
|
||||
@@ -288,7 +270,7 @@ bool Tessellation::accept()
|
||||
Gui::Application::Instance->getViewProvider(sobj));
|
||||
|
||||
QString param;
|
||||
if (method == 0) { // Standard
|
||||
if (method == Standard) { // Standard
|
||||
double devFace = ui->spinSurfaceDeviation->value().getValue();
|
||||
double devAngle = ui->spinAngularDeviation->value().getValue();
|
||||
devAngle = Base::toRadians<double>(devAngle);
|
||||
@@ -319,13 +301,13 @@ bool Tessellation::accept()
|
||||
QString::fromLatin1(sobj->getNameInDocument()));
|
||||
}
|
||||
}
|
||||
else if (method == 1) { // Mefisto
|
||||
else if (method == Mefisto) { // Mefisto
|
||||
double maxEdge = ui->spinMaximumEdgeLength->value().getValue();
|
||||
if (!ui->spinMaximumEdgeLength->isEnabled())
|
||||
maxEdge = 0;
|
||||
param = QString::fromLatin1("Shape=__shape__,MaxLength=%1").arg(maxEdge);
|
||||
}
|
||||
else if (method == 2) { // Netgen
|
||||
else if (method == Netgen) { // Netgen
|
||||
int fineness = ui->comboFineness->currentIndex();
|
||||
double growthRate = ui->doubleGrading->value();
|
||||
double nbSegPerEdge = ui->spinEdgeElements->value();
|
||||
@@ -370,7 +352,7 @@ bool Tessellation::accept()
|
||||
Gui::Command::runCommand(Gui::Command::Doc, cmd.toUtf8());
|
||||
|
||||
// if Standard mesher is used and face colors should be applied
|
||||
if (method == 0) { // Standard
|
||||
if (method == Standard) { // Standard
|
||||
if (ui->meshShapeColors->isChecked()) {
|
||||
Gui::ViewProvider* vpm = Gui::Application::Instance->getViewProvider
|
||||
(activeDoc->getActiveObject());
|
||||
@@ -394,6 +376,7 @@ bool Tessellation::accept()
|
||||
activeDoc->commitTransaction();
|
||||
}
|
||||
catch (const Base::Exception& e) {
|
||||
activeDoc->abortTransaction();
|
||||
Base::Console().Error(e.what());
|
||||
}
|
||||
|
||||
|
||||
@@ -30,8 +30,6 @@
|
||||
#include <App/DocumentObserver.h>
|
||||
#include <memory>
|
||||
|
||||
class QButtonGroup;
|
||||
|
||||
namespace MeshPartGui {
|
||||
|
||||
class Ui_Tessellation;
|
||||
@@ -39,6 +37,12 @@ class Tessellation : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
enum {
|
||||
Standard,
|
||||
Mefisto,
|
||||
Netgen
|
||||
};
|
||||
|
||||
public:
|
||||
Tessellation(QWidget* parent = 0);
|
||||
~Tessellation();
|
||||
@@ -56,7 +60,6 @@ private Q_SLOTS:
|
||||
|
||||
private:
|
||||
QString document;
|
||||
QButtonGroup* buttonGroup;
|
||||
std::unique_ptr<Ui_Tessellation> ui;
|
||||
};
|
||||
|
||||
|
||||
@@ -20,42 +20,18 @@
|
||||
<string>Meshing options</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_6">
|
||||
<item row="0" column="0">
|
||||
<widget class="QRadioButton" name="radioButtonStandard">
|
||||
<property name="toolTip">
|
||||
<string>Use the standard mesher</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Standard</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QRadioButton" name="radioButtonMefisto">
|
||||
<property name="toolTip">
|
||||
<string>Use the Mefisto mesher</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Mefisto</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<widget class="QRadioButton" name="radioButtonNetgen">
|
||||
<property name="toolTip">
|
||||
<string>Use the Netgen mesher</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Netgen</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="3">
|
||||
<widget class="QStackedWidget" name="stackedWidget">
|
||||
<item row="0" column="0" colspan="3">
|
||||
<widget class="QTabWidget" name="stackedWidget">
|
||||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="pageStandard">
|
||||
<attribute name="title">
|
||||
<string>Standard</string>
|
||||
</attribute>
|
||||
<attribute name="toolTip">
|
||||
<string>Use the standard mesher</string>
|
||||
</attribute>
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<item row="0" column="0">
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
@@ -165,10 +141,12 @@ this feature (e.g. the format OBJ).</string>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="pageMefisto">
|
||||
<property name="toolTip">
|
||||
<string>If this number is smaller the mesh becomes finer.
|
||||
The smallest value is 0.</string>
|
||||
</property>
|
||||
<attribute name="title">
|
||||
<string>Mefisto</string>
|
||||
</attribute>
|
||||
<attribute name="toolTip">
|
||||
<string>Use the Mefisto mesher</string>
|
||||
</attribute>
|
||||
<layout class="QGridLayout" name="gridLayout_9">
|
||||
<item row="0" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
@@ -180,6 +158,10 @@ The smallest value is 0.</string>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>If this number is smaller the mesh becomes finer.
|
||||
The smallest value is 0.</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
@@ -220,6 +202,12 @@ The smallest value is 0.</string>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="pageNetgen">
|
||||
<attribute name="title">
|
||||
<string>Netgen</string>
|
||||
</attribute>
|
||||
<attribute name="toolTip">
|
||||
<string>Use the Netgen mesher</string>
|
||||
</attribute>
|
||||
<layout class="QGridLayout" name="gridLayout_5">
|
||||
<item row="0" column="0">
|
||||
<layout class="QGridLayout" name="gridLayout_4">
|
||||
|
||||
Reference in New Issue
Block a user