X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModel%2FModel_Application.cpp;h=e6170af5c12bee586e13fab20b10fce79a011b5a;hb=a5b5396519d8a09dbb34325fa0eca7de18732c84;hp=50fa75c0478896d638676807d39ea928d8dad73b;hpb=0a909334d2b82cfcf3f9cb60d0719b81db86c005;p=modules%2Fshaper.git diff --git a/src/Model/Model_Application.cpp b/src/Model/Model_Application.cpp index 50fa75c04..e6170af5c 100644 --- a/src/Model/Model_Application.cpp +++ b/src/Model/Model_Application.cpp @@ -116,9 +116,9 @@ const std::string& Model_Application::loadPath() const } //======================================================================= -void Model_Application::setLoadByDemand(std::string theID) +void Model_Application::setLoadByDemand(std::string theID, const int theDocID) { - myLoadedByDemand.insert(theID); + myLoadedByDemand[theID] = theDocID; } //======================================================================= @@ -150,8 +150,21 @@ void Model_Application::removeUselessDocuments( int Model_Application::generateDocumentId() { - int aResult = int(myDocs.size()); - for(; myDocs.find(aResult) != myDocs.end(); aResult++) {} // count until the result id is unique + int aResult; + // count until the result id is unique + for(aResult = int(myDocs.size()); true; aResult++) { + if (myDocs.find(aResult) == myDocs.end()) { + bool aFound = false; + std::map::iterator aLBDIter = myLoadedByDemand.begin(); + for(; aLBDIter != myLoadedByDemand.end(); aLBDIter++) { + if (aLBDIter->second == aResult) { + aFound = true; + break; + } + } + if (!aFound) break; + } + } return aResult; }