+
+#define CASE2MESSAGE(enum) case SMESH::enum: msg = QObject::tr( "STATE_" #enum ); break;
+ QString GetMessageOnAlgoStateErrors(const algo_error_array& errors)
+ {
+ QString resMsg; // PAL14861 = QObject::tr("SMESH_WRN_MISSING_PARAMETERS") + ":\n";
+ for ( int i = 0; i < errors.length(); ++i ) {
+ const SMESH::AlgoStateError & error = errors[ i ];
+ const bool hasAlgo = ( strlen( error.algoName ) != 0 );
+ QString msg;
+ if ( !hasAlgo )
+ msg = QObject::tr( "STATE_ALGO_MISSING" );
+ else
+ switch( error.state ) {
+ CASE2MESSAGE( HYP_MISSING );
+ CASE2MESSAGE( HYP_NOTCONFORM );
+ CASE2MESSAGE( HYP_BAD_PARAMETER );
+ CASE2MESSAGE( HYP_BAD_GEOMETRY );
+ default: continue;
+ }
+ // apply args to message:
+ // %1 - algo name
+ if ( hasAlgo )
+ msg = msg.arg( error.algoName.in() );
+ // %2 - dimension
+ msg = msg.arg( error.algoDim );
+ // %3 - global/local
+ msg = msg.arg( QObject::tr( error.isGlobalAlgo ? "GLOBAL_ALGO" : "LOCAL_ALGO" ));
+ // %4 - hypothesis dim == algoDim
+ msg = msg.arg( error.algoDim );
+
+ if ( i ) resMsg += ";\n";
+ resMsg += msg;
+ }
+ return resMsg;
+ }
+} // end of namespace SMESH