+
+ int groupID = aData->GroupID;
+ int priority = aData->Priority;
+ if ( groupID < 0 || groupID > 9 ) groupID = 9;
+ if ( priority < 0 || priority > 999 ) priority = 999;
+
+ sortedHyps.insert( std::make_pair( groupID + priority * 1e-3, aData ));
+ }
+ }
+
+ if ( !sortedHyps.empty() )
+ {
+ HypothesisData* aPrevGroup = SMESH::GetGroupTitle( sortedHyps.rbegin()->second, isAlgo );
+ std::multimap< double, HypothesisData* >::iterator key_hyp = sortedHyps.begin();
+ for ( ; key_hyp != sortedHyps.end(); ++key_hyp )
+ {
+ HypothesisData* aData = key_hyp->second;
+ HypothesisData* aGroup = SMESH::GetGroupTitle( aData, isAlgo );
+ if ( aPrevGroup != aGroup )
+ {
+ theDataList.append( aGroup );
+ theHyps.append( aGroup->Label );
+ aPrevGroup = aGroup;
+ }