From 582347efc76381055e2f21a9ac0708b53abd96f0 Mon Sep 17 00:00:00 2001 From: eap Date: Fri, 24 Feb 2012 10:55:52 +0000 Subject: [PATCH] 0021208: Performance issue when loading SMESH with an hdf file containing a big mesh addPreference( tr( "PREF_FORGET_MESH_AT_HYP_MODIF" ), loadGroup, LightApp_Preferences::Bool, --- src/SMESHGUI/SMESHGUI.cxx | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/SMESHGUI/SMESHGUI.cxx b/src/SMESHGUI/SMESHGUI.cxx index 6ab62a0af..bac8dd37e 100644 --- a/src/SMESHGUI/SMESHGUI.cxx +++ b/src/SMESHGUI/SMESHGUI.cxx @@ -1713,11 +1713,14 @@ LightApp_Module( "SMESH" ) myComponentSMESH->SetBoundaryBoxSegmentation( nbSeg ); nbSeg = aResourceMgr->integerValue( "SMESH", "nb_segments_per_edge", 15 ); myComponentSMESH->SetDefaultNbSegments( nbSeg ); - if ( aResourceMgr->hasValue( "SMESH", "historical_python_dump" )) - { - QString val = aResourceMgr->stringValue( "SMESH", "historical_python_dump" ); - myComponentSMESH->SetOption( "historical_python_dump", val.toLatin1().constData() ); - } + + const char* options[] = { "historical_python_dump", "forget_mesh_on_hyp_modif" }; + for ( size_t i = 0; i < sizeof(options)/sizeof(char*); ++i ) + if ( aResourceMgr->hasValue( "SMESH", options[i] )) + { + QString val = aResourceMgr->stringValue( "SMESH", options[i] ); + myComponentSMESH->SetOption( options[i], val.toLatin1().constData() ); + } } myActiveDialogBox = 0; @@ -4579,6 +4582,11 @@ void SMESHGUI::createPreferences() setPreferenceProperty( nbSeg, "min", 1 ); setPreferenceProperty( nbSeg, "max", 10000000 ); + int loadGroup = addPreference( tr( "SMESH_PREF_MESH_LOADING" ), genTab ); + addPreference( tr( "PREF_FORGET_MESH_AT_HYP_MODIF" ), loadGroup, LightApp_Preferences::Bool, + "SMESH", "forget_mesh_on_hyp_modif" ); + + // Quantities with individual precision settings int precGroup = addPreference( tr( "SMESH_PREF_GROUP_PRECISION" ), genTab ); setPreferenceProperty( precGroup, "columns", 2 ); @@ -4860,9 +4868,10 @@ void SMESHGUI::preferencesChanged( const QString& sect, const QString& name ) int nbSeg = aResourceMgr->integerValue( "SMESH", "nb_segments_per_edge", 15 ); myComponentSMESH->SetDefaultNbSegments( nbSeg ); } - else if ( name == "historical_python_dump" ) { - QString val = aResourceMgr->stringValue( "SMESH", "historical_python_dump" ); - myComponentSMESH->SetOption( "historical_python_dump", val.toLatin1().constData() ); + else if ( name == "historical_python_dump" || + name == "forget_mesh_on_hyp_modif") { + QString val = aResourceMgr->stringValue( "SMESH", name ); + myComponentSMESH->SetOption( name.toLatin1().constData(), val.toLatin1().constData() ); } if(aWarning.size() != 0){ -- 2.39.2