new PartSet_IconFactory();
mySketchMgr = new PartSet_SketcherMgr(this);
-#ifdef ModuleDataModel
- myDataModel = new PartSet_DocumentDataModel(this);
-#endif
XGUI_ModuleConnector* aConnector = dynamic_cast<XGUI_ModuleConnector*>(theWshop);
XGUI_Workshop* aWorkshop = aConnector->workshop();
mySketchMgr->stopNestedSketch(theOperation);
}
- if (isModified) {
- XGUI_ModuleConnector* aConnector = dynamic_cast<XGUI_ModuleConnector*>(myWorkshop);
- XGUI_Displayer* aDisplayer = aConnector->workshop()->displayer();
- aDisplayer->updateViewer();
- }
+ //VSV: Viewer is updated on feature update and redisplay
+ //if (isModified) {
+ // XGUI_ModuleConnector* aConnector = dynamic_cast<XGUI_ModuleConnector*>(myWorkshop);
+ // XGUI_Displayer* aDisplayer = aConnector->workshop()->displayer();
+ // aDisplayer->updateViewer();
+ //}
mySketchMgr->onShowConstraintsToggle(myHasConstraintShown);
}
aOB->treeView()->setExpandsOnDoubleClick(false);
connect(aOB->treeView(), SIGNAL(doubleClicked(const QModelIndex&)),
SLOT(onTreeViewDoubleClick(const QModelIndex&)));
-#ifdef ModuleDataModel
- connect(aOB, SIGNAL(headerMouseDblClicked(const QModelIndex&)),
- SLOT(onTreeViewDoubleClick(const QModelIndex&)));
- connect(aOB->treeView(), SIGNAL(doubleClicked(const QModelIndex&)),
- myDataModel, SLOT(onMouseDoubleClick(const QModelIndex&)));
-#endif
}
}
SessionPtr aMgr = ModelAPI_Session::get();
QAction* aActivatePartAction = myMenuMgr->action("ACTIVATE_PART_CMD");
QAction* aActivatePartSetAction = myMenuMgr->action("ACTIVATE_PARTSET_CMD");
+
+ ModuleBase_Operation* aCurrentOp = myWorkshop->currentOperation();
if (aSelected == 1) {
bool hasResult = false;
bool hasFeature = false;
ObjectPtr aObject = aObjects.first();
if (aObject) {
ResultPartPtr aPart = std::dynamic_pointer_cast<ModelAPI_ResultPart>(aObject);
- FeaturePtr aPartFeature = std::dynamic_pointer_cast<ModelAPI_Feature>(aObject);
+ FeaturePtr aFeature = std::dynamic_pointer_cast<ModelAPI_Feature>(aObject);
bool isPart = aPart.get() ||
- (aPartFeature.get() && (aPartFeature->getKind() == PartSetPlugin_Part::ID()));
+ (aFeature.get() && (aFeature->getKind() == PartSetPlugin_Part::ID()));
if (isPart) {
DocumentPtr aPartDoc;
if (!aPart.get()) {
- aPart = std::dynamic_pointer_cast<ModelAPI_ResultPart>(aPartFeature->firstResult());
+ aPart = std::dynamic_pointer_cast<ModelAPI_ResultPart>(aFeature->firstResult());
}
if (aPart.get()) // this may be null is Part feature is disabled
aPartDoc = aPart->partDoc();
aActivatePartAction->setEnabled((aMgr->activeDocument() != aPartDoc));
} else if (aObject->document() == aMgr->activeDocument()) {
- if (hasParameter || hasFeature)
+ if (hasParameter || hasFeature) {
+ myMenuMgr->action("EDIT_CMD")->setEnabled(true);
theMenu->addAction(myMenuMgr->action("EDIT_CMD"));
+ if (aCurrentOp && aFeature.get()) {
+ if (aCurrentOp->id().toStdString() == aFeature->getKind())
+ myMenuMgr->action("EDIT_CMD")->setEnabled(false);
+ }
+ }
}
ResultBodyPtr aResult = std::dynamic_pointer_cast<ModelAPI_ResultBody>(aObject);
theMenu->addAction(aActivatePartSetAction);
aActivatePartSetAction->setEnabled((aMgr->activeDocument() != aMgr->moduleDocument()));
}
- bool aNotDeactivate = (myWorkshop->currentOperation() == 0);
+ bool aNotDeactivate = (aCurrentOp == 0);
if (!aNotDeactivate) {
aActivatePartAction->setEnabled(false);
aActivatePartSetAction->setEnabled(false);
SessionPtr aMgr = ModelAPI_Session::get();
DocumentPtr aActiveDoc = aMgr->activeDocument();
-#ifdef ModuleDataModel
- QModelIndex aOldIndex = myDataModel->activePartTree();
- DocumentPtr aDoc = aMgr->moduleDocument();
- if (aActiveDoc == aDoc) {
- if (aOldIndex.isValid())
- aTreeView->setExpanded(aOldIndex, false);
- myDataModel->deactivatePart();
- aPalet.setColor(QPalette::Text, QColor(0, 72, 140));
- } else {
- std::string aGrpName = ModelAPI_ResultPart::group();
- for (int i = 0; i < aDoc->size(aGrpName); i++) {
- ResultPartPtr aPart = std::dynamic_pointer_cast<ModelAPI_ResultPart>(aDoc->object(aGrpName, i));
- if (aPart->partDoc() == aActiveDoc) {
- QModelIndex aIndex = myDataModel->partIndex(aPart);
- if (myDataModel->activatePart(aIndex)) {
- if (aOldIndex.isValid())
- aTreeView->setExpanded(aOldIndex, false);
- aTreeView->setExpanded(myDataModel->activePartTree(), true);
- aPalet.setColor(QPalette::Text, Qt::black);
- }
- break;
- }
- }
- }
-#else
- // Problem with MPV: At first time on creation it doesn't work because Part feature
- // creation event will be sent after
if (aActivePartIndex.isValid())
aTreeView->setExpanded(aActivePartIndex, false);
XGUI_DataModel* aDataModel = aWorkshop->objectBrowser()->dataModel();
aActivePartIndex = aDataModel->documentRootIndex(aActiveDoc);
if (aActivePartIndex.isValid())
aTreeView->setExpanded(aActivePartIndex, true);
-#endif
+
aLabel->setPalette(aPalet);
aWorkshop->updateCommandStatus();
// Update displayed objects in order to update active color
XGUI_Displayer* aDisplayer = aWorkshop->displayer();
QObjectPtrList aObjects = aDisplayer->displayedObjects();
- foreach(ObjectPtr aObj, aObjects)
- aDisplayer->redisplay(aObj, false);
+ bool aHidden;
+ foreach(ObjectPtr aObj, aObjects) {
+ //TODO: replace by redisplay event.
+ aHidden = !aObj->data() || !aObj->data()->isValid() ||
+ aObj->isDisabled() || (!aObj->isDisplayed());
+ if (!aHidden)
+ aDisplayer->redisplay(aObj, false);
+ }
aDisplayer->updateViewer();
}
}
}
if (theIndex.column() != 0) // Use only first column
return;
-#ifdef ModuleDataModel
- ObjectPtr aObj = myDataModel->object(theIndex);
-#else
+
XGUI_ModuleConnector* aConnector = dynamic_cast<XGUI_ModuleConnector*>(myWorkshop);
XGUI_Workshop* aWorkshop = aConnector->workshop();
XGUI_DataModel* aDataModel = aWorkshop->objectBrowser()->dataModel();
if ((aDataModel->flags(theIndex) & Qt::ItemIsSelectable) == 0)
return;
ObjectPtr aObj = aDataModel->object(theIndex);
-#endif
ResultPartPtr aPart = std::dynamic_pointer_cast<ModelAPI_ResultPart>(aObj);
if (!aPart.get()) { // Probably this is Feature