diff --git a/src/Mod/Fem/Gui/Command.cpp b/src/Mod/Fem/Gui/Command.cpp index eaa9acdc8..655879f22 100755 --- a/src/Mod/Fem/Gui/Command.cpp +++ b/src/Mod/Fem/Gui/Command.cpp @@ -182,7 +182,7 @@ CmdFemDefineNodesSet::CmdFemDefineNodesSet() sToolTipText = QT_TR_NOOP("Create node set by Poly"); sWhatsThis = "Create node set by Poly"; sStatusTip = QT_TR_NOOP("Create node set by Poly"); - sPixmap = "Fem_FemMesh"; + sPixmap = "Fem_FemMesh_createnodebypoly"; } void CmdFemDefineNodesSet::activated(int iMsg) @@ -239,7 +239,7 @@ CmdFemCreateNodesSet::CmdFemCreateNodesSet() sToolTipText = QT_TR_NOOP("Define/create a nodes set..."); sWhatsThis = sToolTipText; sStatusTip = sToolTipText; - sPixmap = "Fem_FemMesh"; + sPixmap = "Fem_FemMesh_createnodebypoly"; } diff --git a/src/Mod/Fem/Gui/Resources/Fem.qrc b/src/Mod/Fem/Gui/Resources/Fem.qrc index e5df1f6ce..e63839105 100755 --- a/src/Mod/Fem/Gui/Resources/Fem.qrc +++ b/src/Mod/Fem/Gui/Resources/Fem.qrc @@ -1,6 +1,7 @@ icons/Fem_FemMesh.svg + icons/Fem_FemMesh_createnodebypoly.svg translations/Fem_af.qm translations/Fem_de.qm translations/Fem_fi.qm diff --git a/src/Mod/Fem/Gui/Resources/icons/Fem_FemMesh_createnodebypoly.svg b/src/Mod/Fem/Gui/Resources/icons/Fem_FemMesh_createnodebypoly.svg new file mode 100644 index 000000000..f98813b0b --- /dev/null +++ b/src/Mod/Fem/Gui/Resources/icons/Fem_FemMesh_createnodebypoly.svg @@ -0,0 +1,274 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Mod/Fem/Gui/TaskCreateNodeSet.cpp b/src/Mod/Fem/Gui/TaskCreateNodeSet.cpp index 02b6d767a..d40dc45d2 100644 --- a/src/Mod/Fem/Gui/TaskCreateNodeSet.cpp +++ b/src/Mod/Fem/Gui/TaskCreateNodeSet.cpp @@ -55,7 +55,7 @@ using namespace FemGui; using namespace Gui; TaskCreateNodeSet::TaskCreateNodeSet(Fem::FemSetNodesObject *pcObject,QWidget *parent) - : TaskBox(Gui::BitmapFactory().pixmap("Fem_FemMesh"), + : TaskBox(Gui::BitmapFactory().pixmap("Fem_FemMesh_createnodebypoly"), tr("Nodes set"), true, parent), @@ -133,11 +133,11 @@ void TaskCreateNodeSet::DefineNodesCallback(void * ud, SoEventCallback * n) for (std::vector::const_iterator it = clPoly.begin(); it != clPoly.end(); ++it) polygon.Add(Base::Vector2D((*it)[0],(*it)[1])); - taskBox->DefineNodes(polygon,proj); + taskBox->DefineNodes(polygon,proj,clip_inner); } -void TaskCreateNodeSet::DefineNodes(const Base::Polygon2D &polygon,const Gui::ViewVolumeProjection &proj) +void TaskCreateNodeSet::DefineNodes(const Base::Polygon2D &polygon,const Gui::ViewVolumeProjection &proj,bool inner) { const SMESHDS_Mesh* data = const_cast(pcObject->FemMesh.getValue()->FemMesh.getValue().getSMesh())->GetMeshDS(); @@ -151,7 +151,7 @@ void TaskCreateNodeSet::DefineNodes(const Base::Polygon2D &polygon,const Gui::Vi const SMDS_MeshNode* aNode = aNodeIter->next(); Base::Vector3f vec(aNode->X(),aNode->Y(),aNode->Z()); pt2d = proj(vec); - if (polygon.Contains(Base::Vector2D(pt2d.x, pt2d.y)) == true) + if (polygon.Contains(Base::Vector2D(pt2d.x, pt2d.y)) == inner) tempSet.insert(aNode->GetID()); } diff --git a/src/Mod/Fem/Gui/TaskCreateNodeSet.h b/src/Mod/Fem/Gui/TaskCreateNodeSet.h index 6c8f8c4db..2745a6d5a 100644 --- a/src/Mod/Fem/Gui/TaskCreateNodeSet.h +++ b/src/Mod/Fem/Gui/TaskCreateNodeSet.h @@ -68,7 +68,7 @@ private Q_SLOTS: protected: Fem::FemSetNodesObject *pcObject; static void DefineNodesCallback(void * ud, SoEventCallback * n); - void DefineNodes(const Base::Polygon2D &polygon,const Gui::ViewVolumeProjection &proj); + void DefineNodes(const Base::Polygon2D &polygon,const Gui::ViewVolumeProjection &proj,bool); private: diff --git a/src/Mod/Fem/Gui/TaskDlgCreateNodeSet.cpp b/src/Mod/Fem/Gui/TaskDlgCreateNodeSet.cpp index f46e19a9b..8061c62c2 100644 --- a/src/Mod/Fem/Gui/TaskDlgCreateNodeSet.cpp +++ b/src/Mod/Fem/Gui/TaskDlgCreateNodeSet.cpp @@ -33,6 +33,7 @@ #include #include #include +#include #include "ViewProviderFemMesh.h" @@ -75,10 +76,13 @@ bool TaskDlgCreateNodeSet::accept() try { FemSetNodesObject->Nodes.setValues(param->tempSet); FemSetNodesObject->recompute(); - Gui::Document* doc = Gui::Application::Instance->activeDocument(); - if(doc) - doc->resetEdit(); + //Gui::Document* doc = Gui::Application::Instance->activeDocument(); + //if(doc) + // doc->resetEdit(); param->MeshViewProvider->resetHighlightNodes(); + FemSetNodesObject->Label.setValue(name->name); + Gui::Command::doCommand(Gui::Command::Gui,"Gui.activeDocument().resetEdit()"); + return true; } catch (const Base::Exception& e) { @@ -91,7 +95,13 @@ bool TaskDlgCreateNodeSet::accept() bool TaskDlgCreateNodeSet::reject() { FemSetNodesObject->execute(); + //Gui::Document* doc = Gui::Application::Instance->activeDocument(); + //if(doc) + // doc->resetEdit(); param->MeshViewProvider->resetHighlightNodes(); + Gui::Command::abortCommand(); + Gui::Command::doCommand(Gui::Command::Gui,"Gui.activeDocument().resetEdit()"); + return true; } diff --git a/src/Mod/Fem/Gui/TaskObjectName.cpp b/src/Mod/Fem/Gui/TaskObjectName.cpp index 3341535c6..5fe21c9aa 100644 --- a/src/Mod/Fem/Gui/TaskObjectName.cpp +++ b/src/Mod/Fem/Gui/TaskObjectName.cpp @@ -44,7 +44,7 @@ using namespace FemGui; using namespace Gui; TaskObjectName::TaskObjectName(App::DocumentObject *pcObject,QWidget *parent) - : TaskBox(Gui::BitmapFactory().pixmap("Fem_FemMesh"), + : TaskBox(Gui::BitmapFactory().pixmap("Fem_FemMesh_createnodebypoly"), tr("TaskObjectName"), true, parent), @@ -58,46 +58,22 @@ TaskObjectName::TaskObjectName(App::DocumentObject *pcObject,QWidget *parent) this->groupLayout()->addWidget(proxy); - //QObject::connect(ui->pushButton_HideShow,SIGNAL(clicked()),this,SLOT(hideShow())); - //QObject::connect(ui->doubleSpinBoxSizing,SIGNAL(valueChanged (double)),this,SLOT(sizingValueChanged(double))); - //QObject::connect(ui->checkBoxOrientation,SIGNAL(toggled (bool)),this,SLOT(orientationToggled(bool))); + QObject::connect(ui->lineEdit_ObjectName,SIGNAL(textChanged (const QString&)),this,SLOT(TextChanged(const QString&))); + + if(pcObject->Label.getValue() != "") + ui->lineEdit_ObjectName->setText(QString::fromUtf8(pcObject->Label.getValue())); + else + ui->lineEdit_ObjectName->setText(QString::fromAscii(pcObject->getNameInDocument())); } -//void TaskObjectName::setHideShowObject(void) -//{ -// HideShowObj = pcObject->Source.getValue(); -// -// if(HideShowObj){ -// QString ObjectName = QString::fromUtf8(HideShowObj->Label.getValue()); -// ui->lineEdit_ObjectName->setText(ObjectName); -// }else{ -// ui->lineEdit_ObjectName->setText(QString()); -// } -//} -// -//void TaskObjectName::hideShow(void) -//{ -// setHideShowObject(); -// -// if(HideShowObj){ -// Gui::Document* doc = Gui::Application::Instance->activeDocument(); -// if(doc->getViewProvider(HideShowObj)->isVisible()) -// doc->getViewProvider(HideShowObj)->setVisible(false); -// else -// doc->getViewProvider(HideShowObj)->setVisible(true); -// } -//} -// -//void TaskObjectName::sizingValueChanged(double Value) -//{ -// pcObject->SegValue.setValue(Value); -//} -// -//void TaskObjectName::orientationToggled(bool Value) -//{ -// pcObject->UseRotation.setValue(Value); -//} -// + + +void TaskObjectName::TextChanged ( const QString & text ) +{ + name =text.toUtf8(); + //pcObject->Label.setValue(text.toUtf8()); +} + TaskObjectName::~TaskObjectName() diff --git a/src/Mod/Fem/Gui/TaskObjectName.h b/src/Mod/Fem/Gui/TaskObjectName.h index cea4d8ff9..8cac43043 100644 --- a/src/Mod/Fem/Gui/TaskObjectName.h +++ b/src/Mod/Fem/Gui/TaskObjectName.h @@ -52,11 +52,11 @@ public: ~TaskObjectName(); -private Q_SLOTS: - //void hideShow(void); - //void sizingValueChanged(double Value); - //void orientationToggled(bool Value); + std::string name; +private Q_SLOTS: + void TextChanged ( const QString &); + protected: App::DocumentObject *pcObject; diff --git a/src/Mod/Fem/Gui/TaskObjectName.ui b/src/Mod/Fem/Gui/TaskObjectName.ui index bfc49aa2e..4313523a1 100644 --- a/src/Mod/Fem/Gui/TaskObjectName.ui +++ b/src/Mod/Fem/Gui/TaskObjectName.ui @@ -19,7 +19,7 @@ - true + false diff --git a/src/Mod/Fem/Gui/ViewProviderFemMesh.cpp b/src/Mod/Fem/Gui/ViewProviderFemMesh.cpp index 0a43aeeb8..8804c4bf4 100755 --- a/src/Mod/Fem/Gui/ViewProviderFemMesh.cpp +++ b/src/Mod/Fem/Gui/ViewProviderFemMesh.cpp @@ -248,6 +248,7 @@ void ViewProviderFemMesh::attach(App::DocumentObject *pcObj) SoPointSet * pointset = new SoPointSet; pcAnotRoot->addChild(pointset); + pcHighlight->addChild(pcFaces); // flat SoGroup* pcFlatRoot = new SoGroup(); @@ -256,7 +257,7 @@ void ViewProviderFemMesh::attach(App::DocumentObject *pcObj) pcFlatRoot->addChild(pShapeHints); pcFlatRoot->addChild(pcShapeMaterial); pcFlatRoot->addChild(pcMatBinding); - pcFlatRoot->addChild(pcFaces); + pcFlatRoot->addChild(pcHighlight); pcFlatRoot->addChild(pcAnotRoot); addDisplayMaskMode(pcFlatRoot, "Flat"); diff --git a/src/Mod/Fem/Gui/Workbench.cpp b/src/Mod/Fem/Gui/Workbench.cpp index c1214e9cd..e638ad806 100755 --- a/src/Mod/Fem/Gui/Workbench.cpp +++ b/src/Mod/Fem/Gui/Workbench.cpp @@ -56,8 +56,7 @@ Gui::ToolBarItem* Workbench::setupToolBars() const Gui::ToolBarItem* fem = new Gui::ToolBarItem(root); fem->setCommand("FEM"); *fem << "Fem_CreateFromShape" - << "Fem_CreateNodesSet" - << "Fem_DefineNodesSet"; + << "Fem_CreateNodesSet"; return root; } @@ -69,8 +68,7 @@ Gui::MenuItem* Workbench::setupMenuBar() const root->insertItem(item, fem); fem->setCommand("&FEM"); *fem << "Fem_CreateFromShape" - << "Fem_CreateNodesSet" - << "Fem_DefineNodesSet"; + << "Fem_CreateNodesSet"; return root; }