X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FStdMeshersGUI%2FStdMeshersGUI_QuadrangleParamWdg.cxx;h=90d92443b689618a6d6648072158c01f1b9c6eb4;hb=665d037f93371114bf4b00bf11b0f95be418fb77;hp=1cec406e2f3564e4103afc3d4b1cf346042f37d9;hpb=8d297d6698f361d4f2dde723050bcfbaea050920;p=modules%2Fsmesh.git diff --git a/src/StdMeshersGUI/StdMeshersGUI_QuadrangleParamWdg.cxx b/src/StdMeshersGUI/StdMeshersGUI_QuadrangleParamWdg.cxx index 1cec406e2..90d92443b 100644 --- a/src/StdMeshersGUI/StdMeshersGUI_QuadrangleParamWdg.cxx +++ b/src/StdMeshersGUI/StdMeshersGUI_QuadrangleParamWdg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -55,7 +55,7 @@ #define SPACING 6 #define MARGIN 11 -enum { TAB_TRANSITION, TAB_VERTEX, TAB_ENF_POINTS }; +enum { TAB_TRANSITION, TAB_VERTEX, TAB_CORNERS, TAB_ENF_POINTS }; //================================================================================ // function : Constructor @@ -153,11 +153,17 @@ QFrame* StdMeshersGUI_QuadrangleParamCreator::buildFrame() pointsLay->addWidget( shapesGroup ); pointsLay->addWidget( coordsGroup ); + // Corners + + myCornersSelWdg = new StdMeshersGUI_SubShapeSelectorWdg( fr, TopAbs_VERTEX ); + myCornersSelWdg->layout()->setMargin( MARGIN ); + // Tabs myTabs = new QTabWidget( fr ); - myTabs->addTab( myTypeWdg, tr("TRANSITION")); - myTabs->addTab( myVertexSelWdg, tr("SMESH_BASE_VERTEX")); - myTabs->addTab( pointsFrame, tr("ENF_NODES")); + myTabs->addTab( myTypeWdg, tr("TRANSITION")); + myTabs->addTab( myVertexSelWdg, tr("SMESH_BASE_VERTEX")); + myTabs->addTab( myCornersSelWdg, tr("CORNERS")); + myTabs->addTab( pointsFrame, tr("ENF_NODES")); lay->addWidget( myTabs, row, 0, 2, 3 ); @@ -196,6 +202,7 @@ void StdMeshersGUI_QuadrangleParamCreator::retrieveParams() const if ( anEntry.isEmpty() ) anEntry = h->GetObjectEntry(); myVertexSelWdg->SetGeomShapeEntry(anEntry,aMainEntry); + myCornersSelWdg->SetGeomShapeEntry(anEntry,aMainEntry); if ( !isCreation()) { @@ -211,6 +218,10 @@ void StdMeshersGUI_QuadrangleParamCreator::retrieveParams() const myVertexSelWdg->SetListOfIDs(aVec); } + // corners + SMESH::long_array_var aVec = h->GetCorners(); + myCornersSelWdg->SetListOfIDs( aVec ); + // enforced nodes GEOM::ListOfGO_var shapes; SMESH::nodes_array_var points; @@ -265,6 +276,9 @@ QString StdMeshersGUI_QuadrangleParamCreator::storeParams() const h->SetTriaVertex( -1 ); } + // corners + h->SetCorners( myCornersSelWdg->GetListOfIDs() ); + // enfored nodes GEOM::ListOfGO_var goList = new GEOM::ListOfGO; @@ -274,9 +288,7 @@ QString StdMeshersGUI_QuadrangleParamCreator::storeParams() const { QListWidgetItem* item = myShapesList->item(i); QString entry = item->data( Qt::UserRole ).toString(); - Handle(SALOME_InteractiveObject) io = - new SALOME_InteractiveObject( entry.toStdString().c_str(), "GEOM" ); - GEOM::GEOM_Object_var go = GEOMBase::ConvertIOinGEOMObject( io ); + GEOM::GEOM_Object_var go = SMESH::EntryToInterface( entry ); if ( !go->_is_nil() ) goList[ nbShapes++ ] = go; } @@ -408,6 +420,7 @@ void StdMeshersGUI_QuadrangleParamCreator::onSelectionChanged() void StdMeshersGUI_QuadrangleParamCreator::onTabChanged(int i) { myVertexSelWdg->ShowPreview( i == TAB_VERTEX ); + myCornersSelWdg->ShowPreview( i == TAB_CORNERS ); } //================================================================================ @@ -486,8 +499,8 @@ ItemDelegate::ItemDelegate( QObject* parent ) : QItemDelegate( parent ) */ QWidget* StdMeshersGUI_QuadrangleParamCreator:: ItemDelegate::createEditor( QWidget* parent, - const QStyleOptionViewItem& option, - const QModelIndex& index ) const + const QStyleOptionViewItem& /*option*/, + const QModelIndex& /*index*/ ) const { SMESHGUI_SpinBox* sb = new SMESHGUI_SpinBox( parent ); sb->RangeStepAndValidator( COORD_MIN, COORD_MAX, 10 );