// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
-// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
//
//
#include "SUIT_OverrideCursor.h"
#include "SUIT_Desktop.h"
#include "SUIT_MessageBox.h"
+#include "SUIT_Session.h"
+
+#include "LightApp_Application.h"
#include "SVTK_ViewModel.h"
#include "SVTK_ViewWindow.h"
// IDL Headers
#include "SALOMEconfig.h"
#include CORBA_SERVER_HEADER(SMESH_Group)
+#include CORBA_SERVER_HEADER(SMESH_MeshEditor)
using namespace std;
SelectBasePointButton->setPixmap(selectImage);
XLab = new QLabel(tr("SMESH_X"), BasePointGrp);
+ XLab->setAlignment( Qt::AlignRight | Qt::AlignVCenter | Qt::ExpandTabs );
XSpin = new SMESHGUI_SpinBox(BasePointGrp);
YLab = new QLabel(tr("SMESH_Y"), BasePointGrp);
+ YLab->setAlignment( Qt::AlignRight | Qt::AlignVCenter | Qt::ExpandTabs );
YSpin = new SMESHGUI_SpinBox(BasePointGrp);
ZLab = new QLabel(tr("SMESH_Z"), BasePointGrp);
+ ZLab->setAlignment( Qt::AlignRight | Qt::AlignVCenter | Qt::ExpandTabs );
ZSpin = new SMESHGUI_SpinBox(BasePointGrp);
// layouting
AnglesGrpLayout->addWidget( AngleSpin, 0, 2 );
AnglesGrpLayout->setRowStretch(1, 10);
+ // CheckBox for groups generation
+ MakeGroupsCheck = new QCheckBox(tr("SMESH_MAKE_GROUPS"), GroupArguments);
+ MakeGroupsCheck->setChecked(true);
+
// layouting
GroupArgumentsLayout->addWidget( ElementsLab, 0, 0 );
GroupArgumentsLayout->addWidget( SelectElementsButton, 0, 1 );
GroupArgumentsLayout->addMultiCellWidget(BasePointGrp, 3, 4, 1, 2);
GroupArgumentsLayout->addWidget( AnglesCheck, 5, 0 );
GroupArgumentsLayout->addMultiCellWidget(AnglesGrp, 5, 6, 1, 2);
+ GroupArgumentsLayout->addMultiCellWidget(MakeGroupsCheck, 7, 7, 0, 2);
GroupArgumentsLayout->setRowStretch(6, 10);
/***************************************************************/
CloseButton = new QPushButton(tr("SMESH_BUT_CLOSE"), GroupButtons);
CloseButton->setAutoDefault(true);
+ HelpButton = new QPushButton(tr("SMESH_BUT_HELP"), GroupButtons);
+ HelpButton->setAutoDefault(true);
+
// layouting
GroupButtonsLayout->addWidget(OkButton, 0, 0);
GroupButtonsLayout->addWidget(ApplyButton, 0, 1);
GroupButtonsLayout->addWidget(CloseButton, 0, 3);
+ GroupButtonsLayout->addWidget(HelpButton, 0, 4);
GroupButtonsLayout->addColSpacing(2, 10);
GroupButtonsLayout->setColStretch(2, 10);
/***************************************************************/
// Initialisations
- XSpin->RangeStepAndValidator(-999999.999, +999999.999, 10.0, 3);
- YSpin->RangeStepAndValidator(-999999.999, +999999.999, 10.0, 3);
- ZSpin->RangeStepAndValidator(-999999.999, +999999.999, 10.0, 3);
- AngleSpin->RangeStepAndValidator(-999999.999, +999999.999, 5.0, 3);
+ XSpin->RangeStepAndValidator(COORD_MIN, COORD_MAX, 10.0, 3);
+ YSpin->RangeStepAndValidator(COORD_MIN, COORD_MAX, 10.0, 3);
+ ZSpin->RangeStepAndValidator(COORD_MIN, COORD_MAX, 10.0, 3);
+ AngleSpin->RangeStepAndValidator(-180.0, 180.0, 5.0, 3);
mySelector = (SMESH::GetViewWindow( mySMESHGUI ))->GetSelector();
myElementsFilter = new SMESH_LogicalFilter (aListOfFilters, SMESH_LogicalFilter::LO_OR);
myPathMeshFilter = new SMESH_TypeFilter (MESH);
+ myHelpFileName = "extrusion_along_path_page.html";
+
Init();
/***************************************************************/
connect(OkButton, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(CloseButton, SIGNAL(clicked()), this, SLOT(reject()));
connect(ApplyButton, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
+ connect(HelpButton, SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
connect(AddAngleButton, SIGNAL(clicked()), this, SLOT(OnAngleAdded()));
connect(RemoveAngleButton, SIGNAL(clicked()), this, SLOT(OnAngleRemoved()));
ZSpin->editor()->installEventFilter(this);
/***************************************************************/
- // set position and show dialog box
- int x, y;
- mySMESHGUI->DefineDlgPosition(this, x, y);
- this->move(x, y);
+
this->show(); // displays Dialog
}
try {
SUIT_OverrideCursor wc;
SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor();
- SMESH::SMESH_MeshEditor::Extrusion_Error retVal =
- aMeshEditor->ExtrusionAlongPath(anElementsId.inout(), myPathMesh, myPathShape, aNodeStart,
- AnglesCheck->isChecked(), anAngles.inout(),
- BasePointCheck->isChecked(), aBasePoint);
+ SMESH::SMESH_MeshEditor::Extrusion_Error retVal;
+ if ( MakeGroupsCheck->isEnabled() && MakeGroupsCheck->isChecked() )
+ SMESH::ListOfGroups_var groups =
+ aMeshEditor->ExtrusionAlongPathMakeGroups(anElementsId.inout(), myPathMesh,
+ myPathShape, aNodeStart,
+ AnglesCheck->isChecked(), anAngles.inout(),
+ BasePointCheck->isChecked(), aBasePoint, retVal);
+ else
+ retVal = aMeshEditor->ExtrusionAlongPath(anElementsId.inout(), myPathMesh,
+ myPathShape, aNodeStart,
+ AnglesCheck->isChecked(), anAngles.inout(),
+ BasePointCheck->isChecked(), aBasePoint);
//wc.stop();
wc.suspend();
//mySelectionMgr->clearSelected();
SMESH::Update( myMeshActor->getIO(), myMeshActor->GetVisibility() );
+ if ( MakeGroupsCheck->isEnabled() && MakeGroupsCheck->isChecked() )
+ mySMESHGUI->updateObjBrowser(true); // new groups may appear
//SMESH::UpdateView();
Init(false);
ConstructorsClicked(GetConstructorId());
reject();
}
+//=================================================================================
+// function : ClickOnHelp()
+// purpose :
+//=================================================================================
+void SMESHGUI_ExtrusionAlongPathDlg::ClickOnHelp()
+{
+ LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+ if (app)
+ app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+ else {
+ QString platform;
+#ifdef WIN32
+ platform = "winapplication";
+#else
+ platform = "application";
+#endif
+ SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+ QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+ arg(app->resourceMgr()->stringValue("ExternalBrowser", platform)).arg(myHelpFileName),
+ QObject::tr("BUT_OK"));
+ }
+}
+
//=================================================================================
// function : reject()
// purpose : Called when dialog box is closed
myMesh = SMESH::GetMeshByIO(IO);
if (myMesh->_is_nil())
return;
+
+ // MakeGroups is available if there are groups
+ if ( myMesh->NbGroups() == 0 ) {
+ MakeGroupsCheck->setChecked(false);
+ MakeGroupsCheck->setEnabled(false);
+ } else {
+ MakeGroupsCheck->setEnabled(true);
+ }
// find actor
myMeshActor = SMESH::FindActorByObject(myMesh);
if (!myMeshActor)
// try to get selected elements IDs
QString aString;
//int aNbUnits = SMESH::GetNameOfSelectedElements(mySelectionMgr, aString);
- SMESH::GetNameOfSelectedElements(mySelector, myMeshActor->getIO(), aString);
+ SMESH::GetNameOfSelectedElements(mySelector, IO, aString);
ElementsLineEdit->setText(aString);
}
} else if (myEditCurrentArgument == PathMeshLineEdit) {
}
return QDialog::eventFilter(object, event);
}
+
+//=================================================================================
+// function : keyPressEvent()
+// purpose :
+//=================================================================================
+void SMESHGUI_ExtrusionAlongPathDlg::keyPressEvent( QKeyEvent* e )
+{
+ QDialog::keyPressEvent( e );
+ if ( e->isAccepted() )
+ return;
+
+ if ( e->key() == Key_F1 )
+ {
+ e->accept();
+ ClickOnHelp();
+ }
+}