From eedc671e8a6e5dda61a69236f1029877e6ed02ef Mon Sep 17 00:00:00 2001 From: mpv Date: Tue, 24 Nov 2020 14:46:37 +0300 Subject: [PATCH] Porting to OCCT 7.5.0 and minor improvements/bugfixes. --- src/FeaturesPlugin/doc/images/Split_panel.png | Bin 0 -> 10886 bytes src/FeaturesPlugin/doc/splitFeature.rst | 2 +- src/Model/Model_AttributeRefList.cpp | 4 +++- src/Model/Model_Document.cpp | 5 +++++ src/Model/Model_Update.cpp | 15 ++------------- src/XGUI/XGUI_ContextMenuMgr.cpp | 4 ++++ 6 files changed, 15 insertions(+), 15 deletions(-) create mode 100644 src/FeaturesPlugin/doc/images/Split_panel.png diff --git a/src/FeaturesPlugin/doc/images/Split_panel.png b/src/FeaturesPlugin/doc/images/Split_panel.png new file mode 100644 index 0000000000000000000000000000000000000000..7673ef4a3000d58972f4becabda5b5120d7b0b3a GIT binary patch literal 10886 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.Value()); + TDF_Label aLab = theLIter.Value(); + if (!aLab.IsNull()) + anObj = theDoc->objects()->object(theLIter.Value()); } } return anObj; diff --git a/src/Model/Model_Document.cpp b/src/Model/Model_Document.cpp index 6046533ab..03d5a423b 100644 --- a/src/Model/Model_Document.cpp +++ b/src/Model/Model_Document.cpp @@ -317,6 +317,8 @@ bool Model_Document::load(const char* theDirName, const char* theFileName, Docum std::shared_ptr aSession = std::dynamic_pointer_cast(Model_Session::get()); if (isOk) { + // keep handle to avoid destruction of the document until myObjs works on it + Handle(TDocStd_Document) anOldDoc = myDoc; myDoc = aLoaded; myDoc->SetUndoLimit(UNDO_LIMIT); @@ -325,6 +327,7 @@ bool Model_Document::load(const char* theDirName, const char* theFileName, Docum aSession->setCheckTransactions(false); if (myObjs) delete myObjs; + anOldDoc.Nullify(); myObjs = new Model_Objects(myDoc->Main()); // synchronization is inside myObjs->setOwner(theThis); // update the current features status @@ -2309,6 +2312,8 @@ void Model_Document::appendTransactionToPrevious() { Transaction anAppended = myTransactions.back(); myTransactions.pop_back(); + if (!myNestedNum.empty()) + (*myNestedNum.rbegin())--; if (!myTransactions.empty()) { // if it is empty, just forget the appended myTransactions.back().myOCAFNum += anAppended.myOCAFNum; } diff --git a/src/Model/Model_Update.cpp b/src/Model/Model_Update.cpp index 9127a9915..79751881e 100644 --- a/src/Model/Model_Update.cpp +++ b/src/Model/Model_Update.cpp @@ -346,18 +346,6 @@ void Model_Update::processEvent(const std::shared_ptr& theMessag if (anUpdated.get()) { if (addModified(anUpdated, FeaturePtr())) aSomeModified = true; - if (myUpdateBlocked) { // execute this feature anyway to show the current result - /*if (!anUpdated->isStable() && anUpdated->results().size() && ( - anUpdated->firstResult()->groupName() == ModelAPI_ResultBody::group() || - anUpdated->firstResult()->groupName() == ModelAPI_ResultPart::group())) { - if (aFactory->validate(anUpdated)) { - executeFeature(anUpdated); - redisplayWithResults(anUpdated, ModelAPI_StateNothing, false); - static Events_ID EVENT_DISP = aLoop->eventByName(EVENT_OBJECT_TO_REDISPLAY); - aLoop->flush(EVENT_DISP); - } - }*/ - } } else { // process the updated result as update of features that refers to this result const std::set >& @@ -735,7 +723,8 @@ bool Model_Update::processFeature(FeaturePtr theFeature) if (!isPostponedMain) { bool aDoExecute = true; if (myUpdateBlocked) { - if (!theFeature->isStable()) { + if (!theFeature->isStable() || (theFeature->getKind().size() > 6 && + theFeature->getKind().substr(0, 6) == "Sketch")) { // automatic update sketch elements aDoExecute = true; } else if (theFeature->results().size()) { // execute only not persistent results features aDoExecute = !theFeature->isPersistentResult(); diff --git a/src/XGUI/XGUI_ContextMenuMgr.cpp b/src/XGUI/XGUI_ContextMenuMgr.cpp index d5b9bf15a..03fc180a8 100644 --- a/src/XGUI/XGUI_ContextMenuMgr.cpp +++ b/src/XGUI/XGUI_ContextMenuMgr.cpp @@ -97,6 +97,7 @@ void XGUI_ContextMenuMgr::createActions() aAction->setShortcut(Qt::Key_F2); addAction("RENAME_CMD", aAction); +#ifdef HAVE_SALOME aAction = ModuleBase_Tools::createAction(QIcon(":pictures/move_to_end.png"), XGUI_Workshop::MOVE_TO_END_COMMAND, this); addAction("MOVE_CMD", aAction); @@ -104,6 +105,7 @@ void XGUI_ContextMenuMgr::createActions() aAction = ModuleBase_Tools::createAction(QIcon(":pictures/move_to_end_split.png"), XGUI_Workshop::MOVE_TO_END_SPLIT_COMMAND, this); addAction("MOVE_SPLIT_CMD", aAction); +#endif aAction = ModuleBase_Tools::createAction(QIcon(":pictures/clean_history.png"), tr("Clean history"), aDesktop); @@ -344,10 +346,12 @@ void XGUI_ContextMenuMgr::updateObjectBrowserMenu() if (!(hasParameter || hasFeature)) action("SHOW_ONLY_CMD")->setEnabled(true); } +#ifdef HAVE_SALOME else if (hasFeature && myWorkshop->canMoveFeature()) { action("MOVE_CMD")->setEnabled(true); action("MOVE_SPLIT_CMD")->setEnabled(true); } +#endif if( aMgr->activeDocument() == aObject->document() ) { -- 2.30.2