X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_Hypotheses.cxx;h=9a5e014ff7fbcf5315838d6ae330d426c99baa97;hp=e2852230cff51eafbe17fe338bf0b30277c85717;hb=046f5915e17f5038b8a14e6606e9f4ebdeb212e2;hpb=9a54694a0ab1e5cbc558a35c4606ceea4f7af2ef diff --git a/src/SMESHGUI/SMESHGUI_Hypotheses.cxx b/src/SMESHGUI/SMESHGUI_Hypotheses.cxx index e2852230c..9a5e014ff 100644 --- a/src/SMESHGUI/SMESHGUI_Hypotheses.cxx +++ b/src/SMESHGUI/SMESHGUI_Hypotheses.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -6,7 +6,7 @@ // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either -// version 2.1 of the License. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -35,11 +35,13 @@ #include // SALOME GUI includes -#include +#include #include +#include #include -#include +#include #include +#include // Qt includes #include @@ -83,44 +85,36 @@ void SMESHGUI_GenericHypothesisCreator::create( SMESH::SMESH_Hypothesis_ptr init const QString& theHypName, QWidget* parent, QObject* obj, const QString& slot ) { - MESSAGE( "Creation of hypothesis with initial params" ); setInitParamsHypothesis( initParamsHyp ); create( false, theHypName, parent, obj, slot ); } -void SMESHGUI_GenericHypothesisCreator::create( bool isAlgo, +void SMESHGUI_GenericHypothesisCreator::create( bool isAlgo, const QString& theHypName, QWidget* theParent, QObject* obj, const QString& slot ) { - MESSAGE( "Creation of hypothesis" ); - myIsCreate = true; // Create hypothesis/algorithm if (isAlgo) { SMESH::SMESH_Hypothesis_var anAlgo = SMESH::CreateHypothesis( hypType(), theHypName, isAlgo ); - if (!CORBA::is_nil(anAlgo)) - anAlgo->UnRegister(); + anAlgo.out(); // avoid unused variable warning } else { SMESH::SMESH_Hypothesis_var aHypothesis = SMESH::CreateHypothesis( hypType(), theHypName, false ); editHypothesis( aHypothesis.in(), theHypName, theParent, obj, slot ); - if (!CORBA::is_nil(aHypothesis)) - aHypothesis->UnRegister(); } } void SMESHGUI_GenericHypothesisCreator::edit( SMESH::SMESH_Hypothesis_ptr theHypothesis, - const QString& theHypName, + const QString& theHypName, QWidget* theParent, QObject* obj, const QString& slot ) { if( CORBA::is_nil( theHypothesis ) ) return; - MESSAGE("Edition of hypothesis"); - myIsCreate = false; editHypothesis( theHypothesis, theHypName, theParent, obj, slot ); @@ -155,7 +149,7 @@ void SMESHGUI_GenericHypothesisCreator::editHypothesis( SMESH::SMESH_Hypothesis_ } else { emit finished( QDialog::Accepted ); - delete myDlg; + delete myDlg; } } @@ -185,6 +179,7 @@ QFrame* SMESHGUI_GenericHypothesisCreator::buildStdFrame() { QLabel* lab = new QLabel( (*anIt).myName, GroupC1 ); GroupC1Layout->addWidget( lab, i, 0 ); + myParamLabels << lab; QWidget* w = getCustomWidget( *anIt, GroupC1, i ); if ( !w ) @@ -242,7 +237,9 @@ QFrame* SMESHGUI_GenericHypothesisCreator::buildStdFrame() } } break; - } + + default:; + } // switch( (*anIt).myValue.type() ) if( w ) { @@ -250,6 +247,12 @@ QFrame* SMESHGUI_GenericHypothesisCreator::buildStdFrame() changeWidgets().append( w ); } } + if ( QWidget* w = getHelperWidget() ) + { + w->setParent( fr ); + w->move( QPoint( 0, 0 ) ); + lay->addWidget( w ); + } return fr; } @@ -268,12 +271,20 @@ void SMESHGUI_GenericHypothesisCreator::onDialogFinished( int result ) bool res = result==QDialog::Accepted; if( res ) { - /*QString paramValues = */storeParams(); + try + { + SUIT_OverrideCursor wc; + storeParams(); // No longer needed since NoteBook appears and "Value" OB field shows names of variable -// if ( !paramValues.isEmpty() ) { -// if ( _PTR(SObject) SHyp = SMESH::FindSObject( myHypo )) -// SMESH::SetValue( SHyp, paramValues ); -// } + // QString paramValues = storeParams(); + // if ( !paramValues.isEmpty() ) { + // if ( _PTR(SObject) SHyp = SMESH::FindSObject( myHypo )) + // SMESH::SetValue( SHyp, paramValues ); + // } + } + catch ( const SALOME::SALOME_Exception& S_ex ) { + SalomeApp_Tools::QtCatchCorbaException( S_ex ); + } } changeWidgets().clear(); @@ -293,7 +304,7 @@ void SMESHGUI_GenericHypothesisCreator::onDialogFinished( int result ) { SMESH::SObjectList listSOmesh = SMESH::GetMeshesUsingAlgoOrHypothesis( myHypo ); if( listSOmesh.size() > 0 ) - for( int i = 0; i < listSOmesh.size(); i++ ) + for( size_t i = 0; i < listSOmesh.size(); i++ ) { _PTR(SObject) submSO = listSOmesh[i]; SMESH::SMESH_Mesh_var aMesh = SMESH::SObjectToInterface( submSO ); @@ -387,8 +398,8 @@ QString SMESHGUI_GenericHypothesisCreator::stdParamValues( const ListOfStdParams { QString valueStr = ""; ListOfStdParams::const_iterator param = params.begin(), aLast = params.end(); - uint len0 = 0; - for( int i=0; param!=aLast; param++, i++ ) + int len0 = 0; + for ( ; param != aLast; param++ ) { if ( valueStr.length() > len0 ) { valueStr += "; "; @@ -466,6 +477,22 @@ SMESHGUI_GenericHypothesisCreator::ListOfWidgets& SMESHGUI_GenericHypothesisCrea return myParamWidgets; } +//================================================================================ +/*! + * \brief Returns a QLabel of a spesified parameter. + * If isCreation(), the 1st label (supposed to be "Name") is not countered. + */ +//================================================================================ + +QLabel* SMESHGUI_GenericHypothesisCreator::getLabel(int i) const +{ + if ( isCreation() ) + i++; + if ( i < myParamLabels.size() ) + return (QLabel*) myParamLabels.at(i); + return NULL; +} + QtxDialog* SMESHGUI_GenericHypothesisCreator:: dlg() const { return myDlg; @@ -500,6 +527,17 @@ QWidget* SMESHGUI_GenericHypothesisCreator::getCustomWidget( const StdParam & /* { return 0; } +//================================================================================ +/*! + * \brief Returns a widget representing not a hypothesis parameter but some helper widget + */ +//================================================================================ + +QWidget* SMESHGUI_GenericHypothesisCreator::getHelperWidget() const +{ + return 0; +} + bool SMESHGUI_GenericHypothesisCreator::getParamFromCustomWidget( StdParam&, QWidget* ) const { return false; @@ -539,6 +577,8 @@ QString SMESHGUI_GenericHypothesisCreator::helpPage() const aHelpFileName = "a1d_meshing_hypo_page.html#max_length_anchor"; else if ( aHypType == "Arithmetic1D") aHelpFileName = "a1d_meshing_hypo_page.html#arithmetic_1d_anchor"; + else if ( aHypType == "GeometricProgression") + aHelpFileName = "a1d_meshing_hypo_page.html#geometric_1d_anchor"; else if ( aHypType == "FixedPoints1D") aHelpFileName = "a1d_meshing_hypo_page.html#fixed_points_1d_anchor"; else if ( aHypType == "MaxElementArea") @@ -549,6 +589,8 @@ QString SMESHGUI_GenericHypothesisCreator::helpPage() const aHelpFileName = "a1d_meshing_hypo_page.html#start_and_end_length_anchor"; else if ( aHypType == "Deflection1D") aHelpFileName = "a1d_meshing_hypo_page.html#deflection_1d_anchor"; + else if ( aHypType == "Adaptive1D") + aHelpFileName = "a1d_meshing_hypo_page.html#adaptive_1d_anchor"; else if ( aHypType == "AutomaticLength") aHelpFileName = "a1d_meshing_hypo_page.html#automatic_length_anchor"; else if ( aHypType == "NumberOfSegments") @@ -630,6 +672,7 @@ void SMESHGUI_HypothesisDlg::setCustomFrame( QFrame* f ) void SMESHGUI_HypothesisDlg::accept() { + SUIT_OverrideCursor wc; // some creators temporary set params to a hyp which can be long QString msg; if ( myCreator && !myCreator->checkParams( msg ) ) { @@ -654,7 +697,7 @@ void SMESHGUI_HypothesisDlg::onHelp() if (app) { QString name = "SMESH"; if(myCreator) { - QVariant pluginName = myCreator->property( PLUGIN_NAME ); + QVariant pluginName = myCreator->property( SMESH::Plugin_Name() ); if( pluginName.isValid() ) { QString rootDir = pluginName.toString() + "PLUGIN_ROOT_DIR"; QString varValue = QString( getenv(rootDir.toLatin1().constData())); @@ -695,9 +738,10 @@ HypothesisData::HypothesisData( const QString& theTypeName, const QString& theClientLibName, const QString& theLabel, const QString& theIconId, + const QString& theContext, const QList& theDim, - const bool theIsAux, - const QStringList& theNeededHypos, + const bool theIsAuxOrNeedHyp, + const QStringList& theBasicHypos, const QStringList& theOptionalHypos, const QStringList& theInputTypes, const QStringList& theOutputTypes, @@ -709,14 +753,15 @@ HypothesisData::HypothesisData( const QString& theTypeName, ClientLibName( theClientLibName ), Label( theLabel ), IconId( theIconId ), + Context( theContext ), Dim( theDim ), - IsAux( theIsAux ), - NeededHypos( theNeededHypos ), + IsAuxOrNeedHyp( theIsAuxOrNeedHyp ), + IsNeedGeometry( theIsNeedGeometry ), + IsSupportSubmeshes( supportSub ), + BasicHypos( theBasicHypos ), OptionalHypos( theOptionalHypos ), InputTypes( theInputTypes ), - OutputTypes( theOutputTypes ), - IsNeedGeometry( theIsNeedGeometry ), - IsSupportSubmeshes( supportSub ) + OutputTypes( theOutputTypes ) { }