X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_ContextMenuMgr.cpp;h=7e99ec5ee894d4102344ff9f2fb281ab38034512;hb=50a8df0c6a66da8067b16155e5ae39f8f26a7ebc;hp=60db4013ccbd13c7982158734a7c1c0743faff2f;hpb=584f97832c77adf0c9df154b2f3eb1835bd3ce9e;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_ContextMenuMgr.cpp b/src/XGUI/XGUI_ContextMenuMgr.cpp index 60db4013c..7e99ec5ee 100644 --- a/src/XGUI/XGUI_ContextMenuMgr.cpp +++ b/src/XGUI/XGUI_ContextMenuMgr.cpp @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2019 CEA/DEN, EDF R&D +// Copyright (C) 2014-2020 CEA/DEN, EDF R&D // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -96,10 +96,14 @@ void XGUI_ContextMenuMgr::createActions() aDesktop, this, SLOT(onRename())); addAction("RENAME_CMD", aAction); - aAction = ModuleBase_Tools::createAction(QIcon(":pictures/move.png"), + aAction = ModuleBase_Tools::createAction(QIcon(":pictures/move_to_end.png"), XGUI_Workshop::MOVE_TO_END_COMMAND, this); addAction("MOVE_CMD", aAction); + aAction = ModuleBase_Tools::createAction(QIcon(":pictures/move_to_end_split.png"), + XGUI_Workshop::MOVE_TO_END_SPLIT_COMMAND, this); + addAction("MOVE_SPLIT_CMD", aAction); + aAction = ModuleBase_Tools::createAction(QIcon(":pictures/clean_history.png"), tr("Clean history"), aDesktop); addAction("CLEAN_HISTORY_CMD", aAction); @@ -136,6 +140,14 @@ void XGUI_ContextMenuMgr::createActions() aDesktop); addAction("WIREFRAME_CMD", aAction); + aAction = ModuleBase_Tools::createAction(QIcon(":pictures/iso_lines.png"), tr("Define Isos..."), + aDesktop); + addAction("ISOLINES_CMD", aAction); + + aAction = ModuleBase_Tools::createAction(QIcon(), tr("Show Isos"), aDesktop); + aAction->setCheckable(true); + addAction("SHOW_ISOLINES_CMD", aAction); + mySeparator1 = ModuleBase_Tools::createAction(QIcon(), "", aDesktop); mySeparator1->setSeparator(true); @@ -298,6 +310,9 @@ void XGUI_ContextMenuMgr::updateObjectBrowserMenu() //Process Feature if (aSelected == 1) { // single selection ObjectPtr aObject = aObjects.first(); + ResultPtr aResult; + if (hasResult) + aResult = std::dynamic_pointer_cast(aObject); if (aObject) { if (hasResult && myWorkshop->canBeShaded(aObject)) { XGUI_Displayer::DisplayMode aMode = aDisplayer->displayMode(aObject); @@ -308,10 +323,12 @@ void XGUI_ContextMenuMgr::updateObjectBrowserMenu() action("WIREFRAME_CMD")->setEnabled(true); action("SHADING_CMD")->setEnabled(true); } + action("SHOW_ISOLINES_CMD")->setEnabled(true); + action("SHOW_ISOLINES_CMD")->setChecked(ModelAPI_Tools::isShownIsoLines(aResult)); + action("ISOLINES_CMD")->setEnabled(true); } if (!hasFeature) { - bool aHasSubResults = ModelAPI_Tools::hasSubResults( - std::dynamic_pointer_cast(aObject)); + bool aHasSubResults = ModelAPI_Tools::hasSubResults(aResult); if (aHasSubResults) { action("HIDE_CMD")->setEnabled(true); action("SHOW_CMD")->setEnabled(true); @@ -326,8 +343,10 @@ void XGUI_ContextMenuMgr::updateObjectBrowserMenu() if (!(hasParameter || hasFeature)) action("SHOW_ONLY_CMD")->setEnabled(true); } - else if (hasFeature && myWorkshop->canMoveFeature()) + else if (hasFeature && myWorkshop->canMoveFeature()) { action("MOVE_CMD")->setEnabled(true); + action("MOVE_SPLIT_CMD")->setEnabled(true); + } if( aMgr->activeDocument() == aObject->document() ) { @@ -346,9 +365,13 @@ void XGUI_ContextMenuMgr::updateObjectBrowserMenu() action("SHOW_ONLY_CMD")->setEnabled(true); action("SHADING_CMD")->setEnabled(true); action("WIREFRAME_CMD")->setEnabled(true); + action("SHOW_ISOLINES_CMD")->setEnabled(true); + action("ISOLINES_CMD")->setEnabled(true); } - if (hasFeature && myWorkshop->canMoveFeature()) + if (hasFeature && myWorkshop->canMoveFeature()) { action("MOVE_CMD")->setEnabled(true); + action("MOVE_SPLIT_CMD")->setEnabled(true); + } } // end multi-selection // Check folder management commands state if only features are selected @@ -533,6 +556,15 @@ void XGUI_ContextMenuMgr::updateViewerMenu() action("WIREFRAME_CMD")->setEnabled(true); action("SHADING_CMD")->setEnabled(true); } + action("ISOLINES_CMD")->setEnabled(true); + + if (aPrsList.size() == 1) { + ResultPtr aResult = std::dynamic_pointer_cast(aObject); + if (aResult.get()) { + action("SHOW_ISOLINES_CMD")->setEnabled(true); + action("SHOW_ISOLINES_CMD")->setChecked(ModelAPI_Tools::isShownIsoLines(aResult)); + } + } } action("SHOW_ONLY_CMD")->setEnabled(true); action("HIDE_CMD")->setEnabled(true); @@ -647,6 +679,8 @@ void XGUI_ContextMenuMgr::buildObjBrowserMenu() aList.append(action("COLOR_CMD")); aList.append(action("DEFLECTION_CMD")); aList.append(action("TRANSPARENCY_CMD")); + aList.append(action("SHOW_ISOLINES_CMD")); + aList.append(action("ISOLINES_CMD")); aList.append(action("SHOW_FEATURE_CMD")); aList.append(mySeparator3); aList.append(action("DELETE_CMD")); @@ -662,6 +696,7 @@ void XGUI_ContextMenuMgr::buildObjBrowserMenu() aList.append(action("RENAME_CMD")); aList.append(action("SHOW_RESULTS_CMD")); aList.append(action("MOVE_CMD")); + aList.append(action("MOVE_SPLIT_CMD")); aList.append(mySeparator1); aList.append(action("INSERT_FOLDER_CMD")); aList.append(action("ADD_TO_FOLDER_BEFORE_CMD")); @@ -721,6 +756,8 @@ void XGUI_ContextMenuMgr::buildViewerMenu() aList.append(action("COLOR_CMD")); aList.append(action("DEFLECTION_CMD")); aList.append(action("TRANSPARENCY_CMD")); + aList.append(action("SHOW_ISOLINES_CMD")); + aList.append(action("ISOLINES_CMD")); aList.append(mySeparator3); aList.append(action("SET_VIEW_NORMAL_CMD")); aList.append(action("SET_VIEW_INVERTEDNORMAL_CMD")); @@ -770,9 +807,12 @@ void XGUI_ContextMenuMgr::addObjBrowserMenu(QMenu* theMenu) const aActions.append(action("ADD_OUT_FOLDER_AFTER_CMD")); aActions.append(mySeparator3); aActions.append(action("MOVE_CMD")); + aActions.append(action("MOVE_SPLIT_CMD")); aActions.append(action("COLOR_CMD")); aActions.append(action("DEFLECTION_CMD")); aActions.append(action("TRANSPARENCY_CMD")); + aActions.append(action("SHOW_ISOLINES_CMD")); + aActions.append(action("ISOLINES_CMD")); aActions.append(action("CLEAN_HISTORY_CMD")); aActions.append(action("DELETE_CMD")); }