X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FExchangePlugin%2FExchangePlugin_Dump.cpp;h=d9effab930aee2af11c5e5845650d4fc76184be0;hb=b5893b0a30fac08134c24de4565cb513a43affa6;hp=5c5ee466594e0734d48c671311445f6ab8b444a5;hpb=5b6031b015602aa07f5a6fc668c13ac3faf7a8a9;p=modules%2Fshaper.git diff --git a/src/ExchangePlugin/ExchangePlugin_Dump.cpp b/src/ExchangePlugin/ExchangePlugin_Dump.cpp index 5c5ee4665..d9effab93 100644 --- a/src/ExchangePlugin/ExchangePlugin_Dump.cpp +++ b/src/ExchangePlugin/ExchangePlugin_Dump.cpp @@ -50,6 +50,27 @@ void ExchangePlugin_Dump::dump(const std::string& theFileName) aDumper->clear(); DocumentPtr aDoc = ModelAPI_Session::get()->moduleDocument(); + int aFeaturesNb = aDoc->size(ModelAPI_Feature::group()); + if(aFeaturesNb > 1) { + FeaturePtr aLastFeature = + ModelAPI_Feature::feature(aDoc->object(ModelAPI_Feature::group(), aFeaturesNb - 1)); + if(aDoc->currentFeature(true) != aLastFeature) { + setError("Dump cannot be done. Please move the history line to the end before dumping."); + return; + } + } + + DocumentPtr anActiveDoc = ModelAPI_Session::get()->activeDocument(); + aFeaturesNb = anActiveDoc->size(ModelAPI_Feature::group()); + if(aFeaturesNb > 1) { + FeaturePtr aLastFeature = + ModelAPI_Feature::feature(anActiveDoc->object(ModelAPI_Feature::group(), aFeaturesNb - 1)); + if(anActiveDoc->currentFeature(true) != aLastFeature) { + setError("Dump cannot be done. Please move the history line to the end before dumping."); + return; + } + } + std::list aFeatures = aDoc->allFeatures(); for(std::list::const_iterator aFeatIt = aFeatures.begin(); aFeatIt != aFeatures.end();