X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_Workshop.cpp;h=60fe451c633c6b168decae34a3bbc01adfe89891;hb=5544702339b340e6e612420ecbab44a033828d87;hp=f8a81b03f701a6753fbb71fbde764f8fbfa7109e;hpb=24f9658d6e124a268c6a3abcf24f07aa2dc6d268;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_Workshop.cpp b/src/XGUI/XGUI_Workshop.cpp index f8a81b03f..60fe451c6 100755 --- a/src/XGUI/XGUI_Workshop.cpp +++ b/src/XGUI/XGUI_Workshop.cpp @@ -163,11 +163,10 @@ XGUI_Workshop::XGUI_Workshop(XGUI_SalomeConnector* theConnector) SLOT(onOperationCommitted(ModuleBase_Operation*))); connect(myOperationMgr, SIGNAL(operationAborted(ModuleBase_Operation*)), SLOT(onOperationAborted(ModuleBase_Operation*))); - //connect(myOperationMgr, SIGNAL(validationStateChanged(bool)), - // myErrorMgr, SLOT(onValidationStateChanged())); #ifndef HAVE_SALOME connect(myMainWindow, SIGNAL(exitKeySequence()), SLOT(onExit())); + onTrihedronVisibilityChanged(true); #endif connect(this, SIGNAL(errorOccurred(const QString&)), myErrorDlg, SLOT(addError(const QString&))); @@ -218,6 +217,10 @@ void XGUI_Workshop::startApplication() onNew(); + myViewerProxy->connectViewProxy(); + connect(myViewerProxy, SIGNAL(trihedronVisibilityChanged(bool)), + SLOT(onTrihedronVisibilityChanged(bool))); + emit applicationStarted(); } @@ -396,21 +399,6 @@ void XGUI_Workshop::onAcceptActionClicked() } } -//****************************************************** -/*void XGUI_Workshop::onValidationStateChanged(bool theEnabled) -{ - XGUI_OperationMgr* anOperationMgr = operationMgr(); - if (anOperationMgr) { - ModuleBase_OperationFeature* aFOperation = dynamic_cast - (anOperationMgr->currentOperation()); - if (aFOperation) { - QAction* anAction = myActionsMgr->operationStateAction(XGUI_ActionsMgr::Accept); - myErrorMgr->updateActionState(anAction, aFOperation->feature(), theEnabled); - } - } -}*/ - - //****************************************************** void XGUI_Workshop::deactivateActiveObject(const ObjectPtr& theObject, const bool theUpdateViewer) { @@ -748,6 +736,14 @@ void XGUI_Workshop::onPreferences() } #endif +//****************************************************** +void XGUI_Workshop::onTrihedronVisibilityChanged(bool theState) +{ + XGUI_Displayer* aDisplayer = displayer(); + if (aDisplayer) + aDisplayer->displayTrihedron(theState); +} + //****************************************************** bool XGUI_Workshop::onSave() { @@ -1062,8 +1058,6 @@ void XGUI_Workshop::createDockWidgets() connect(myPropertyPanel, SIGNAL(enterClicked()), myOperationMgr, SLOT(onProcessEnter())); - //connect(myOperationMgr, SIGNAL(validationStateChanged(bool)), - // this, SLOT(onValidationStateChanged(bool))); } //****************************************************** @@ -1079,8 +1073,8 @@ void XGUI_Workshop::showPropertyPanel() // in order to operation manager could process key events of the panel. // otherwise they are ignored. It happens only if the same(activateWindow) is // not happened by property panel activation(e.g. resume operation of Sketch) - myPropertyPanel->activateWindow(); - myPropertyPanel->setFocus(); + ModuleBase_Tools::activateWindow(myPropertyPanel, "XGUI_Workshop::showPropertyPanel()"); + ModuleBase_Tools::setFocus(myPropertyPanel, "XGUI_Workshop::showPropertyPanel()"); } //****************************************************** @@ -1099,8 +1093,8 @@ void XGUI_Workshop::hidePropertyPanel() // are processed by this console. For example Undo actions. // It is possible that this code is to be moved to NewGeom package QMainWindow* aDesktop = desktop(); - aDesktop->activateWindow(); - aDesktop->setFocus(); + ModuleBase_Tools::activateWindow(aDesktop, "XGUI_Workshop::hidePropertyPanel()"); + ModuleBase_Tools::setFocus(aDesktop, "XGUI_Workshop::showPropertyPanel()"); } //****************************************************** @@ -1137,12 +1131,16 @@ void XGUI_Workshop::onContextMenuCommand(const QString& theId, bool isChecked) moveObjects(); else if (theId == "COLOR_CMD") changeColor(aObjects); - else if (theId == "SHOW_CMD") + else if (theId == "SHOW_CMD") { showObjects(aObjects, true); + mySelector->updateSelectionBy(ModuleBase_ISelection::Browser); + } else if (theId == "HIDE_CMD") showObjects(aObjects, false); - else if (theId == "SHOW_ONLY_CMD") + else if (theId == "SHOW_ONLY_CMD") { showOnlyObjects(aObjects); + mySelector->updateSelectionBy(ModuleBase_ISelection::Browser); + } else if (theId == "SHADING_CMD") setDisplayMode(aObjects, XGUI_Displayer::Shading); else if (theId == "WIREFRAME_CMD") @@ -1360,9 +1358,6 @@ bool XGUI_Workshop::deleteFeatures(const QObjectPtrList& theList, if (!anObjectGroups.contains(aGroupName.c_str())) continue; - if (!myModule->canApplyAction(aObj, anActionId)) - continue; - FeaturePtr aFeature = ModelAPI_Feature::feature(aObj); if (aFeature) { /*// TODO: to learn the workshop to delegate the Part object deletion to the PartSet module