From b837ba0c616ee3e5fd737920e470e09b015d6f15 Mon Sep 17 00:00:00 2001 From: mwganson Date: Mon, 24 Jun 2019 20:42:13 -0500 Subject: [PATCH] TaskCheckGeometry settings panel with runBOPCheck option --- src/Mod/Part/Gui/TaskCheckGeometry.cpp | 30 ++++++++++++++++++++++++++ src/Mod/Part/Gui/TaskCheckGeometry.h | 8 +++++++ 2 files changed, 38 insertions(+) diff --git a/src/Mod/Part/Gui/TaskCheckGeometry.cpp b/src/Mod/Part/Gui/TaskCheckGeometry.cpp index 3310088f95..059b5b88a7 100644 --- a/src/Mod/Part/Gui/TaskCheckGeometry.cpp +++ b/src/Mod/Part/Gui/TaskCheckGeometry.cpp @@ -26,6 +26,7 @@ # include # include # include +# include # include # include # include @@ -930,12 +931,14 @@ TaskCheckGeometryDialog::TaskCheckGeometryDialog() : widget(0), contentLabel(0) { this->setButtonPosition(TaskDialog::South); widget = new TaskCheckGeometryResults(); + taskbox = new Gui::TaskView::TaskBox( Gui::BitmapFactory().pixmap("Part_CheckGeometry"), widget->windowTitle(), false, 0); taskbox->groupLayout()->addWidget(widget); Content.push_back(taskbox); + contentLabel = new QTextEdit(); contentLabel->setText(widget->getShapeContentString()); shapeContentBox = new Gui::TaskView::TaskBox(Gui::BitmapFactory().pixmap("Part_CheckGeometry"), @@ -943,6 +946,33 @@ TaskCheckGeometryDialog::TaskCheckGeometryDialog() : widget(0), contentLabel(0) shapeContentBox->groupLayout()->addWidget(contentLabel); shapeContentBox->hideGroupBox(); Content.push_back(shapeContentBox); + + ParameterGrp::handle group = App::GetApplication().GetUserParameter(). + GetGroup("BaseApp")->GetGroup("Preferences")->GetGroup("Mod")->GetGroup("Part")->GetGroup("CheckGeometry"); + + runBOPCheckBox = new QCheckBox(); + runBOPCheckBox->setText(tr("Run BOP check")); + runBOPCheckBox->setToolTip(tr("Extra boolean operations check that can sometimes \ +find errors that the regular geometry check misses,\n but which said errors do not always \ +mean the checked object is unusable.")); + runBOPCheckBox->setChecked(group->GetBool("RunBOPCheck")); + settingsBox = new Gui::TaskView::TaskBox(Gui::BitmapFactory().pixmap("Part_CheckGeometry"), + tr("Settings"), true, 0); + settingsBox->groupLayout()->addWidget(runBOPCheckBox); + settingsBox->hideGroupBox(); + Content.push_back(settingsBox); + connect(runBOPCheckBox, SIGNAL(toggled(bool)), + this, SLOT(on_runBOPCheckBox_toggled(bool))); + + +} + +void TaskCheckGeometryDialog::on_runBOPCheckBox_toggled(bool isOn) +{ + ParameterGrp::handle group = App::GetApplication().GetUserParameter(). + GetGroup("BaseApp")->GetGroup("Preferences")->GetGroup("Mod")->GetGroup("Part")->GetGroup("CheckGeometry"); + group->SetBool("RunBOPCheck", isOn); + } TaskCheckGeometryDialog::~TaskCheckGeometryDialog() diff --git a/src/Mod/Part/Gui/TaskCheckGeometry.h b/src/Mod/Part/Gui/TaskCheckGeometry.h index e7d7d31271..f3732b8e4a 100644 --- a/src/Mod/Part/Gui/TaskCheckGeometry.h +++ b/src/Mod/Part/Gui/TaskCheckGeometry.h @@ -36,6 +36,7 @@ class SoSeparator; class SoSwitch; +class QCheckBox; class QTextEdit; namespace PartGui { @@ -105,6 +106,7 @@ public: private Q_SLOTS: void currentRowChanged (const QModelIndex ¤t, const QModelIndex &previous); + private: void setupInterface(); void goCheck(); @@ -125,6 +127,7 @@ private: SoSeparator *currentSeparator; std::vector functionMap; std::string shapeContentString; + }; class TaskCheckGeometryDialog : public Gui::TaskView::TaskDialog @@ -140,11 +143,16 @@ public: {return false;} virtual bool needsFullSpace() const {return true;} +private Q_SLOTS: + void on_runBOPCheckBox_toggled(bool isOn); + private: TaskCheckGeometryResults* widget; Gui::TaskView::TaskBox* taskbox; Gui::TaskView::TaskBox* shapeContentBox; + Gui::TaskView::TaskBox* settingsBox; QTextEdit *contentLabel; + QCheckBox *runBOPCheckBox; }; class BOPProgressIndicator : public Message_ProgressIndicator