X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_XmlHandler.cxx;h=0ca286bc982e33f8c25a22e35c40118b1fdad0e0;hb=0d8d658a46215ca47efdd61d2e1588e1b022c938;hp=417b86bcc1909726b5ada1dc971ca26b7a22fe92;hpb=bd8f1aee7c78f7d2eb82bd4fec5e08c9e3d280ce;p=modules%2Fsmesh.git diff --git a/src/SMESHGUI/SMESHGUI_XmlHandler.cxx b/src/SMESHGUI/SMESHGUI_XmlHandler.cxx index 417b86bcc..0ca286bc9 100644 --- a/src/SMESHGUI/SMESHGUI_XmlHandler.cxx +++ b/src/SMESHGUI/SMESHGUI_XmlHandler.cxx @@ -36,6 +36,8 @@ // SALOME KERNEL includes #include +#define BAD_HYP_FLAG "NOT_FOUND" + /*! Constructor */ @@ -67,8 +69,8 @@ bool SMESHGUI_XmlHandler::startDocument() Reimplemented from QXmlDefaultHandler. */ -bool SMESHGUI_XmlHandler::startElement (const QString&, const QString&, - const QString& qName, +bool SMESHGUI_XmlHandler::startElement (const QString&, const QString&, + const QString& qName, const QXmlAttributes& atts) { if (qName == "meshers") @@ -78,22 +80,22 @@ bool SMESHGUI_XmlHandler::startElement (const QString&, const QString&, } else if (qName == "meshers-group") // group of hypotheses and algorithms { -// if (atts.value("server-lib") != "") + // if (atts.value("server-lib") != "") { myPluginName = atts.value("name"); myServerLib = atts.value("server-lib"); myClientLib = atts.value("gui-lib"); -/* It's Need to tranlate lib name for WIN32 or X platform - * (only client lib, because server lib translates in SMESH_Gen_i::createHypothesis - * for normal work of *.py files ) - */ + /* It's Need to tranlate lib name for WIN32 or X platform + * (only client lib, because server lib translates in SMESH_Gen_i::createHypothesis + * for normal work of *.py files ) + */ if( !myClientLib.isEmpty() ) { -#ifdef WNT - //myServerLib += ".dll"; +#ifdef WIN32 + //myServerLib += ".dll"; myClientLib += ".dll"; #else - //myServerLib = "lib" + myServerLib + ".so"; + //myServerLib = "lib" + myServerLib + ".so"; myClientLib = "lib" + myClientLib + ".so"; #endif } @@ -156,20 +158,22 @@ bool SMESHGUI_XmlHandler::startElement (const QString&, const QString&, attr[ i ] = aStr.split( ',', QString::SkipEmptyParts ); } } - - HypothesisData* aHypData = - new HypothesisData (aHypAlType, myPluginName, myServerLib, myClientLib, - aLabel, anIcon, aDim, isAux, - attr[ HYPOS ], attr[ OPT_HYPOS ], attr[ INPUT ], attr[ OUTPUT ], - isNeedGeom, isSupportSubmeshes ); - if (qName == "algorithm") - { - myAlgorithmsMap.insert(aHypAlType,aHypData); - } - else - { - myHypothesesMap.insert(aHypAlType,aHypData); + if ( !aHypAlType.contains( BAD_HYP_FLAG ) ) { + HypothesisData* aHypData = + new HypothesisData (aHypAlType, myPluginName, myServerLib, myClientLib, + aLabel, anIcon, aDim, isAux, + attr[ HYPOS ], attr[ OPT_HYPOS ], attr[ INPUT ], attr[ OUTPUT ], + isNeedGeom, isSupportSubmeshes ); + + if (qName == "algorithm") + { + myAlgorithmsMap.insert(aHypAlType,aHypData); + } + else + { + myHypothesesMap.insert(aHypAlType,aHypData); + } } } } @@ -180,15 +184,14 @@ bool SMESHGUI_XmlHandler::startElement (const QString&, const QString&, { if (atts.value("name") != "") { - HypothesesSet* aHypoSet = new HypothesesSet ( atts.value("name") ); - myListOfHypothesesSets.append( aHypoSet ); + QString hypos = atts.value("hypos").remove( ' ' ); + QString algos = atts.value("algos").remove( ' ' ); + bool badSet = hypos.contains( BAD_HYP_FLAG ) || algos.contains( BAD_HYP_FLAG ); - for ( int isHypo = 0; isHypo < 2; ++isHypo ) - { - QString aHypos = isHypo ? atts.value("hypos") : atts.value("algos"); - aHypos = aHypos.remove( ' ' ); - aHypoSet->set( !isHypo, aHypos.split( ',', QString::SkipEmptyParts ) ); - } + if ( !badSet ) + myListOfHypothesesSets.append( new HypothesesSet ( atts.value("name"), + hypos.split( ',', QString::SkipEmptyParts ), + algos.split( ',', QString::SkipEmptyParts ) ) ); } } else if ( qName == "python-wrap" ||