+ 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);
+ aDisplayer->updateViewer();
+ }
+}
+
+void PartSet_Module::onTreeViewDoubleClick(const QModelIndex& theIndex)
+{
+ if (myWorkshop->currentOperation()) // Do not change activation of parts if an operation active
+ return;
+ SessionPtr aMgr = ModelAPI_Session::get();
+ if (!theIndex.isValid()) {
+ aMgr->setActiveDocument(aMgr->moduleDocument());
+ return;
+ }
+ if (theIndex.column() != 0) // Use only first column
+ return;
+ ObjectPtr aObj = myDataModel->object(theIndex);
+ ResultPartPtr aPart = std::dynamic_pointer_cast<ModelAPI_ResultPart>(aObj);
+ if (!aPart.get()) { // Probably this is Feature
+ FeaturePtr aPartFeature = std::dynamic_pointer_cast<ModelAPI_Feature>(aObj);
+ if (aPartFeature.get() && (aPartFeature->getKind() == PartSetPlugin_Part::ID())) {
+ aPart = std::dynamic_pointer_cast<ModelAPI_ResultPart>(aPartFeature->firstResult());
+ }
+ }
+ if (aPart.get()) { // if this is a part
+ if (aPart->partDoc() == aMgr->activeDocument()) {
+ aMgr->setActiveDocument(aMgr->moduleDocument());
+ } else {
+ aPart->activate();
+ }