X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_SingleEditDlg.cxx;h=26760c33357a8fc8c26882e3648ef130d161903b;hp=fcf0682b49ef72c673973f5c70e453e60a7cb997;hb=57b43b4d010e2d0a1529d3c131bbb9d416e63258;hpb=b33324fe602b1fe1158c14a866c3802df12370fa diff --git a/src/SMESHGUI/SMESHGUI_SingleEditDlg.cxx b/src/SMESHGUI/SMESHGUI_SingleEditDlg.cxx index fcf0682b4..26760c333 100755 --- a/src/SMESHGUI/SMESHGUI_SingleEditDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_SingleEditDlg.cxx @@ -36,10 +36,12 @@ #include "SMESH_Actor.h" #include "SMDS_Mesh.hxx" -#include "SalomeApp_SelectionMgr.h" +#include "LightApp_SelectionMgr.h" +#include "LightApp_Application.h" #include "SUIT_ResourceMgr.h" #include "SUIT_MessageBox.h" #include "SUIT_Desktop.h" +#include "SUIT_Session.h" #include "SVTK_Selector.h" #include "SVTK_ViewWindow.h" @@ -158,6 +160,7 @@ QFrame* SMESHGUI_SingleEditDlg::createButtonFrame (QWidget* theParent) myOkBtn = new QPushButton(tr("SMESH_BUT_OK" ), aFrame); myApplyBtn = new QPushButton(tr("SMESH_BUT_APPLY"), aFrame); myCloseBtn = new QPushButton(tr("SMESH_BUT_CLOSE"), aFrame); + myHelpBtn = new QPushButton (tr("SMESH_BUT_HELP"), aFrame); QSpacerItem* aSpacer = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum); @@ -167,6 +170,7 @@ QFrame* SMESHGUI_SingleEditDlg::createButtonFrame (QWidget* theParent) aLay->addWidget(myApplyBtn); aLay->addItem(aSpacer); aLay->addWidget(myCloseBtn); + aLay->addWidget(myHelpBtn); return aFrame; } @@ -222,6 +226,7 @@ void SMESHGUI_SingleEditDlg::Init() connect(myOkBtn, SIGNAL(clicked()), SLOT(onOk())); connect(myCloseBtn, SIGNAL(clicked()), SLOT(onClose())); connect(myApplyBtn, SIGNAL(clicked()), SLOT(onApply())); + connect(myHelpBtn, SIGNAL(clicked()), SLOT(onHelp())); // selection and SMESHGUI connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(onSelectionDone())); @@ -233,9 +238,6 @@ void SMESHGUI_SingleEditDlg::Init() myApplyBtn->setEnabled(false); setEnabled(true); - int x, y; - mySMESHGUI->DefineDlgPosition(this, x, y); - this->move(x, y); this->show(); // set selection mode @@ -264,13 +266,30 @@ void SMESHGUI_SingleEditDlg::onClose() { if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) aViewWindow->SetSelectionMode(ActorSelection); - mySelectionMgr->clearSelected(); + //mySelectionMgr->clearSelected(); disconnect(mySelectionMgr, 0, this, 0); disconnect(mySMESHGUI, 0, this, 0); mySMESHGUI->ResetState(); reject(); } +//================================================================================= +// function : onHelp() +// purpose : +//================================================================================= +void SMESHGUI_SingleEditDlg::onHelp() +{ + LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication()); + if (app) + app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName); + else { + SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"), + QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE"). + arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName), + QObject::tr("BUT_OK")); + } +} + //======================================================================= //function : findTriangles() //purpose : find triangles sharing theNode1-theNode2 link @@ -350,10 +369,10 @@ void SMESHGUI_SingleEditDlg::onTextChange (const QString& theNewText) // find a triangle and an edge nb const SMDS_MeshElement* tria[2]; allOk &= a2Nodes[0] != a2Nodes[1] && findTriangles(a2Nodes[0],a2Nodes[1],tria[0],tria[1]); - if(allOk){ - myBusy = true; // block onSelectionDone() + myBusy = true; // block onSelectionDone() + if(allOk) + { newIndices.Add(tria[0]->GetID()); - mySelector->AddOrRemoveIndex(anIO,newIndices, true); const SMDS_MeshNode* a3Nodes [3]; SMDS_ElemIteratorPtr it; @@ -369,15 +388,15 @@ void SMESHGUI_SingleEditDlg::onTextChange (const QString& theNewText) } } } - - newIndices.Clear(); newIndices.Add(-edgeInd-1); - mySelector->AddOrRemoveIndex(anIO,newIndices,true); - myBusy = false; myOkBtn->setEnabled(true); myApplyBtn->setEnabled(true); } + mySelector->AddOrRemoveIndex(anIO,newIndices, false); + SMESH::GetViewWindow(mySMESHGUI)->highlight( anIO, true, true ); + + myBusy = false; } } } @@ -407,19 +426,22 @@ void SMESHGUI_SingleEditDlg::onSelectionDone() myActor = SMESH::FindActorByEntry(anIO->getEntry()); if(myActor){ TVisualObjPtr aVisualObj = myActor->GetObject(); - if(SMDS_Mesh* aMesh = aVisualObj->GetMesh()){ - if(SMESH::GetEdgeNodes(mySelector, aVisualObj, anId1, anId2) >= 1){ + if(SMDS_Mesh* aMesh = aVisualObj->GetMesh()) + { + const SMDS_MeshElement* tria[2]; + if( SMESH::GetEdgeNodes( mySelector, aVisualObj, anId1, anId2 ) >= 1 && + findTriangles( aMesh->FindNode( anId1 ), aMesh->FindNode( anId2 ), tria[0],tria[1] ) ) + { QString aText = QString("%1-%2").arg(anId1).arg(anId2); myBusy = true; myEdge->setText(aText); myBusy = false; - const SMDS_MeshElement* tria[2]; - if (findTriangles(aMesh->FindNode(anId1), aMesh->FindNode(anId2), tria[0],tria[1])) { - myOkBtn->setEnabled(true); - myApplyBtn->setEnabled(true); - } - } else { + myOkBtn->setEnabled(true); + myApplyBtn->setEnabled(true); + } + else + { myEdge->clear(); } } @@ -504,7 +526,9 @@ bool SMESHGUI_SingleEditDlg::onApply() // update actor if (aResult) { + mySelector->ClearIndex(); mySelectionMgr->setSelectedObjects(aList, false); + onSelectionDone(); SMESH::UpdateView(); } @@ -523,6 +547,7 @@ SMESHGUI_TrianglesInversionDlg : SMESHGUI_SingleEditDlg(theModule,theName) { setCaption(tr("CAPTION")); + myHelpFileName = "/files/diagonal_iversion_of_elements.htm"; } SMESHGUI_TrianglesInversionDlg::~SMESHGUI_TrianglesInversionDlg() @@ -547,6 +572,7 @@ SMESHGUI_UnionOfTwoTrianglesDlg : SMESHGUI_SingleEditDlg(theModule,theName) { setCaption(tr("CAPTION")); + myHelpFileName = "/files/uniting_two_triangles.htm"; } SMESHGUI_UnionOfTwoTrianglesDlg::~SMESHGUI_UnionOfTwoTrianglesDlg()