-// Copyright (C) 2014-2019 CEA/DEN, EDF R&D
+// Copyright (C) 2014-2023 CEA, EDF
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
#include <XGUI_DataModel.h>
#include <XGUI_OperationMgr.h>
#include <XGUI_ObjectsBrowser.h>
+#include <XGUI_Tools.h>
#include <XGUI_ViewerProxy.h>
#include <Events_Loop.h>
// Find coincident in these coordinates
ObjectPtr aObj = aPrsList.first()->object();
- FeaturePtr aFeature = ModelAPI_Feature::feature(aObj);
- FeaturePtr aCoincident = PartSet_Tools::findFirstCoincidence(aFeature, aSelPnt);
+ FeaturePtr aCoincident =
+ PartSet_Tools::findFirstCoincidence(ModelAPI_Feature::feature(aObj), aSelPnt);
// If we have coincidence then add Detach menu
if (aCoincident.get() != NULL) {
QList<FeaturePtr> aCoins;
theMenuActions[anIndex++] = aSubMenu->menuAction();
QAction* aAction;
int i = 0;
- foreach (FeaturePtr aCoins, myCoinsideLines) {
- QString anItemText = aCoins->data()->name().c_str();
+ foreach (FeaturePtr aCoinsL, myCoinsideLines) {
+ QString anItemText = QString::fromStdWString(aCoinsL->data()->name());
#ifdef _DEBUG
if (anIsAttributes[i])
anItemText += " [attribute]";
std::shared_ptr<GeomAPI_Pnt2d> aPnt = PartSet_Tools::getCoincedencePoint(aConstrFeature);
if (aPnt.get() == NULL)
return;
- gp_Pnt aP = aPnt->impl<gp_Pnt>();
if (theRefPnt->isEqual(aPnt) && (!theOutList.contains(aConstrFeature))) {
theOutList.append(aConstrFeature);
}
if (aToDelFeatures.size() > 0) {
XGUI_ModuleConnector* aConnector = dynamic_cast<XGUI_ModuleConnector*>(myModule->workshop());
XGUI_Workshop* aWorkshop = aConnector->workshop();
- ModuleBase_Operation* anOperation = myModule->workshop()->currentOperation();
- ModuleBase_Operation* anOpAction =
- new ModuleBase_Operation(tr("Detach %1").arg(aLine->data()->name().c_str()), myModule);
- bool isSketchOp = PartSet_SketcherMgr::isSketchOperation(anOperation);
+ ModuleBase_Operation* anOpAction = new ModuleBase_Operation(tr("Detach %1").arg(
+ QString::fromStdWString(aLine->data()->name())), myModule);
XGUI_OperationMgr* anOpMgr = aConnector->workshop()->operationMgr();
// the active nested sketch operation should be aborted unconditionally
// the Delete action should be additionally granted for the Sketch operation
XGUI_OperationMgr* anOpMgr = aConnector->workshop()->operationMgr();
if (isUseTransaction) {
anOpAction = new ModuleBase_Operation(anAction->text(), myModule);
- bool isSketchOp = PartSet_SketcherMgr::isSketchOperation(anOperation);
bool isCommitted;
if (!anOpMgr->canStartOperation(anOpAction->id(), isCommitted))
void PartSet_MenuMgr::activatePart(ResultPartPtr thePart) const
{
bool isFirstLoad = !thePart->partDoc().get();
+ ModuleBase_Tools::blockUpdateViewer(true);
thePart->activate();
if (isFirstLoad) {
XGUI_Workshop* aWorkshop = myModule->getWorkshop();
XGUI_ObjectsBrowser* aObjBrowser = aWorkshop->objectBrowser();
+ ModuleBase_Tools::setDisplaying(thePart);
+ Events_Loop::loop()->flush(Events_Loop::eventByName(EVENT_OBJECT_TO_REDISPLAY));
+ aObjBrowser->onSelectionChanged();
DocumentPtr aDoc = thePart->partDoc();
std::list<bool> aStates;
aDoc->restoreNodesState(aStates);
aObjBrowser->setStateForDoc(aDoc, aStates);
}
+ ModuleBase_Tools::blockUpdateViewer(false);
}
void PartSet_MenuMgr::onActivateAllParts()
DocumentPtr aDoc = aMgr->moduleDocument();
int aNbParts = aDoc->size(ModelAPI_ResultPart::group());
- bool isActivated = false;
QList<ResultPartPtr> aPartsToLoad;
for (int i = 0; i < aNbParts; i++) {
ObjectPtr aObj = aDoc->object(ModelAPI_ResultPart::group(), i);