From 3a1c4c87ae351f4729fce73ff3c45736f8066b94 Mon Sep 17 00:00:00 2001 From: eap Date: Wed, 28 Dec 2005 14:40:18 +0000 Subject: [PATCH] PAL10953. Add possibility to have a custom widget for a hypo parameter --- src/SMESHGUI/SMESHGUI_Hypotheses.cxx | 79 ++++++++++++++++------------ src/SMESHGUI/SMESHGUI_Hypotheses.h | 2 + 2 files changed, 47 insertions(+), 34 deletions(-) diff --git a/src/SMESHGUI/SMESHGUI_Hypotheses.cxx b/src/SMESHGUI/SMESHGUI_Hypotheses.cxx index 676c37cc4..e7e894fcd 100644 --- a/src/SMESHGUI/SMESHGUI_Hypotheses.cxx +++ b/src/SMESHGUI/SMESHGUI_Hypotheses.cxx @@ -144,37 +144,38 @@ QFrame* SMESHGUI_GenericHypothesisCreator::buildStdFrame() QLabel* lab = new QLabel( (*anIt).myName, GroupC1 ); GroupC1Layout->addWidget( lab, i, 0 ); - QWidget* w = 0; - switch( (*anIt).myValue.type() ) - { - case QVariant::Int: - { - QtxIntSpinBox* sb = new QtxIntSpinBox( GroupC1, (*anIt).myName.latin1() ); - attuneStdWidget( sb, i ); - sb->setValue( (*anIt).myValue.toInt() ); - connect( sb, SIGNAL( valueChanged( int ) ), this, SLOT( onValueChanged() ) ); - w = sb; - } - break; - case QVariant::Double: - { - QtxDblSpinBox* sb = new SMESHGUI_SpinBox( GroupC1, (*anIt).myName.latin1() ); - attuneStdWidget( sb, i ); - sb->setValue( (*anIt).myValue.toDouble() ); - connect( sb, SIGNAL( valueChanged( double ) ), this, SLOT( onValueChanged() ) ); - w = sb; - } - break; - case QVariant::String: + QWidget* w = getCustomWidget( *anIt, GroupC1 ); + if ( !w ) + switch( (*anIt).myValue.type() ) { - QLineEdit* le = new QLineEdit( GroupC1, (*anIt).myName.latin1() ); - attuneStdWidget( le, i ); - le->setText( (*anIt).myValue.toString() ); - connect( le, SIGNAL( textChanged( const QString& ) ), this, SLOT( onValueChanged() ) ); - w = le; + case QVariant::Int: + { + QtxIntSpinBox* sb = new QtxIntSpinBox( GroupC1, (*anIt).myName.latin1() ); + attuneStdWidget( sb, i ); + sb->setValue( (*anIt).myValue.toInt() ); + connect( sb, SIGNAL( valueChanged( int ) ), this, SLOT( onValueChanged() ) ); + w = sb; + } + break; + case QVariant::Double: + { + QtxDblSpinBox* sb = new SMESHGUI_SpinBox( GroupC1, (*anIt).myName.latin1() ); + attuneStdWidget( sb, i ); + sb->setValue( (*anIt).myValue.toDouble() ); + connect( sb, SIGNAL( valueChanged( double ) ), this, SLOT( onValueChanged() ) ); + w = sb; + } + break; + case QVariant::String: + { + QLineEdit* le = new QLineEdit( GroupC1, (*anIt).myName.latin1() ); + attuneStdWidget( le, i ); + le->setText( (*anIt).myValue.toString() ); + connect( le, SIGNAL( textChanged( const QString& ) ), this, SLOT( onValueChanged() ) ); + w = le; + } + break; } - break; - } if( w ) { @@ -224,7 +225,12 @@ bool SMESHGUI_GenericHypothesisCreator::getStdParamFromDlg( ListOfStdParams& par params.append( item ); } - else + else if ( getParamFromCustomWidget( item, *anIt )) + { + params.append( item ); + } + + else res = false; } return res; @@ -273,10 +279,15 @@ QString SMESHGUI_GenericHypothesisCreator::type() const { return QString(); } - - - - +QWidget* SMESHGUI_GenericHypothesisCreator::getCustomWidget( const StdParam & /*param*/, + QWidget* /*parent*/) const +{ + return 0; +} +bool SMESHGUI_GenericHypothesisCreator::getParamFromCustomWidget( StdParam& , QWidget* ) const +{ + return false; +} diff --git a/src/SMESHGUI/SMESHGUI_Hypotheses.h b/src/SMESHGUI/SMESHGUI_Hypotheses.h index a4558df89..f48062b8e 100644 --- a/src/SMESHGUI/SMESHGUI_Hypotheses.h +++ b/src/SMESHGUI/SMESHGUI_Hypotheses.h @@ -77,6 +77,8 @@ protected: virtual bool stdParams ( ListOfStdParams& ) const; bool getStdParamFromDlg( ListOfStdParams& ) const; virtual void attuneStdWidget( QWidget*, const int ) const; + virtual QWidget* getCustomWidget( const StdParam &, QWidget* ) const; + virtual bool getParamFromCustomWidget( StdParam& , QWidget* ) const; virtual QString caption() const; virtual QPixmap icon() const; virtual QString type() const; -- 2.39.2