#include <SALOMEDSClient_SComponent.hxx>
#include <SALOMEDSClient_StudyBuilder.hxx>
#include <SALOMEDS_Study.hxx>
+#include <SALOMEDS_SObject.hxx>
// OCCT includes
#include <Standard_ErrorHandler.hxx>
}
}
+ void sortChildren(){
+ LightApp_SelectionMgr *aSel = SMESHGUI::selectionMgr();
+ SALOME_ListIO selected;
+ if( aSel ) {
+ aSel->selectedObjects( selected );
+
+ if(selected.Extent()){
+ Handle(SALOME_InteractiveObject) anIObject = selected.First();
+ _PTR(Study) aStudy = SMESH::GetActiveStudyDocument();
+ _PTR(SObject) aSObj = aStudy->FindObjectID(anIObject->getEntry());
+ if (aSObj) {
+ if ( aStudy->GetUseCaseBuilder()->SortChildren( aSObj, true/*AscendingOrder*/ ) ) {
+ SMESHGUI::GetSMESHGUI()->updateObjBrowser();
+ }
+ }
+ }
+ }
+ }
+
void SetDisplayMode(int theCommandID, SMESHGUI_StudyId2MarkerMap& theMarkerMap)
{
SALOME_ListIO selected;
*/
//=============================================================================
bool SMESHGUI::automaticUpdate( SMESH::SMESH_Mesh_ptr theMesh,
- int* entities, bool* limitExceeded )
+ int* entities, bool* limitExceeded )
{
SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
if ( !resMgr )
if ( nbOdElems > 0 ) {
if ( total + nbOdElems > updateLimit )
- *entities = *entities & ~SMESH_Actor::e0DElements;
+ *entities = *entities & ~SMESH_Actor::e0DElements;
else
- exceeded = false;
+ exceeded = false;
}
total += nbOdElems;
if ( nbEdges > 0 ) {
if ( total + nbEdges > updateLimit )
- *entities = *entities & ~SMESH_Actor::eEdges;
+ *entities = *entities & ~SMESH_Actor::eEdges;
else
- exceeded = false;
+ exceeded = false;
}
total += nbEdges;
if ( nbFaces > 0 ) {
if ( total + nbFaces > updateLimit )
- *entities = *entities & ~SMESH_Actor::eFaces;
+ *entities = *entities & ~SMESH_Actor::eFaces;
else
- exceeded = false;
+ exceeded = false;
}
total += nbFaces;
if ( nbVolumes > 0 ) {
if ( total + nbVolumes > updateLimit )
- *entities = *entities & ~SMESH_Actor::eVolumes;
+ *entities = *entities & ~SMESH_Actor::eVolumes;
else
- exceeded = false;
+ exceeded = false;
}
total += nbVolumes;
if ( nbBalls > 0 ) {
if ( total + nbBalls > updateLimit )
- *entities = *entities & ~SMESH_Actor::eBallElem;
+ *entities = *entities & ~SMESH_Actor::eBallElem;
else
- exceeded = false;
+ exceeded = false;
}
total += nbBalls;
}
dlg->show();
break;
}
+ case 41:
+ ::sortChildren();
+ break;
+
}
anApp->updateActions(); //SRN: To update a Save button in the toolbar
createSMESHAction( 301, "SHOW" );
createSMESHAction( 302, "DISPLAY_ONLY" );
+ createSMESHAction( 41, "SORT_CHILD_ITEMS" );
+
// ----- create menu --------------
int fileId = createMenu( tr( "MEN_FILE" ), -1, 1 ),
editId = createMenu( tr( "MEN_EDIT" ), -1, 3 ),
popupMgr()->insert( separator(), -1, -1 );
+ popupMgr()->insert( action( 41 ), -1, -1 );
+ popupMgr()->setRule( action( 41 ), "$component={'SMESH'} and client='ObjectBrowser' and isContainer and nbChildren>1", QtxPopupMgr::VisibleRule );
+ popupMgr()->insert( separator(), -1, -1 );
+
connect( application(), SIGNAL( viewManagerActivated( SUIT_ViewManager* ) ),
this, SLOT( onViewManagerActivated( SUIT_ViewManager* ) ) );