X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FStdMeshersGUI%2FStdMeshersGUI_QuadrangleParamWdg.cxx;h=c8d236eece2749e5ebcd89163041d4fa0d38850a;hp=9db22c2a9face2bf7313e4a21fd19fa1993d89b2;hb=HEAD;hpb=0c5188fd2cf587b6c74c6adce920158f7edd4419 diff --git a/src/StdMeshersGUI/StdMeshersGUI_QuadrangleParamWdg.cxx b/src/StdMeshersGUI/StdMeshersGUI_QuadrangleParamWdg.cxx index 9db22c2a9..fc5dffeaf 100644 --- a/src/StdMeshersGUI/StdMeshersGUI_QuadrangleParamWdg.cxx +++ b/src/StdMeshersGUI/StdMeshersGUI_QuadrangleParamWdg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2024 CEA, EDF, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -24,6 +24,7 @@ #include "SMESHGUI.h" #include "SMESHGUI_SpinBox.h" +#include "SMESHGUI_Utils.h" #include "StdMeshersGUI_SubShapeSelectorWdg.h" #include @@ -54,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 @@ -73,7 +74,7 @@ StdMeshersGUI_QuadrangleParamCreator::StdMeshersGUI_QuadrangleParamCreator(const QString StdMeshersGUI_QuadrangleParamCreator::helpPage() const { - return "a2d_meshing_hypo_page.html#hypo_quad_params_anchor"; + return "2d_meshing_hypo.html#hypo-quad-params-anchor"; } //======================================================================= @@ -152,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 ); @@ -194,8 +201,8 @@ void StdMeshersGUI_QuadrangleParamCreator::retrieveParams() const QString aMainEntry = SMESHGUI_GenericHypothesisCreator::getMainShapeEntry(); if ( anEntry.isEmpty() ) anEntry = h->GetObjectEntry(); - myVertexSelWdg->SetGeomShapeEntry(anEntry); - myVertexSelWdg->SetMainShapeEntry(aMainEntry); + myVertexSelWdg->SetGeomShapeEntry(anEntry,aMainEntry); + myCornersSelWdg->SetGeomShapeEntry(anEntry,aMainEntry); if ( !isCreation()) { @@ -211,11 +218,15 @@ 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; h->GetEnforcedNodes( shapes, points ); - for ( int i = 0; i < shapes->length(); ++i ) + for ( CORBA::ULong i = 0; i < shapes->length(); ++i ) { CORBA::String_var name = shapes[i]->GetName(); CORBA::String_var entry = shapes[i]->GetStudyEntry(); @@ -223,7 +234,7 @@ void StdMeshersGUI_QuadrangleParamCreator::retrieveParams() const item->setData( Qt::UserRole, entry.in() ); myShapesList->addItem( item ); } - for ( int i = 0; i < points->length(); ++i ) + for ( CORBA::ULong i = 0; i < points->length(); ++i ) { QTreeWidgetItem* item = new QTreeWidgetItem ( QStringList() @@ -249,7 +260,7 @@ QString StdMeshersGUI_QuadrangleParamCreator::storeParams() const // name if( myName ) - SMESH::SetName( SMESH::FindSObject( h ), myName->text().toLatin1().constData() ); + SMESH::SetName( SMESH::FindSObject( h ), myName->text().toUtf8().constData() ); // transition h->SetQuadType( StdMeshers::QuadType( myTypeWdg->GetType()) ); @@ -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; } @@ -407,7 +419,8 @@ void StdMeshersGUI_QuadrangleParamCreator::onSelectionChanged() void StdMeshersGUI_QuadrangleParamCreator::onTabChanged(int i) { - myVertexSelWdg->showPreview( i == TAB_VERTEX ); + 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 );