#include <ModelAPI_Events.h>
#include <cmath>
+#include <sstream>
//--------------------------------------------------------------------------------------
std::shared_ptr<ModelAPI_Document> moduleDocument()
//--------------------------------------------------------------------------------------
void begin()
{
- ModelAPI_Session::get()->startOperation();
+ 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;
+ ModelAPI_Session::get()->startOperation(aTransactionName.str());
}
void end()
{
auto aSession = ModelAPI_Session::get();
aSession->finishOperation();
- aSession->startOperation();
+ // start the next operation
+ begin();
}
void updateFeatures()