X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_MeshPatternDlg.cxx;h=aabcb60207ff97a6f50a855990b8d5e5cfddb1d7;hb=1224f8cfd6255dec39cf45bceb42b479e9c47805;hp=3d6501053fe8076406687f946fab9e8e9c71211f;hpb=bd8f1aee7c78f7d2eb82bd4fec5e08c9e3d280ce;p=modules%2Fsmesh.git diff --git a/src/SMESHGUI/SMESHGUI_MeshPatternDlg.cxx b/src/SMESHGUI/SMESHGUI_MeshPatternDlg.cxx old mode 100755 new mode 100644 index 3d6501053..aabcb6020 --- a/src/SMESHGUI/SMESHGUI_MeshPatternDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_MeshPatternDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -6,7 +6,7 @@ // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either -// version 2.1 of the License. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -119,17 +119,17 @@ SMESHGUI_MeshPatternDlg::SMESHGUI_MeshPatternDlg( SMESHGUI* theModule ) aDlgLay->setMargin( MARGIN ); aDlgLay->setSpacing( SPACING ); - QWidget* aMainFrame = createMainFrame ( this ); + myMainFrame = createMainFrame ( this ); QWidget* aBtnFrame = createButtonFrame( this ); - aDlgLay->addWidget( aMainFrame ); + aDlgLay->addWidget( myMainFrame ); aDlgLay->addWidget( aBtnFrame ); - aDlgLay->setStretchFactor( aMainFrame, 1 ); + aDlgLay->setStretchFactor( myMainFrame, 1 ); mySelector = (SMESH::GetViewWindow( mySMESHGUI ))->GetSelector(); - myHelpFileName = "pattern_mapping_page.html"; + myHelpFileName = "pattern_mapping.html"; Init(); } @@ -391,6 +391,8 @@ void SMESHGUI_MeshPatternDlg::Init() connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(onSelectionDone())); connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), SLOT(onDeactivate())); connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(reject())); + connect(mySMESHGUI, SIGNAL(SignalActivatedViewManager()), SLOT( onOpenView())); + connect(mySMESHGUI, SIGNAL(SignalCloseView()), SLOT( onCloseView())); myTypeGrp->button(Type_2d)->setChecked(true); onTypeChanged(Type_2d); @@ -473,7 +475,7 @@ bool SMESHGUI_MeshPatternDlg::onApply() aParameters << myNode1->text(); if(myType == Type_3d ) aParameters << myNode2->text(); - myMesh->SetParameters( aParameters.join(":").toLatin1().constData() ); + myMesh->SetParameters( aParameters.join(":").toUtf8().constData() ); } QList ids; getIds(ids); @@ -502,7 +504,7 @@ bool SMESHGUI_MeshPatternDlg::onApply() _PTR(SObject) aSO = SMESH::FindSObject(myMesh.in()); SMESH_Actor* anActor = SMESH::FindActorByEntry(aSO->GetID().c_str()); if (!anActor) { - anActor = SMESH::CreateActor(aSO->GetStudy(), aSO->GetID().c_str()); + anActor = SMESH::CreateActor(aSO->GetID().c_str()); if (anActor) { SMESH::DisplayActor(SMESH::GetActiveWindow(), anActor); SMESH::FitAll(); @@ -548,6 +550,7 @@ void SMESHGUI_MeshPatternDlg::onOk() void SMESHGUI_MeshPatternDlg::reject() { mySelectionMgr->clearFilters(); + mySelInput = Mesh; SMESH::SetPickable(); if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) aViewWindow->SetSelectionMode(ActorSelection); @@ -558,6 +561,32 @@ void SMESHGUI_MeshPatternDlg::reject() QDialog::reject(); } +//================================================================================= +// function : onOpenView() +// purpose : +//================================================================================= +void SMESHGUI_MeshPatternDlg::onOpenView() +{ + if(!mySelector) { + mySelector = SMESH::GetViewWindow( mySMESHGUI )->GetSelector(); + mySMESHGUI->EmitSignalDeactivateDialog(); + setEnabled(true); + activateSelection(); + connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(onSelectionDone())); + } +} + +//================================================================================= +// function : onCloseView() +// purpose : +//================================================================================= +void SMESHGUI_MeshPatternDlg::onCloseView() +{ + onDeactivate(); + mySelector = 0; +} + + //================================================================================= // function : onHelp() // purpose : @@ -695,7 +724,7 @@ void SMESHGUI_MeshPatternDlg::resetSelInput() //======================================================================= // name : SMESHGUI_MeshPatternDlg::onDeactivate -// Purpose : SLOT called when dialog must be deativated +// Purpose : SLOT called when dialog must be deactivated //======================================================================= void SMESHGUI_MeshPatternDlg::onDeactivate() { @@ -715,8 +744,13 @@ void SMESHGUI_MeshPatternDlg::enterEvent (QEvent*) if (myIsCreateDlgOpen) return; - if (myReverseChk->isChecked()) + if (myReverseChk->isChecked()) { + SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ); + if ( aViewWindow && !mySelector) { + mySelector = aViewWindow->GetSelector(); + } displayPreview(); + } mySMESHGUI->EmitSignalDeactivateDialog(); setEnabled(true); activateSelection(); @@ -776,10 +810,10 @@ void SMESHGUI_MeshPatternDlg::onOpen() SUIT_FileDlg* aDlg = new SUIT_FileDlg (this, true); aDlg->setWindowTitle(tr("LOAD_PATTERN")); aDlg->setFileMode(QFileDialog::ExistingFile); - aDlg->setFilters(prepareFilters()); + aDlg->setNameFilters(prepareFilters()); if (!myName->text().isEmpty()) aDlg->selectFile(myName->text() + ".smp"); - QPushButton* anOkBtn = qFindChild( aDlg, "OK" ); + QPushButton* anOkBtn = aDlg->findChild( "OK" ); if (anOkBtn != 0) anOkBtn->setText(tr("SMESH_BUT_OK")); @@ -793,9 +827,9 @@ void SMESHGUI_MeshPatternDlg::onOpen() if (QFileInfo(fName).suffix().isEmpty()) fName = autoExtension(fName); - fName = QDir::convertSeparators(fName); + fName = QDir::toNativeSeparators(fName); - QString prev = QDir::convertSeparators(myName->text()); + QString prev = QDir::toNativeSeparators(myName->text()); if (prev == fName) return; @@ -871,7 +905,7 @@ void SMESHGUI_MeshPatternDlg::onNew() //======================================================================= // name : SMESHGUI_MeshPatternDlg::onReverse -// Purpose : SLOT. Called when state of "Reverse order..." checkbox chaged +// Purpose : SLOT. Called when state of "Reverse order..." checkbox changed // Calculate new points of the mesh to be created. Redisplay preview //======================================================================= void SMESHGUI_MeshPatternDlg::onReverse (bool) @@ -1116,7 +1150,7 @@ bool SMESHGUI_MeshPatternDlg::loadFromFile (const QString& theName) try { SMESH::SMESH_Pattern_var aPattern = SMESH::GetPattern(); - if (!aPattern->LoadFromFile(theName.toLatin1().data()) || + if (!aPattern->LoadFromFile(theName.toUtf8().data()) || (myType == Type_2d && !aPattern->Is2D())) { SMESH::SMESH_Pattern::ErrorCode aCode = aPattern->GetErrorCode(); QString aMess; @@ -1201,11 +1235,16 @@ void SMESHGUI_MeshPatternDlg::onTypeChanged (int theType) myNode2Lbl->show(); myNode2 ->show(); } - mySelInput = Mesh; activateSelection(); updateWgState(); displayPreview(); + myPicture2d->hide(); + myPicture2d->show(); + myPicture2d->resize(minimumSizeHint()); + myMainFrame->hide(); + myMainFrame->show(); + resize(minimumSizeHint()); } //======================================================================= @@ -1264,7 +1303,7 @@ vtkUnstructuredGrid* SMESHGUI_MeshPatternDlg::getGrid() for (int i = 0, n = elemPoints->length(); i < n; i++) aCellsSize += elemPoints[ i ].length(); - // Create unstructured grid and other usefull arrays + // Create unstructured grid and other useful arrays vtkUnstructuredGrid* aGrid = vtkUnstructuredGrid::New(); vtkCellArray* aConnectivity = vtkCellArray::New(); @@ -1305,7 +1344,8 @@ vtkUnstructuredGrid* SMESHGUI_MeshPatternDlg::getGrid() aCellLocationsArray->SetNumberOfTuples(aNbCells); aConnectivity->InitTraversal(); - for (vtkIdType idType = 0, *pts, npts; aConnectivity->GetNextCell(npts, pts); idType++) + vtkIdType const *pts(nullptr); + for (vtkIdType idType = 0, npts; aConnectivity->GetNextCell(npts, pts); idType++) aCellLocationsArray->SetValue(idType, aConnectivity->GetTraversalLocation(npts)); aGrid->SetPoints(aPoints); @@ -1331,8 +1371,10 @@ void SMESHGUI_MeshPatternDlg::onModeToggled (bool on) { on ? myRefineGrp->show() : myRefineGrp->hide(); on ? myGeomGrp->hide() : myGeomGrp->show(); - + myMainFrame->hide(); + myMainFrame->show(); displayPreview(); + resize(minimumSizeHint()); } //======================================================================= @@ -1360,7 +1402,7 @@ void SMESHGUI_MeshPatternDlg::onTextChanged (const QString& theNewText) activateSelection(); } - // hilight entered elements/nodes + // highlight entered elements/nodes SMDS_Mesh* aMesh = 0; SMESH_Actor* anActor = SMESH::FindActorByObject(myMesh); if (anActor)