Refactoring

This commit is contained in:
ouv 2009-12-10 08:28:09 +00:00
parent ab2b169f82
commit a2d993375a
5 changed files with 45 additions and 35 deletions

View File

@ -42,6 +42,8 @@
#include <LightApp_Application.h> #include <LightApp_Application.h>
#include <SalomeApp_Application.h> #include <SalomeApp_Application.h>
#include <SalomeApp_IntSpinBox.h> #include <SalomeApp_IntSpinBox.h>
#include <SalomeApp_Notebook.h>
//#include <SalomeApp_Study.h>
// Qt includes // Qt includes
#include <QFrame> #include <QFrame>
@ -54,7 +56,8 @@
#define MARGIN 11 #define MARGIN 11
SMESHGUI_GenericHypothesisCreator::SMESHGUI_GenericHypothesisCreator( const QString& theHypType ) 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; break;
case QVariant::String: case QVariant::String:
{ {
/* ouv: temporarily disabled
if((*anIt).isVariable) { if((*anIt).isVariable) {
_PTR(Study) aStudy = SMESH::GetActiveStudyDocument();
QString aVar = (*anIt).myValue.toString(); 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 ); SalomeApp_IntSpinBox* sb = new SalomeApp_IntSpinBox( GroupC1 );
sb->setObjectName( (*anIt).myName ); sb->setObjectName( (*anIt).myName );
attuneStdWidget( sb, i ); attuneStdWidget( sb, i );
@ -205,7 +207,7 @@ QFrame* SMESHGUI_GenericHypothesisCreator::buildStdFrame()
connect( sb, SIGNAL( valueChanged( int ) ), this, SLOT( onValueChanged() ) ); connect( sb, SIGNAL( valueChanged( int ) ), this, SLOT( onValueChanged() ) );
w = sb; w = sb;
} }
else if(aStudy->IsReal(aVar.toLatin1().constData())){ else if( aType == QVariant::Double ) {
SalomeApp_DoubleSpinBox* sb = new SMESHGUI_SpinBox( GroupC1 ); SalomeApp_DoubleSpinBox* sb = new SMESHGUI_SpinBox( GroupC1 );
sb->setObjectName( (*anIt).myName ); sb->setObjectName( (*anIt).myName );
attuneStdWidget( sb, i ); attuneStdWidget( sb, i );
@ -215,14 +217,13 @@ QFrame* SMESHGUI_GenericHypothesisCreator::buildStdFrame()
} }
} }
else { else {
*/
QLineEdit* le = new QLineEdit( GroupC1 ); QLineEdit* le = new QLineEdit( GroupC1 );
le->setObjectName( (*anIt).myName ); le->setObjectName( (*anIt).myName );
attuneStdWidget( le, i ); attuneStdWidget( le, i );
le->setText( (*anIt).myValue.toString() ); le->setText( (*anIt).myValue.toString() );
connect( le, SIGNAL( textChanged( const QString& ) ), this, SLOT( onValueChanged() ) ); connect( le, SIGNAL( textChanged( const QString& ) ), this, SLOT( onValueChanged() ) );
w = le; w = le;
//} }
} }
break; break;
} }

View File

@ -29,6 +29,7 @@
// SMESH includes // SMESH includes
#include "SMESH_SMESHGUI.hxx" #include "SMESH_SMESHGUI.hxx"
#include "SMESHGUI_HypothesesUtils.h" #include "SMESHGUI_HypothesesUtils.h"
#include "SMESHGUI_Helper.h"
// Qt includes // Qt includes
#include <QtxDialog.h> #include <QtxDialog.h>
@ -43,7 +44,7 @@ class QEventLoop;
/*! /*!
* \brief Auxiliary class for creation of hypotheses * \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 Q_OBJECT

View File

@ -305,16 +305,16 @@ bool StdMeshersGUI_NbSegmentsCreator::readParamsFromHypo( NbSegmentsHypothesisDa
h_data.myNbSeg = (int) h->GetNumberOfSegments(); 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(); int distr = (int) h->GetDistrType();
h_data.myDistrType = distr; h_data.myDistrType = distr;
h_data.myScale = distr==1 ? h->GetScaleFactor() : 1.0; h_data.myScale = distr==1 ? h->GetScaleFactor() : 1.0;
if(distr==1){ 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 else
h_data.myScaleVarName = QString(""); 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 //the function will be checked with old conversion mode, so that it may occurs
//unexpected errors for user //unexpected errors for user
/* ouv: temporarily disabled
h->SetParameters(aVariablesList.join(":").toLatin1().constData()); h->SetParameters(aVariablesList.join(":").toLatin1().constData());
*/
} }
catch(const SALOME::SALOME_Exception& ex) catch(const SALOME::SALOME_Exception& ex)
{ {

View File

@ -421,9 +421,9 @@ QString StdMeshersGUI_StdHypothesisCreator::storeParams() const
StdMeshers::StdMeshers_LocalLength::_narrow( hypothesis() ); StdMeshers::StdMeshers_LocalLength::_narrow( hypothesis() );
h->SetLength( params[0].myValue.toDouble() ); 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->SetPrecision( params[1].myValue.toDouble() );
h->SetParameters(aVariablesList.join(":").toLatin1().constData()); //h->SetParameters(aVariablesList.join(":").toLatin1().constData());
} }
else if( hypType()=="MaxLength" ) else if( hypType()=="MaxLength" )
{ {
@ -431,7 +431,7 @@ QString StdMeshersGUI_StdHypothesisCreator::storeParams() const
StdMeshers::StdMeshers_MaxLength::_narrow( hypothesis() ); StdMeshers::StdMeshers_MaxLength::_narrow( hypothesis() );
h->SetLength( params[0].myValue.toDouble() ); h->SetLength( params[0].myValue.toDouble() );
h->SetParameters(aVariablesList.join(":").toLatin1().constData()); //h->SetParameters(aVariablesList.join(":").toLatin1().constData());
h->SetUsePreestimatedLength( widget< QCheckBox >( 1 )->isChecked() ); h->SetUsePreestimatedLength( widget< QCheckBox >( 1 )->isChecked() );
if ( !h->HavePreestimatedLength() && !h->_is_equivalent( initParamsHypothesis() )) { if ( !h->HavePreestimatedLength() && !h->_is_equivalent( initParamsHypothesis() )) {
StdMeshers::StdMeshers_MaxLength_var hInit = StdMeshers::StdMeshers_MaxLength_var hInit =
@ -445,7 +445,7 @@ QString StdMeshersGUI_StdHypothesisCreator::storeParams() const
StdMeshers::StdMeshers_SegmentLengthAroundVertex::_narrow( hypothesis() ); StdMeshers::StdMeshers_SegmentLengthAroundVertex::_narrow( hypothesis() );
h->SetLength( params[0].myValue.toDouble() ); h->SetLength( params[0].myValue.toDouble() );
h->SetParameters(aVariablesList.join(":").toLatin1().constData()); //h->SetParameters(aVariablesList.join(":").toLatin1().constData());
} }
else if( hypType()=="Arithmetic1D" ) else if( hypType()=="Arithmetic1D" )
{ {
@ -456,9 +456,9 @@ QString StdMeshersGUI_StdHypothesisCreator::storeParams() const
widget< StdMeshersGUI_SubShapeSelectorWdg >( 2 ); widget< StdMeshersGUI_SubShapeSelectorWdg >( 2 );
h->SetStartLength( params[0].myValue.toDouble() ); 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->SetEndLength( params[1].myValue.toDouble() );
h->SetParameters(aVariablesList.join(":").toLatin1().constData()); //h->SetParameters(aVariablesList.join(":").toLatin1().constData());
if (w) { if (w) {
h->SetReversedEdges( w->GetListOfIDs() ); h->SetReversedEdges( w->GetListOfIDs() );
h->SetObjectEntry( w->GetMainShapeEntry() ); h->SetObjectEntry( w->GetMainShapeEntry() );
@ -476,7 +476,7 @@ QString StdMeshersGUI_StdHypothesisCreator::storeParams() const
widget< StdMeshersGUI_SubShapeSelectorWdg >( 1 ); widget< StdMeshersGUI_SubShapeSelectorWdg >( 1 );
if (w1) { if (w1) {
h->SetParameters(aVariablesList.join(":").toLatin1().constData()); //h->SetParameters(aVariablesList.join(":").toLatin1().constData());
h->SetPoints( w1->GetListOfPoints() ); h->SetPoints( w1->GetListOfPoints() );
h->SetNbSegments( w1->GetListOfSegments() ); h->SetNbSegments( w1->GetListOfSegments() );
} }
@ -489,7 +489,7 @@ QString StdMeshersGUI_StdHypothesisCreator::storeParams() const
{ {
StdMeshers::StdMeshers_MaxElementArea_var h = StdMeshers::StdMeshers_MaxElementArea_var h =
StdMeshers::StdMeshers_MaxElementArea::_narrow( hypothesis() ); StdMeshers::StdMeshers_MaxElementArea::_narrow( hypothesis() );
h->SetParameters(aVariablesList.join(":").toLatin1().constData()); //h->SetParameters(aVariablesList.join(":").toLatin1().constData());
h->SetMaxElementArea( params[0].myValue.toDouble() ); h->SetMaxElementArea( params[0].myValue.toDouble() );
} }
else if( hypType()=="MaxElementVolume" ) else if( hypType()=="MaxElementVolume" )
@ -498,7 +498,7 @@ QString StdMeshersGUI_StdHypothesisCreator::storeParams() const
StdMeshers::StdMeshers_MaxElementVolume::_narrow( hypothesis() ); StdMeshers::StdMeshers_MaxElementVolume::_narrow( hypothesis() );
h->SetMaxElementVolume( params[0].myValue.toDouble() ); h->SetMaxElementVolume( params[0].myValue.toDouble() );
h->SetParameters(aVariablesList.join(":").toLatin1().constData()); //h->SetParameters(aVariablesList.join(":").toLatin1().constData());
} }
else if( hypType()=="StartEndLength" ) else if( hypType()=="StartEndLength" )
{ {
@ -509,9 +509,9 @@ QString StdMeshersGUI_StdHypothesisCreator::storeParams() const
widget< StdMeshersGUI_SubShapeSelectorWdg >( 2 ); widget< StdMeshersGUI_SubShapeSelectorWdg >( 2 );
h->SetStartLength( params[0].myValue.toDouble() ); 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->SetEndLength( params[1].myValue.toDouble() );
h->SetParameters(aVariablesList.join(":").toLatin1().constData()); //h->SetParameters(aVariablesList.join(":").toLatin1().constData());
if (w) { if (w) {
h->SetReversedEdges( w->GetListOfIDs() ); h->SetReversedEdges( w->GetListOfIDs() );
h->SetObjectEntry( w->GetMainShapeEntry() ); h->SetObjectEntry( w->GetMainShapeEntry() );
@ -521,7 +521,7 @@ QString StdMeshersGUI_StdHypothesisCreator::storeParams() const
{ {
StdMeshers::StdMeshers_Deflection1D_var h = StdMeshers::StdMeshers_Deflection1D_var h =
StdMeshers::StdMeshers_Deflection1D::_narrow( hypothesis() ); StdMeshers::StdMeshers_Deflection1D::_narrow( hypothesis() );
h->SetParameters(aVariablesList.join(":").toLatin1().constData()); //h->SetParameters(aVariablesList.join(":").toLatin1().constData());
h->SetDeflection( params[0].myValue.toDouble() ); h->SetDeflection( params[0].myValue.toDouble() );
} }
else if( hypType()=="AutomaticLength" ) else if( hypType()=="AutomaticLength" )
@ -537,7 +537,7 @@ QString StdMeshersGUI_StdHypothesisCreator::storeParams() const
StdMeshers::StdMeshers_NumberOfLayers::_narrow( hypothesis() ); StdMeshers::StdMeshers_NumberOfLayers::_narrow( hypothesis() );
h->SetNumberOfLayers( params[0].myValue.toInt() ); h->SetNumberOfLayers( params[0].myValue.toInt() );
h->SetParameters(aVariablesList.join(":").toLatin1().constData()); //h->SetParameters(aVariablesList.join(":").toLatin1().constData());
} }
else if( hypType()=="LayerDistribution" ) else if( hypType()=="LayerDistribution" )
{ {
@ -547,8 +547,8 @@ QString StdMeshersGUI_StdHypothesisCreator::storeParams() const
widget< StdMeshersGUI_LayerDistributionParamWdg >( 0 ); widget< StdMeshersGUI_LayerDistributionParamWdg >( 0 );
h->SetLayerDistribution( w->GetHypothesis() ); h->SetLayerDistribution( w->GetHypothesis() );
h->SetParameters(w->GetHypothesis()->GetParameters()); //h->SetParameters(w->GetHypothesis()->GetParameters());
w->GetHypothesis()->ClearParameters(); //w->GetHypothesis()->ClearParameters();
} }
else if( hypType()=="NumberOfLayers2D" ) else if( hypType()=="NumberOfLayers2D" )
{ {
@ -556,7 +556,7 @@ QString StdMeshersGUI_StdHypothesisCreator::storeParams() const
StdMeshers::StdMeshers_NumberOfLayers2D::_narrow( hypothesis() ); StdMeshers::StdMeshers_NumberOfLayers2D::_narrow( hypothesis() );
h->SetNumberOfLayers( params[0].myValue.toInt() ); h->SetNumberOfLayers( params[0].myValue.toInt() );
h->SetParameters(aVariablesList.join(":").toLatin1().constData()); //h->SetParameters(aVariablesList.join(":").toLatin1().constData());
} }
else if( hypType()=="LayerDistribution2D" ) else if( hypType()=="LayerDistribution2D" )
{ {
@ -566,8 +566,8 @@ QString StdMeshersGUI_StdHypothesisCreator::storeParams() const
widget< StdMeshersGUI_LayerDistributionParamWdg >( 0 ); widget< StdMeshersGUI_LayerDistributionParamWdg >( 0 );
h->SetLayerDistribution( w->GetHypothesis() ); h->SetLayerDistribution( w->GetHypothesis() );
h->SetParameters(w->GetHypothesis()->GetParameters()); //h->SetParameters(w->GetHypothesis()->GetParameters());
w->GetHypothesis()->ClearParameters(); //w->GetHypothesis()->ClearParameters();
} }
else if( hypType()=="ProjectionSource1D" ) else if( hypType()=="ProjectionSource1D" )
{ {
@ -653,7 +653,8 @@ bool StdMeshersGUI_StdHypothesisCreator::stdParams( ListOfStdParams& p ) const
} }
SMESH::SMESH_Hypothesis_var hyp = initParamsHypothesis(); 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" ) if( hypType()=="LocalLength" )
{ {
@ -881,10 +882,12 @@ bool StdMeshersGUI_StdHypothesisCreator::stdParams( ListOfStdParams& p ) const
//Set into not published hypo last variables //Set into not published hypo last variables
QStringList aLastVarsList; QStringList aLastVarsList;
for(int i = 0;i<aParameters->length();i++) for(int i = 0;i<aParameters->length();i++)
aLastVarsList.append(QString(aParameters[i].in())); aLastVarsList.append(QString(aParameters->operator[](i)));
/* ouv: temporarily disabled
if(!aLastVarsList.isEmpty()) if(!aLastVarsList.isEmpty())
h->GetLayerDistribution()->SetLastParameters(aLastVarsList.join(":").toLatin1().constData()); h->GetLayerDistribution()->SetLastParameters(aLastVarsList.join(":").toLatin1().constData());
*/
customWidgets()->append customWidgets()->append
( new StdMeshersGUI_LayerDistributionParamWdg( h->GetLayerDistribution(), hypName(), dlg())); ( 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 //Set into not published hypo last variables
QStringList aLastVarsList; QStringList aLastVarsList;
for(int i = 0;i<aParameters->length();i++) for(int i = 0;i<aParameters->length();i++)
aLastVarsList.append(QString(aParameters[i].in())); aLastVarsList.append(QString(aParameters->operator[](i)));
/* ouv: temporarily disabled
if(!aLastVarsList.isEmpty()) if(!aLastVarsList.isEmpty())
h->GetLayerDistribution()->SetLastParameters(aLastVarsList.join(":").toLatin1().constData()); h->GetLayerDistribution()->SetLastParameters(aLastVarsList.join(":").toLatin1().constData());
*/
customWidgets()->append customWidgets()->append
( new StdMeshersGUI_LayerDistributionParamWdg( h->GetLayerDistribution(), hypName(), dlg())); ( 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, StdParam &theParams,
int order) const 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(); theParams.isVariable = !aVaribaleName.isEmpty();
if(theParams.isVariable) if(theParams.isVariable)
theParams.myValue = aVaribaleName; theParams.myValue = aVaribaleName;

View File

@ -59,7 +59,7 @@ protected:
virtual QWidget* getWidgetForParam( int paramIndex ) const; virtual QWidget* getWidgetForParam( int paramIndex ) const;
virtual ListOfWidgets* customWidgets() const; virtual ListOfWidgets* customWidgets() const;
virtual void onReject(); 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* ); virtual void valueChanged( QWidget* );