X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FModelHighAPI%2FModelHighAPI_Services.cpp;h=4bcd182fd39aba1b627f090220c47713cd857ac0;hb=c6745a6b1ad00c0285fab5aeac2cb0d57afef5cc;hp=98f7aff84a47776b899e98ace3ca43a7e521f335;hpb=d63aa3e66ea4f15430a40d80d9ecd0c87b557e7e;p=modules%2Fshaper.git diff --git a/src/ModelHighAPI/ModelHighAPI_Services.cpp b/src/ModelHighAPI/ModelHighAPI_Services.cpp index 98f7aff84..4bcd182fd 100644 --- a/src/ModelHighAPI/ModelHighAPI_Services.cpp +++ b/src/ModelHighAPI/ModelHighAPI_Services.cpp @@ -98,9 +98,16 @@ std::shared_ptr standardPlane(const std::string & theName){ //-------------------------------------------------------------------------------------- void begin() { - static int aTransactionID = 0; + static size_t aTransactionID = 0; + static size_t aNbTransactions = -1; + size_t aNbUndo = ModelAPI_Session::get()->undoList().size(); + if (aNbUndo != aNbTransactions) { + // the last transaction was not empty, thus increase the ID + aNbTransactions = aNbUndo; + ++aTransactionID; + } std::ostringstream aTransactionName; - aTransactionName << "Operation_" << ++aTransactionID; + aTransactionName << "Operation_" << aTransactionID; ModelAPI_Session::get()->startOperation(aTransactionName.str()); } @@ -123,6 +130,7 @@ void apply() { auto aSession = ModelAPI_Session::get(); aSession->finishOperation(); + // start the next operation begin(); }