diff --git a/src/SMESHGUI/SMESHGUI_Hypotheses.cxx b/src/SMESHGUI/SMESHGUI_Hypotheses.cxx index 793cc1751..ae38ba269 100644 --- a/src/SMESHGUI/SMESHGUI_Hypotheses.cxx +++ b/src/SMESHGUI/SMESHGUI_Hypotheses.cxx @@ -42,6 +42,8 @@ #include #include #include +#include +//#include // Qt includes #include @@ -54,7 +56,8 @@ #define MARGIN 11 SMESHGUI_GenericHypothesisCreator::SMESHGUI_GenericHypothesisCreator( const QString& theHypType ) - : myHypType( theHypType ), myIsCreate( false ), myDlg( 0 ) + : SMESHGUI_Helper( SMESHGUI::GetSMESHGUI() ), + myHypType( theHypType ), myIsCreate( false ), myDlg( 0 ) { } @@ -193,11 +196,10 @@ QFrame* SMESHGUI_GenericHypothesisCreator::buildStdFrame() break; case QVariant::String: { - /* ouv: temporarily disabled if((*anIt).isVariable) { - _PTR(Study) aStudy = SMESH::GetActiveStudyDocument(); QString aVar = (*anIt).myValue.toString(); - if(aStudy->IsInteger(aVar.toLatin1().constData())){ + QVariant::Type aType = getNotebook()->getType( aVar ); + if(aType == QVariant::Int) { SalomeApp_IntSpinBox* sb = new SalomeApp_IntSpinBox( GroupC1 ); sb->setObjectName( (*anIt).myName ); attuneStdWidget( sb, i ); @@ -205,7 +207,7 @@ QFrame* SMESHGUI_GenericHypothesisCreator::buildStdFrame() connect( sb, SIGNAL( valueChanged( int ) ), this, SLOT( onValueChanged() ) ); w = sb; } - else if(aStudy->IsReal(aVar.toLatin1().constData())){ + else if( aType == QVariant::Double ) { SalomeApp_DoubleSpinBox* sb = new SMESHGUI_SpinBox( GroupC1 ); sb->setObjectName( (*anIt).myName ); attuneStdWidget( sb, i ); @@ -215,14 +217,13 @@ QFrame* SMESHGUI_GenericHypothesisCreator::buildStdFrame() } } else { - */ QLineEdit* le = new QLineEdit( GroupC1 ); le->setObjectName( (*anIt).myName ); attuneStdWidget( le, i ); le->setText( (*anIt).myValue.toString() ); connect( le, SIGNAL( textChanged( const QString& ) ), this, SLOT( onValueChanged() ) ); w = le; - //} + } } break; } diff --git a/src/SMESHGUI/SMESHGUI_Hypotheses.h b/src/SMESHGUI/SMESHGUI_Hypotheses.h index 70da0b4d3..ac6fa8d72 100644 --- a/src/SMESHGUI/SMESHGUI_Hypotheses.h +++ b/src/SMESHGUI/SMESHGUI_Hypotheses.h @@ -29,6 +29,7 @@ // SMESH includes #include "SMESH_SMESHGUI.hxx" #include "SMESHGUI_HypothesesUtils.h" +#include "SMESHGUI_Helper.h" // Qt includes #include @@ -43,7 +44,7 @@ class QEventLoop; /*! * \brief Auxiliary class for creation of hypotheses */ -class SMESHGUI_EXPORT SMESHGUI_GenericHypothesisCreator : public QObject +class SMESHGUI_EXPORT SMESHGUI_GenericHypothesisCreator : public QObject, public SMESHGUI_Helper { Q_OBJECT diff --git a/src/StdMeshersGUI/StdMeshersGUI_NbSegmentsCreator.cxx b/src/StdMeshersGUI/StdMeshersGUI_NbSegmentsCreator.cxx index 4283d4760..1d5125768 100644 --- a/src/StdMeshersGUI/StdMeshersGUI_NbSegmentsCreator.cxx +++ b/src/StdMeshersGUI/StdMeshersGUI_NbSegmentsCreator.cxx @@ -305,16 +305,16 @@ bool StdMeshersGUI_NbSegmentsCreator::readParamsFromHypo( NbSegmentsHypothesisDa h_data.myNbSeg = (int) h->GetNumberOfSegments(); - SMESH::ListOfParameters_var aParameters = h->GetLastParameters(); + SALOME::StringArray* aParameters = h->GetParameters(); - h_data.myNbSegVarName = (aParameters->length() > 0) ? QString(aParameters[0].in()) : QString(""); + h_data.myNbSegVarName = (aParameters->length() > 0) ? QString(aParameters->operator[](0)) : QString(""); int distr = (int) h->GetDistrType(); h_data.myDistrType = distr; h_data.myScale = distr==1 ? h->GetScaleFactor() : 1.0; if(distr==1){ - h_data.myScaleVarName = (aParameters->length() > 1) ? QString(aParameters[1].in()) : QString(""); + h_data.myScaleVarName = (aParameters->length() > 1) ? QString(aParameters->operator[](1)) : QString(""); } else h_data.myScaleVarName = QString(""); @@ -379,7 +379,9 @@ bool StdMeshersGUI_NbSegmentsCreator::storeParamsToHypo( const NbSegmentsHypothe //the function will be checked with old conversion mode, so that it may occurs //unexpected errors for user + /* ouv: temporarily disabled h->SetParameters(aVariablesList.join(":").toLatin1().constData()); + */ } catch(const SALOME::SALOME_Exception& ex) { diff --git a/src/StdMeshersGUI/StdMeshersGUI_StdHypothesisCreator.cxx b/src/StdMeshersGUI/StdMeshersGUI_StdHypothesisCreator.cxx index b5b2d1208..f929b5ffa 100644 --- a/src/StdMeshersGUI/StdMeshersGUI_StdHypothesisCreator.cxx +++ b/src/StdMeshersGUI/StdMeshersGUI_StdHypothesisCreator.cxx @@ -421,9 +421,9 @@ QString StdMeshersGUI_StdHypothesisCreator::storeParams() const StdMeshers::StdMeshers_LocalLength::_narrow( hypothesis() ); h->SetLength( params[0].myValue.toDouble() ); - h->SetParameters(aVariablesList.join(":").toLatin1().constData()); + //h->SetParameters(aVariablesList.join(":").toLatin1().constData()); h->SetPrecision( params[1].myValue.toDouble() ); - h->SetParameters(aVariablesList.join(":").toLatin1().constData()); + //h->SetParameters(aVariablesList.join(":").toLatin1().constData()); } else if( hypType()=="MaxLength" ) { @@ -431,7 +431,7 @@ QString StdMeshersGUI_StdHypothesisCreator::storeParams() const StdMeshers::StdMeshers_MaxLength::_narrow( hypothesis() ); h->SetLength( params[0].myValue.toDouble() ); - h->SetParameters(aVariablesList.join(":").toLatin1().constData()); + //h->SetParameters(aVariablesList.join(":").toLatin1().constData()); h->SetUsePreestimatedLength( widget< QCheckBox >( 1 )->isChecked() ); if ( !h->HavePreestimatedLength() && !h->_is_equivalent( initParamsHypothesis() )) { StdMeshers::StdMeshers_MaxLength_var hInit = @@ -445,7 +445,7 @@ QString StdMeshersGUI_StdHypothesisCreator::storeParams() const StdMeshers::StdMeshers_SegmentLengthAroundVertex::_narrow( hypothesis() ); h->SetLength( params[0].myValue.toDouble() ); - h->SetParameters(aVariablesList.join(":").toLatin1().constData()); + //h->SetParameters(aVariablesList.join(":").toLatin1().constData()); } else if( hypType()=="Arithmetic1D" ) { @@ -456,9 +456,9 @@ QString StdMeshersGUI_StdHypothesisCreator::storeParams() const widget< StdMeshersGUI_SubShapeSelectorWdg >( 2 ); h->SetStartLength( params[0].myValue.toDouble() ); - h->SetParameters(aVariablesList.join(":").toLatin1().constData()); + //h->SetParameters(aVariablesList.join(":").toLatin1().constData()); h->SetEndLength( params[1].myValue.toDouble() ); - h->SetParameters(aVariablesList.join(":").toLatin1().constData()); + //h->SetParameters(aVariablesList.join(":").toLatin1().constData()); if (w) { h->SetReversedEdges( w->GetListOfIDs() ); h->SetObjectEntry( w->GetMainShapeEntry() ); @@ -476,7 +476,7 @@ QString StdMeshersGUI_StdHypothesisCreator::storeParams() const widget< StdMeshersGUI_SubShapeSelectorWdg >( 1 ); if (w1) { - h->SetParameters(aVariablesList.join(":").toLatin1().constData()); + //h->SetParameters(aVariablesList.join(":").toLatin1().constData()); h->SetPoints( w1->GetListOfPoints() ); h->SetNbSegments( w1->GetListOfSegments() ); } @@ -489,7 +489,7 @@ QString StdMeshersGUI_StdHypothesisCreator::storeParams() const { StdMeshers::StdMeshers_MaxElementArea_var h = StdMeshers::StdMeshers_MaxElementArea::_narrow( hypothesis() ); - h->SetParameters(aVariablesList.join(":").toLatin1().constData()); + //h->SetParameters(aVariablesList.join(":").toLatin1().constData()); h->SetMaxElementArea( params[0].myValue.toDouble() ); } else if( hypType()=="MaxElementVolume" ) @@ -498,7 +498,7 @@ QString StdMeshersGUI_StdHypothesisCreator::storeParams() const StdMeshers::StdMeshers_MaxElementVolume::_narrow( hypothesis() ); h->SetMaxElementVolume( params[0].myValue.toDouble() ); - h->SetParameters(aVariablesList.join(":").toLatin1().constData()); + //h->SetParameters(aVariablesList.join(":").toLatin1().constData()); } else if( hypType()=="StartEndLength" ) { @@ -509,9 +509,9 @@ QString StdMeshersGUI_StdHypothesisCreator::storeParams() const widget< StdMeshersGUI_SubShapeSelectorWdg >( 2 ); h->SetStartLength( params[0].myValue.toDouble() ); - h->SetParameters(aVariablesList.join(":").toLatin1().constData()); + //h->SetParameters(aVariablesList.join(":").toLatin1().constData()); h->SetEndLength( params[1].myValue.toDouble() ); - h->SetParameters(aVariablesList.join(":").toLatin1().constData()); + //h->SetParameters(aVariablesList.join(":").toLatin1().constData()); if (w) { h->SetReversedEdges( w->GetListOfIDs() ); h->SetObjectEntry( w->GetMainShapeEntry() ); @@ -521,7 +521,7 @@ QString StdMeshersGUI_StdHypothesisCreator::storeParams() const { StdMeshers::StdMeshers_Deflection1D_var h = StdMeshers::StdMeshers_Deflection1D::_narrow( hypothesis() ); - h->SetParameters(aVariablesList.join(":").toLatin1().constData()); + //h->SetParameters(aVariablesList.join(":").toLatin1().constData()); h->SetDeflection( params[0].myValue.toDouble() ); } else if( hypType()=="AutomaticLength" ) @@ -537,7 +537,7 @@ QString StdMeshersGUI_StdHypothesisCreator::storeParams() const StdMeshers::StdMeshers_NumberOfLayers::_narrow( hypothesis() ); h->SetNumberOfLayers( params[0].myValue.toInt() ); - h->SetParameters(aVariablesList.join(":").toLatin1().constData()); + //h->SetParameters(aVariablesList.join(":").toLatin1().constData()); } else if( hypType()=="LayerDistribution" ) { @@ -547,8 +547,8 @@ QString StdMeshersGUI_StdHypothesisCreator::storeParams() const widget< StdMeshersGUI_LayerDistributionParamWdg >( 0 ); h->SetLayerDistribution( w->GetHypothesis() ); - h->SetParameters(w->GetHypothesis()->GetParameters()); - w->GetHypothesis()->ClearParameters(); + //h->SetParameters(w->GetHypothesis()->GetParameters()); + //w->GetHypothesis()->ClearParameters(); } else if( hypType()=="NumberOfLayers2D" ) { @@ -556,7 +556,7 @@ QString StdMeshersGUI_StdHypothesisCreator::storeParams() const StdMeshers::StdMeshers_NumberOfLayers2D::_narrow( hypothesis() ); h->SetNumberOfLayers( params[0].myValue.toInt() ); - h->SetParameters(aVariablesList.join(":").toLatin1().constData()); + //h->SetParameters(aVariablesList.join(":").toLatin1().constData()); } else if( hypType()=="LayerDistribution2D" ) { @@ -566,8 +566,8 @@ QString StdMeshersGUI_StdHypothesisCreator::storeParams() const widget< StdMeshersGUI_LayerDistributionParamWdg >( 0 ); h->SetLayerDistribution( w->GetHypothesis() ); - h->SetParameters(w->GetHypothesis()->GetParameters()); - w->GetHypothesis()->ClearParameters(); + //h->SetParameters(w->GetHypothesis()->GetParameters()); + //w->GetHypothesis()->ClearParameters(); } else if( hypType()=="ProjectionSource1D" ) { @@ -653,7 +653,8 @@ bool StdMeshersGUI_StdHypothesisCreator::stdParams( ListOfStdParams& p ) const } SMESH::SMESH_Hypothesis_var hyp = initParamsHypothesis(); - SMESH::ListOfParameters_var aParameters = hyp->GetLastParameters(); + //SMESH::ListOfParameters_var aParameters = hyp->GetLastParameters(); + SALOME::StringArray* aParameters = hyp->GetParameters(); if( hypType()=="LocalLength" ) { @@ -881,10 +882,12 @@ bool StdMeshersGUI_StdHypothesisCreator::stdParams( ListOfStdParams& p ) const //Set into not published hypo last variables QStringList aLastVarsList; for(int i = 0;ilength();i++) - aLastVarsList.append(QString(aParameters[i].in())); + aLastVarsList.append(QString(aParameters->operator[](i))); + /* ouv: temporarily disabled if(!aLastVarsList.isEmpty()) h->GetLayerDistribution()->SetLastParameters(aLastVarsList.join(":").toLatin1().constData()); + */ customWidgets()->append ( new StdMeshersGUI_LayerDistributionParamWdg( h->GetLayerDistribution(), hypName(), dlg())); @@ -907,10 +910,12 @@ bool StdMeshersGUI_StdHypothesisCreator::stdParams( ListOfStdParams& p ) const //Set into not published hypo last variables QStringList aLastVarsList; for(int i = 0;ilength();i++) - aLastVarsList.append(QString(aParameters[i].in())); + aLastVarsList.append(QString(aParameters->operator[](i))); + /* ouv: temporarily disabled if(!aLastVarsList.isEmpty()) h->GetLayerDistribution()->SetLastParameters(aLastVarsList.join(":").toLatin1().constData()); + */ customWidgets()->append ( new StdMeshersGUI_LayerDistributionParamWdg( h->GetLayerDistribution(), hypName(), dlg())); @@ -1261,11 +1266,12 @@ void StdMeshersGUI_StdHypothesisCreator::valueChanged( QWidget* paramWidget) */ //================================================================================ -bool StdMeshersGUI_StdHypothesisCreator::initVariableName(SMESH::ListOfParameters_var theParameters, +bool StdMeshersGUI_StdHypothesisCreator::initVariableName(SALOME::StringArray* theParameters, StdParam &theParams, int order) const { - QString aVaribaleName = (theParameters->length() > order) ? QString(theParameters[order].in()) : QString(""); + QString aVaribaleName = (theParameters->length() > order) ? + QString( CORBA::string_dup( theParameters->operator[]( order ) ) ) : QString(""); theParams.isVariable = !aVaribaleName.isEmpty(); if(theParams.isVariable) theParams.myValue = aVaribaleName; diff --git a/src/StdMeshersGUI/StdMeshersGUI_StdHypothesisCreator.h b/src/StdMeshersGUI/StdMeshersGUI_StdHypothesisCreator.h index 011ff8945..2f44689d7 100644 --- a/src/StdMeshersGUI/StdMeshersGUI_StdHypothesisCreator.h +++ b/src/StdMeshersGUI/StdMeshersGUI_StdHypothesisCreator.h @@ -59,7 +59,7 @@ protected: virtual QWidget* getWidgetForParam( int paramIndex ) const; virtual ListOfWidgets* customWidgets() const; virtual void onReject(); - virtual bool initVariableName(SMESH::ListOfParameters_var theParameters, StdParam& theParams, int order) const; + virtual bool initVariableName(SALOME::StringArray* theParameters, StdParam& theParams, int order) const; virtual void valueChanged( QWidget* );