From b757df10d5fac2d10558b1d43035f9020023f11b Mon Sep 17 00:00:00 2001 From: vsr Date: Sun, 28 Feb 2010 19:53:08 +0000 Subject: [PATCH] Improve actions management Remove deprecated code --- src/BasicGUI/BasicGUI.cxx | 25 +- src/BasicGUI/Makefile.am | 14 +- src/BlocksGUI/BlocksGUI.cxx | 11 +- src/BooleanGUI/BooleanGUI.cxx | 23 +- src/BuildGUI/BuildGUI.cxx | 13 +- src/DisplayGUI/DisplayGUI.cxx | 109 +- src/EntityGUI/EntityGUI.cxx | 7 +- src/GEOMGUI/GEOM_images.ts | 4 + src/GEOMGUI/GEOM_msg_en.ts | 112 ++- src/GEOMGUI/GeometryGUI.cxx | 1389 +++++++++++--------------- src/GEOMGUI/GeometryGUI.h | 23 +- src/GEOMGUI/GeometryGUI_Operations.h | 162 +++ src/GEOMGUI/Makefile.am | 1 + 13 files changed, 950 insertions(+), 943 deletions(-) create mode 100644 src/GEOMGUI/GeometryGUI_Operations.h diff --git a/src/BasicGUI/BasicGUI.cxx b/src/BasicGUI/BasicGUI.cxx index ab7c09429..dc1733b3f 100644 --- a/src/BasicGUI/BasicGUI.cxx +++ b/src/BasicGUI/BasicGUI.cxx @@ -33,10 +33,10 @@ #include "BasicGUI_CurveDlg.h" // Method CURVE #include "BasicGUI_VectorDlg.h" // Method VECTOR #include "BasicGUI_PlaneDlg.h" // Method PLANE -#include "BasicGUI_WorkingPlaneDlg.h" // Method WORKING PLANE -#include "BasicGUI_MarkerDlg.h" // Method REPAIR +#include "BasicGUI_MarkerDlg.h" // Method LOCAL COORDINATE SYSTEM #include +#include "GeometryGUI_Operations.h" #include #include @@ -81,34 +81,31 @@ bool BasicGUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent ) QDialog* aDlg = NULL; switch ( theCommandID ) { - case 4011: // POINT + case GEOMOp::OpPoint: // POINT aDlg = new BasicGUI_PointDlg( getGeometryGUI(), parent ); break; - case 4012: // LINE + case GEOMOp::OpLine: // LINE aDlg = new BasicGUI_LineDlg( getGeometryGUI(), parent ); break; - case 4013: // CIRCLE + case GEOMOp::OpCircle: // CIRCLE aDlg = new BasicGUI_CircleDlg( getGeometryGUI(), parent ); break; - case 4014: // ELLIPSE + case GEOMOp::OpEllipse: // ELLIPSE aDlg = new BasicGUI_EllipseDlg( getGeometryGUI(), parent ); break; - case 4015: // ARC + case GEOMOp::OpArc: // ARC aDlg = new BasicGUI_ArcDlg( getGeometryGUI(), parent ); break ; - case 4016: // VECTOR + case GEOMOp::OpVector: // VECTOR aDlg = new BasicGUI_VectorDlg( getGeometryGUI(), parent ); break; - case 4017: // PLANE + case GEOMOp::OpPlane: // PLANE aDlg = new BasicGUI_PlaneDlg( getGeometryGUI(), parent ); break; -/* case 4018: // WORKING PLANE - aDlg = new BasicGUI_WorkingPlaneDlg( getGeometryGUI(), parent ); - break;*/ // DEPRECATED! - case 4019: // CURVE + case GEOMOp::OpCurve: // CURVE aDlg = new BasicGUI_CurveDlg( getGeometryGUI(), parent ); break; - case 4020: // REPAIR + case GEOMOp::OpLCS: // LOCAL COORDINATE SYSTEM aDlg = new BasicGUI_MarkerDlg( getGeometryGUI(), parent ); break; default: diff --git a/src/BasicGUI/Makefile.am b/src/BasicGUI/Makefile.am index e8e4a0733..f14136902 100644 --- a/src/BasicGUI/Makefile.am +++ b/src/BasicGUI/Makefile.am @@ -38,8 +38,10 @@ salomeinclude_HEADERS = \ BasicGUI_MarkerDlg.h \ BasicGUI_PlaneDlg.h \ BasicGUI_PointDlg.h \ - BasicGUI_VectorDlg.h \ - BasicGUI_WorkingPlaneDlg.h + BasicGUI_VectorDlg.h +# +# OBSOLETE: BasicGUI_WorkingPlaneDlg.h +# # Libraries targets @@ -55,9 +57,11 @@ dist_libBasicGUI_la_SOURCES = \ BasicGUI_ArcDlg.cxx \ BasicGUI_VectorDlg.cxx \ BasicGUI_PlaneDlg.cxx \ - BasicGUI_WorkingPlaneDlg.cxx \ BasicGUI_CurveDlg.cxx \ BasicGUI_MarkerDlg.cxx +# +# OBSOLETE: BasicGUI_WorkingPlaneDlg.cxx +# MOC_FILES = \ BasicGUI_PointDlg_moc.cxx \ @@ -67,9 +71,11 @@ MOC_FILES = \ BasicGUI_ArcDlg_moc.cxx \ BasicGUI_VectorDlg_moc.cxx \ BasicGUI_PlaneDlg_moc.cxx \ - BasicGUI_WorkingPlaneDlg_moc.cxx \ BasicGUI_CurveDlg_moc.cxx \ BasicGUI_MarkerDlg_moc.cxx +# +# OBSOLETE: BasicGUI_WorkingPlaneDlg_moc.cxx +# nodist_libBasicGUI_la_SOURCES = \ $(MOC_FILES) diff --git a/src/BlocksGUI/BlocksGUI.cxx b/src/BlocksGUI/BlocksGUI.cxx index 547510dc8..e01e2e259 100644 --- a/src/BlocksGUI/BlocksGUI.cxx +++ b/src/BlocksGUI/BlocksGUI.cxx @@ -32,6 +32,7 @@ #include "BlocksGUI_PropagateDlg.h" #include +#include "GeometryGUI_Operations.h" #include #include @@ -66,11 +67,11 @@ bool BlocksGUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent ) QDialog* aDlg = 0; switch ( theCommandID ) { - case 9999: aDlg = new BlocksGUI_BlockDlg ( getGeometryGUI(), parent ); break; - case 9998: aDlg = new BlocksGUI_TrsfDlg ( getGeometryGUI(), parent ); break; - case 9997: aDlg = new BlocksGUI_QuadFaceDlg ( getGeometryGUI(), parent ); break; - case 9995: aDlg = new BlocksGUI_ExplodeDlg ( getGeometryGUI(), parent ); break; - case 99991: aDlg = new BlocksGUI_PropagateDlg( getGeometryGUI(), parent ); break; + case GEOMOp::OpHexaSolid: aDlg = new BlocksGUI_BlockDlg ( getGeometryGUI(), parent ); break; + case GEOMOp::OpMultiTransform: aDlg = new BlocksGUI_TrsfDlg ( getGeometryGUI(), parent ); break; + case GEOMOp::OpQuadFace: aDlg = new BlocksGUI_QuadFaceDlg ( getGeometryGUI(), parent ); break; + case GEOMOp::OpExplodeBlock: aDlg = new BlocksGUI_ExplodeDlg ( getGeometryGUI(), parent ); break; + case GEOMOp::OpPropagate: aDlg = new BlocksGUI_PropagateDlg( getGeometryGUI(), parent ); break; default: getGeometryGUI()->getApp()->putInfo( tr( "GEOM_PRP_COMMAND" ).arg( theCommandID ) ); break; diff --git a/src/BooleanGUI/BooleanGUI.cxx b/src/BooleanGUI/BooleanGUI.cxx index c05c03462..bd262932b 100644 --- a/src/BooleanGUI/BooleanGUI.cxx +++ b/src/BooleanGUI/BooleanGUI.cxx @@ -27,6 +27,7 @@ #include "BooleanGUI_Dialog.h" #include +#include "GeometryGUI_Operations.h" #include //======================================================================= @@ -56,17 +57,19 @@ bool BooleanGUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent ) getGeometryGUI()->EmitSignalDeactivateDialog(); int anOperation = 0; - if ( theCommandID == 5011 ) - anOperation = FUSE; - else if ( theCommandID == 5012 ) - anOperation = COMMON; - else if ( theCommandID == 5013 ) - anOperation = CUT; - else if ( theCommandID == 5014 ) - anOperation = SECTION; - else + switch ( theCommandID ) { + case GEOMOp::OpFuse: + anOperation = FUSE; break; + case GEOMOp::OpCommon: + anOperation = COMMON; break; + case GEOMOp::OpCut: + anOperation = CUT; break; + case GEOMOp::OpSection: + anOperation = SECTION; break; + default: return false; - + } + QDialog* aDlg = new BooleanGUI_Dialog( anOperation, getGeometryGUI(), parent ); aDlg->show(); diff --git a/src/BuildGUI/BuildGUI.cxx b/src/BuildGUI/BuildGUI.cxx index 643cbf11a..768c0eacd 100644 --- a/src/BuildGUI/BuildGUI.cxx +++ b/src/BuildGUI/BuildGUI.cxx @@ -36,6 +36,7 @@ #include "BuildGUI_CompoundDlg.h" // Method COMPOUND #include +#include "GeometryGUI_Operations.h" //======================================================================= // function : BuildGUI() @@ -66,12 +67,12 @@ bool BuildGUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent ) QDialog* aDlg = 0; switch ( theCommandID ) { - case 4081: aDlg = new BuildGUI_EdgeDlg ( getGeometryGUI(), parent ); break; - case 4082: aDlg = new BuildGUI_WireDlg ( getGeometryGUI(), parent ); break; - case 4083: aDlg = new BuildGUI_FaceDlg ( getGeometryGUI(), parent ); break; - case 4084: aDlg = new BuildGUI_ShellDlg ( getGeometryGUI(), parent ); break; - case 4085: aDlg = new BuildGUI_SolidDlg ( getGeometryGUI(), parent ); break; - case 4086: aDlg = new BuildGUI_CompoundDlg( getGeometryGUI(), parent ); break; + case GEOMOp::OpEdge: aDlg = new BuildGUI_EdgeDlg ( getGeometryGUI(), parent ); break; + case GEOMOp::OpWire: aDlg = new BuildGUI_WireDlg ( getGeometryGUI(), parent ); break; + case GEOMOp::OpFace: aDlg = new BuildGUI_FaceDlg ( getGeometryGUI(), parent ); break; + case GEOMOp::OpShell: aDlg = new BuildGUI_ShellDlg ( getGeometryGUI(), parent ); break; + case GEOMOp::OpSolid: aDlg = new BuildGUI_SolidDlg ( getGeometryGUI(), parent ); break; + case GEOMOp::OpCompound: aDlg = new BuildGUI_CompoundDlg( getGeometryGUI(), parent ); break; default: getGeometryGUI()->getApp()->putInfo( tr( "GEOM_PRP_COMMAND" ).arg( theCommandID ) ); break; diff --git a/src/DisplayGUI/DisplayGUI.cxx b/src/DisplayGUI/DisplayGUI.cxx index c3238572b..3cca40244 100644 --- a/src/DisplayGUI/DisplayGUI.cxx +++ b/src/DisplayGUI/DisplayGUI.cxx @@ -25,6 +25,7 @@ // #include "DisplayGUI.h" #include +#include "GeometryGUI_Operations.h" #include #include #include @@ -89,73 +90,49 @@ bool DisplayGUI::OnGUIEvent(int theCommandID, SUIT_Desktop* parent) SALOME_ListIO selected; Sel->selectedObjects( selected ); - switch (theCommandID) { - case 211: // MENU VIEW - WIREFRAME/SHADING - { - InvertDisplayMode(); - int newMode = GetDisplayMode(); - getGeometryGUI()->action( 211 )->setText - ( newMode == 1 ? tr( "GEOM_MEN_WIREFRAME" ) : tr("GEOM_MEN_SHADING") ); - getGeometryGUI()->menuMgr()->update(); - break; - } - case 212: // MENU VIEW - DISPLAY ALL - { - getGeometryGUI()->EmitSignalDeactivateDialog(); - DisplayAll(); - break; - } - case 213: // MENU VIEW - DISPLAY ONLY - { - getGeometryGUI()->EmitSignalDeactivateDialog(); - DisplayOnly(); - break; - } - case 214: // MENU VIEW - ERASE ALL - { - EraseAll(); - break; - } - case 215: // MENU VIEW - ERASE - { - Erase(); - break; - } - case 216: // MENU VIEW - DISPLAY - { - getGeometryGUI()->EmitSignalDeactivateDialog(); - Display(); - break; - } - case 218: // MENU VIEW - VECTORS MODE - { - bool mode = GetVectorMode(); - SetVectorMode(!mode); - getGeometryGUI()->action( 218 )->setText - ( mode == false ? tr( "MEN_VECTOR_MODE_OFF" ) : tr("MEN_VECTOR_MODE_ON") ); - getGeometryGUI()->menuMgr()->update(); - break; - } - case 80311: // POPUP VIEWER - WIREFRAME - { - ChangeDisplayMode( 0 ); - break; - } - case 80312: // POPUP VIEWER - SHADING - { - ChangeDisplayMode( 1 ); - break; - } - case 80313: // POPUP VIEWER - VECTORS - { - ChangeDisplayMode( 2 ); - break; - } + switch ( theCommandID ) { + case GEOMOp::OpDisplayMode: // MENU VIEW - DISPLAY MODE - WIREFRAME/SHADING + InvertDisplayMode(); + getGeometryGUI()->action( GEOMOp::OpDisplayMode )->setText + ( GetDisplayMode() == 1 ? tr( "GEOM_MEN_WIREFRAME" ) : tr("GEOM_MEN_SHADING") ); + getGeometryGUI()->menuMgr()->update(); + break; + case GEOMOp::OpShowAll: // MENU VIEW - SHOW ALL + getGeometryGUI()->EmitSignalDeactivateDialog(); + DisplayAll(); + break; + case GEOMOp::OpShowOnly: // POPUP MENU - SHOW ONLY + getGeometryGUI()->EmitSignalDeactivateDialog(); + DisplayOnly(); + break; + case GEOMOp::OpHideAll: // MENU VIEW - HIDE ALL + EraseAll(); + break; + case GEOMOp::OpHide: // POPUP MENU - HIDE + Erase(); + break; + case GEOMOp::OpShow: // POPUP MENU - SHOW + getGeometryGUI()->EmitSignalDeactivateDialog(); + Display(); + break; + case GEOMOp::OpSwitchVectors: // MENU VIEW - DISPLAY MODE - SHOW EDGE DIRECTION + SetVectorMode(!GetVectorMode()); + getGeometryGUI()->action( GEOMOp::OpSwitchVectors )->setText + ( GetVectorMode() ? tr("MEN_VECTOR_MODE_ON") : tr( "MEN_VECTOR_MODE_OFF" ) ); + getGeometryGUI()->menuMgr()->update(); + break; + case GEOMOp::OpWireframe: // POPUP MENU - DISPLAY MODE - WIREFRAME + ChangeDisplayMode( 0 ); + break; + case GEOMOp::OpShading: // POPUP MENU - DISPLAY MODE - SHADING + ChangeDisplayMode( 1 ); + break; + case GEOMOp::OpVectors: // POPUP MENU - DISPLAY MODE - SHOW EDGE DIRECTION + ChangeDisplayMode( 2 ); + break; default: - { - app->putInfo(tr("GEOM_PRP_COMMAND").arg(theCommandID)); - break; - } + app->putInfo(tr("GEOM_PRP_COMMAND").arg(theCommandID)); + break; } Sel->setSelectedObjects( selected ); return true; diff --git a/src/EntityGUI/EntityGUI.cxx b/src/EntityGUI/EntityGUI.cxx index 5a03fc00f..4a34f70d9 100644 --- a/src/EntityGUI/EntityGUI.cxx +++ b/src/EntityGUI/EntityGUI.cxx @@ -26,6 +26,7 @@ #include "EntityGUI.h" #include +#include "GeometryGUI_Operations.h" #include #include @@ -72,14 +73,14 @@ bool EntityGUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent ) QDialog* aDlg = NULL; switch ( theCommandID ) { - case 404: // SKETCHER + case GEOMOp::Op2dSketcher: // 2D SKETCHER getGeometryGUI()->ActiveWorkingPlane(); aDlg = new EntityGUI_SketcherDlg( getGeometryGUI(), parent ); break; - case 405: // 3D SKETCHER + case GEOMOp::Op3dSketcher: // 3D SKETCHER aDlg = new EntityGUI_3DSketcherDlg( getGeometryGUI(), parent ); break; - case 407: // EXPLODE : use ic + case GEOMOp::OpExplode: // EXPLODE aDlg = new EntityGUI_SubShapeDlg( getGeometryGUI(), parent ); break; default: diff --git a/src/GEOMGUI/GEOM_images.ts b/src/GEOMGUI/GEOM_images.ts index 94257fbd4..89f126b3f 100644 --- a/src/GEOMGUI/GEOM_images.ts +++ b/src/GEOMGUI/GEOM_images.ts @@ -817,6 +817,10 @@ ICO_FACE build_face.png + + ICO_RECTANGLE + build_face.png + ICO_FACE_SEL_ONLY build_face.png diff --git a/src/GEOMGUI/GEOM_msg_en.ts b/src/GEOMGUI/GEOM_msg_en.ts index 3bf87669a..8ee02cf93 100644 --- a/src/GEOMGUI/GEOM_msg_en.ts +++ b/src/GEOMGUI/GEOM_msg_en.ts @@ -497,7 +497,7 @@ Please, select face, shell or solid and try again GEOM_DISK_TITLE - Create A Disk + Disk Construction GEOM_DIMENSIONS @@ -628,7 +628,11 @@ Please, select face, shell or solid and try again Create A Face - GEOM_FILLET + GEOM_RECTANGLE_TITLE + Face Construction + + + GEOM_FILLET Fillet @@ -1585,7 +1589,7 @@ Please, select face, shell or solid and try again GEOM_SKETCHER_TITLE - Sketch Construction + 2D Sketch Construction GEOM_3DSKETCHER_TITLE @@ -2143,6 +2147,10 @@ Please, select face, shell or solid and try again MEN_CYLINDER Cylinder + + MEN_RECTANGLE + Face + MEN_DELETE Delete @@ -2225,7 +2233,7 @@ Please, select face, shell or solid and try again MEN_FILLET - Fillet + Fillet 3D MEN_FILLET_1D @@ -2309,7 +2317,7 @@ Please, select face, shell or solid and try again MEN_MODIFY_LOCATION - Modify the Location + Modify Location MEN_MUL_ROTATION @@ -2341,7 +2349,7 @@ Please, select face, shell or solid and try again MEN_PIPE - Extrusion Along a Path + Extrusion Along Path MEN_PLANE @@ -2473,7 +2481,7 @@ Please, select face, shell or solid and try again MEN_SKETCH - Sketch + 2D Sketch MEN_3DSKETCH @@ -2665,7 +2673,7 @@ Please, select face, shell or solid and try again STB_ARCHIMEDE - Archimede + Archimede operation STB_BASIC_PROPS @@ -2681,7 +2689,7 @@ Please, select face, shell or solid and try again STB_CHAMFER - Chamfer + Create a chamfer STB_CHANGE_ORIENTATION @@ -2747,6 +2755,10 @@ Please, select face, shell or solid and try again STB_CYLINDER Create a cylinder + + STB_RECTANGLE + Create rectangular face + STB_DELETE Delete object @@ -2813,7 +2825,15 @@ Please, select face, shell or solid and try again STB_FILLET - Fillet + Create 3D fillet + + + STB_FILLET_1D + Create 1D fillet + + + STB_FILLET_2D + Create 2D fillet STB_FILLING @@ -2873,23 +2893,23 @@ Please, select face, shell or solid and try again STB_MIRROR - Mirror image + Mirror a shape STB_MODIFY_LOCATION - Modify the Location + Modify shape's location STB_MUL_ROTATION - Multi-Rotation + Perform multi-rotation STB_MUL_TRANSFORM - Multi-transformation + Perform multi-transformation STB_MUL_TRANSLATION - Multi-Translation + Perform multi-translation STB_OFFSET @@ -2897,11 +2917,11 @@ Please, select face, shell or solid and try again STB_PARTITION - Partition + Make a partition STB_PIPE - Create a shape by Extrusion along a path + Create a shape by extrusion along a path STB_PLANE @@ -2973,11 +2993,11 @@ Please, select face, shell or solid and try again STB_ROTATION - Rotation + Rotate a shape STB_SCALE - Scale transform + Scale a shape STB_SECTION @@ -3013,7 +3033,11 @@ Please, select face, shell or solid and try again STB_SKETCH - Sketch + Create 2D sketch + + + STB_3DSKETCH + Create 3D sketch STB_SOLID @@ -3053,7 +3077,7 @@ Please, select face, shell or solid and try again STB_TRANSLATION - Translation + Translate shape STB_VECTOR @@ -3163,6 +3187,14 @@ Please, select face, shell or solid and try again TOOL_TRANSFORMATION Transformation + + TOOL_BUILD + Build + + + TOOL_OPERATIONS + Operations + TOP_ARC Create an arc @@ -3229,7 +3261,7 @@ Please, select face, shell or solid and try again TOP_COMPOUND - Build a compound + Build compound TOP_CONE @@ -3251,9 +3283,13 @@ Please, select face, shell or solid and try again TOP_DELETE Delete object + + TOP_RECTANGLE + Create rectangular face + TOP_DISK - Build a Disk + Create a disk TOP_DISPLAY @@ -3269,7 +3305,7 @@ Please, select face, shell or solid and try again TOP_EDGE - Build an edge + Build edge TOP_ELLIPSE @@ -3301,11 +3337,19 @@ Please, select face, shell or solid and try again TOP_FACE - Build a face + Build face TOP_FILLET - Fillet + Fillet 3D + + + TOP_FILLET_1D + Fillet 1D + + + TOP_FILLET_2D + Fillet 2D TOP_FILLING @@ -3365,7 +3409,7 @@ Please, select face, shell or solid and try again TOP_MODIFY_LOCATION - Modify the Location + Modify location TOP_MUL_ROTATION @@ -3389,7 +3433,7 @@ Please, select face, shell or solid and try again TOP_PIPE - Extrusion along a path + Extrusion along path TOP_PLANE @@ -3489,15 +3533,19 @@ Please, select face, shell or solid and try again TOP_SHELL - Build a shell + Build shell TOP_SKETCH - Sketch + 2D sketch + + + TOP_3DSKETCH + 3D sketch TOP_SOLID - Build a solid + Build solid TOP_SPHERE @@ -3541,7 +3589,7 @@ Please, select face, shell or solid and try again TOP_WIRE - Build a wire + Build wire TOP_WORK_PLANE diff --git a/src/GEOMGUI/GeometryGUI.cxx b/src/GEOMGUI/GeometryGUI.cxx index d5df83adb..2de1b4dcc 100644 --- a/src/GEOMGUI/GeometryGUI.cxx +++ b/src/GEOMGUI/GeometryGUI.cxx @@ -24,6 +24,7 @@ // Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com) // #include "GeometryGUI.h" +#include "GeometryGUI_Operations.h" #include "GEOMGUI_OCCSelector.h" #include "GEOMGUI_Selection.h" #include "GEOM_Displayer.h" @@ -89,8 +90,6 @@ #include "GEOMImpl_Types.hxx" -using namespace Qt; - extern "C" { Standard_EXPORT CAM_Module* createModule() { return new GeometryGUI(); @@ -164,9 +163,7 @@ GeometryGUI::GeometryGUI() : myComponentGeom = GEOM::GEOM_Gen::_narrow( comp ); } - myState = -1; myActiveDialogBox = 0; - myFatherior = ""; gp_Pnt origin = gp_Pnt(0., 0., 0.); gp_Dir direction = gp_Dir(0., 0., 1.); @@ -200,30 +197,29 @@ GEOMGUI* GeometryGUI::getLibrary( const QString& libraryName ) { if ( !myGUIMap.contains( libraryName ) ) { // try to load library if it is not loaded yet - QString libs; #ifndef WNT - libs = getenv( "LD_LIBRARY_PATH" ); - if( !libs.isEmpty() ) { - QStringList dirList = libs.split( ":", QString::SkipEmptyParts ); // skip empty entries + QString dirs = getenv( "LD_LIBRARY_PATH" ); + QString sep = ":"; #else - libs = getenv( "PATH" ); - if( !libs.isEmpty() ) { - QStringList dirList = libs.split( ";", QString::SkipEmptyParts ); // skip empty entries + QString dirs = getenv( "PATH" ); + QString sep = ";"; #endif - for( int i = dirList.count()-1; i >= 0; i-- ) { - QString dir = dirList[ i ]; - QFileInfo fi( Qtx::addSlash( dirList[ i ] ) + libraryName ); - if( fi.exists() ) { - OSD_SharedLibrary aSharedLibrary( fi.fileName().toLatin1().data() ); + if ( !dirs.isEmpty() ) { + QStringList dirList = dirs.split(sep, QString::SkipEmptyParts ); // skip empty entries + QListIterator it( dirList ); it.toBack(); + while ( it.hasPrevious() ) { + QFileInfo fi( Qtx::addSlash( it.previous() ) + libraryName ); + if ( fi.exists() ) { + OSD_SharedLibrary aSharedLibrary( fi.fileName().toLatin1().constData() ); bool res = aSharedLibrary.DlOpen( OSD_RTLD_LAZY ); - if( !res ) { + if ( !res ) { MESSAGE( "Can't open library : " << aSharedLibrary.DlError() ); continue; // continue search further } OSD_Function osdF = aSharedLibrary.DlSymb( "GetLibGUI" ); if ( osdF != NULL ) { LibraryGUI func = (GEOMGUI* (*) (GeometryGUI*))osdF; - GEOMGUI* libGUI = (*func)(this); + GEOMGUI* libGUI = (*func)( this ); if ( libGUI ) { myGUIMap[ libraryName ] = libGUI; break; // found and loaded! @@ -233,10 +229,7 @@ GEOMGUI* GeometryGUI::getLibrary( const QString& libraryName ) } } } - if ( myGUIMap.contains( libraryName ) ) - // library is successfully loaded - return myGUIMap[ libraryName ]; - return 0; + return myGUIMap.contains( libraryName ) ? myGUIMap[ libraryName ] : 0; } //======================================================================= @@ -344,8 +337,15 @@ void GeometryGUI::OnGUIEvent( int id ) bool ViewVTK = ( window && window->getViewManager()->getType() == SVTK_Viewer::Type() ); // if current viewframe is not of OCC and not of VTK type - return immediately // fix for IPAL8958 - allow some commands to execute even when NO viewer is active (rename for example) - bool NotViewerDependentCommand = ( id == 901 || id == 216 || id == 213 || id == 33 || id == 8037 || id == 8038 || id == 8039 ); - if ( !ViewOCC && !ViewVTK && !NotViewerDependentCommand ) + QList NotViewerDependentCommands; + NotViewerDependentCommands << GEOMOp::OpRename + << GEOMOp::OpDelete + << GEOMOp::OpShow + << GEOMOp::OpShowOnly + << GEOMOp::OpShowChildren + << GEOMOp::OpHideChildren + << GEOMOp::OpPointMarker; + if ( !ViewOCC && !ViewVTK && !NotViewerDependentCommands.contains( id ) ) return; // fix for IPAL9103, point 2 @@ -354,216 +354,163 @@ void GeometryGUI::OnGUIEvent( int id ) return; } - GEOMGUI* library = 0; - // try to get-or-load corresponding GUI library - if( id == 111 || // MENU FILE - IMPORT BREP - id == 112 || // MENU FILE - IMPORT IGES - id == 113 || // MENU FILE - IMPORT STEP - id == 121 || // MENU FILE - EXPORT BREP - id == 122 || // MENU FILE - EXPORT IGES - id == 123 || // MENU FILE - EXPORT STEP - id == 2171 || // POPUP VIEWER - SELECT ONLY - VERTEX - id == 2172 || // POPUP VIEWER - SELECT ONLY - EDGE - id == 2173 || // POPUP VIEWER - SELECT ONLY - WIRE - id == 2174 || // POPUP VIEWER - SELECT ONLY - FACE - id == 2175 || // POPUP VIEWER - SELECT ONLY - SHELL - id == 2176 || // POPUP VIEWER - SELECT ONLY - SOLID - id == 2177 || // POPUP VIEWER - SELECT ONLY - COMPOUND - id == 2178 || // POPUP VIEWER - SELECT ONLY - SELECT ALL - id == 31 || // MENU EDIT - COPY - id == 33 || // MENU EDIT - DELETE - id == 411 || // MENU SETTINGS - ADD IN STUDY - id == 412 || // MENU SETTINGS - SHADING COLOR - id == 5103 || // MENU TOOLS - CHECK GEOMETRY - id == 8031 || // POPUP VIEWER - DEFLECTION COEFFICIENT - id == 8032 || // POPUP VIEWER - COLOR - id == 8033 || // POPUP VIEWER - TRANSPARENCY - id == 8034 || // POPUP VIEWER - ISOS - id == 8035 || // POPUP VIEWER - AUTO COLOR - id == 8036 || // POPUP VIEWER - DISABLE AUTO COLOR - id == 8037 || // POPUP VIEWER - SHOW CHILDREN - id == 8038 || // POPUP VIEWER - HIDE CHILDREN - id == 8039 || // POPUP VIEWER - POINT MARKER - id == 804 || // POPUP VIEWER - ADD IN STUDY - id == 901 || // OBJECT BROWSER - RENAME - id == 9024 ) { // OBJECT BROWSER - OPEN - //cout << "id " << id << " received" << endl; -#ifndef WNT - library = getLibrary( "libGEOMToolsGUI.so" ); -#else - library = getLibrary( "GEOMToolsGUI.dll" ); -#endif - } - else if( id == 211 || // MENU VIEW - WIREFRAME/SHADING - id == 212 || // MENU VIEW - DISPLAY ALL - id == 213 || // MENU VIEW - DISPLAY ONLY - id == 214 || // MENU VIEW - ERASE ALL - id == 215 || // MENU VIEW - ERASE - id == 216 || // MENU VIEW - DISPLAY - id == 218 || // MENU VIEW - VECTOR MODE - id == 80311 || // POPUP VIEWER - WIREFRAME - id == 80312 || // POPUP VIEWER - SHADING - id == 80313 ) { // POPUP VIEWER - VECTORS -#ifndef WNT - library = getLibrary( "libDisplayGUI.so" ); -#else - library = getLibrary( "DisplayGUI.dll" ); -#endif - } - else if( id == 4011 || // MENU BASIC - POINT - id == 4012 || // MENU BASIC - LINE - id == 4013 || // MENU BASIC - CIRCLE - id == 4014 || // MENU BASIC - ELLIPSE - id == 4015 || // MENU BASIC - ARC - id == 4016 || // MENU BASIC - VECTOR - id == 4017 || // MENU BASIC - PLANE -// id == 4018 || // MENU BASIC - WPLANE // DEPRECATED - id == 4019 || // MENU BASIC - CURVE - id == 4020 ) { // MENU BASIC - REPAIR -#ifndef WNT - library = getLibrary( "libBasicGUI.so" ); -#else - library = getLibrary( "BasicGUI.dll" ); -#endif - } - else if( id == 4021 || // MENU PRIMITIVE - BOX - id == 4022 || // MENU PRIMITIVE - CYLINDER - id == 4023 || // MENU PRIMITIVE - SPHERE - id == 4024 || // MENU PRIMITIVE - TORUS - id == 4025 || // MENU PRIMITIVE - CONE - id == 4026 || // MENU PRIMITIVE - FACE - id == 4027 ) { // MENU PRIMITIVE - DISK -#ifndef WNT - library = getLibrary( "libPrimitiveGUI.so" ); -#else - library = getLibrary( "PrimitiveGUI.dll" ); -#endif - } - else if( id == 4031 || // MENU GENERATION - PRISM - id == 4032 || // MENU GENERATION - REVOLUTION - id == 4033 || // MENU GENERATION - FILLING - id == 4034 ) { // MENU GENERATION - PIPE -#ifndef WNT - library = getLibrary( "libGenerationGUI.so" ); -#else - library = getLibrary( "GenerationGUI.dll" ); -#endif - } - else if( id == 404 || // MENU ENTITY - SKETCHER - id == 405 || // MENU ENTITY - 3D SKETCHER - id == 407 ) { // MENU ENTITY - EXPLODE -#ifndef WNT - library = getLibrary( "libEntityGUI.so" ); -#else - library = getLibrary( "EntityGUI.dll" ); -#endif - } - else if( id == 4081 || // MENU BUILD - EDGE - id == 4082 || // MENU BUILD - WIRE - id == 4083 || // MENU BUILD - FACE - id == 4084 || // MENU BUILD - SHELL - id == 4085 || // MENU BUILD - SOLID - id == 4086 ) { // MENU BUILD - COMPUND -#ifndef WNT - library = getLibrary( "libBuildGUI.so" ); -#else - library = getLibrary( "BuildGUI.dll" ); -#endif - } - else if( id == 5011 || // MENU BOOLEAN - FUSE - id == 5012 || // MENU BOOLEAN - COMMON - id == 5013 || // MENU BOOLEAN - CUT - id == 5014 ) { // MENU BOOLEAN - SECTION -#ifndef WNT - library = getLibrary( "libBooleanGUI.so" ); -#else - library = getLibrary( "BooleanGUI.dll" ); -#endif - } - else if( id == 5021 || // MENU TRANSFORMATION - TRANSLATION - id == 5022 || // MENU TRANSFORMATION - ROTATION - id == 5023 || // MENU TRANSFORMATION - LOCATION - id == 5024 || // MENU TRANSFORMATION - MIRROR - id == 5025 || // MENU TRANSFORMATION - SCALE - id == 5026 || // MENU TRANSFORMATION - OFFSET - id == 5027 || // MENU TRANSFORMATION - MULTI-TRANSLATION - id == 5028 || // MENU TRANSFORMATION - MULTI-ROTATION - id == 5029 ) { // CONTEXT(POPUP) MENU - RELOAD_IMPORTED -#ifndef WNT - library = getLibrary( "libTransformationGUI.so" ); -#else - library = getLibrary( "TransformationGUI.dll" ); -#endif - } - else if( id == 503 || // MENU OPERATION - PARTITION - id == 504 || // MENU OPERATION - ARCHIMEDE - id == 505 || // MENU OPERATION - FILLET - id == 506 || // MENU OPERATION - CHAMFER - id == 507 || // MENU OPERATION - CLIPPING RANGE - id == 508 || // MENU OPERATION - GET SHAPES ON SHAPE - id == 509 || // MENU OPERATION - FILLET 2D - id == 510 ) { // MENU OPERATION - FILLET 1D -#ifndef WNT - library = getLibrary( "libOperationGUI.so" ); -#else - library = getLibrary( "OperationGUI.dll" ); -#endif - } - else if( id == 601 || // MENU REPAIR - SEWING - id == 603 || // MENU REPAIR - SUPPRESS FACES - id == 604 || // MENU REPAIR - SUPPRESS HOLE - id == 605 || // MENU REPAIR - SHAPE PROCESSING - id == 606 || // MENU REPAIR - CLOSE CONTOUR - id == 607 || // MENU REPAIR - REMOVE INTERNAL WIRES - id == 608 || // MENU REPAIR - ADD POINT ON EDGE - id == 609 || // MENU MEASURE - FREE BOUNDARIES - id == 610 || // MENU MEASURE - FREE FACES - id == 611 || // MENU REPAIR - CHANGE ORIENTATION - id == 602 || // MENU REPAIR - GLUE FACES - id == 612 ) { // MENU REPAIR - REMOVE EXTRA EDGES -#ifndef WNT - library = getLibrary( "libRepairGUI.so" ); -#else - library = getLibrary( "RepairGUI.dll" ); -#endif - } - else if( id == 701 || // MENU MEASURE - PROPERTIES - id == 702 || // MENU MEASURE - CDG - id == 703 || // MENU MEASURE - INERTIA - id == 704 || // MENU MEASURE - NORMALE - id == 7041 || // MENU MEASURE - BOUNDING BOX - id == 7042 || // MENU MEASURE - MIN DISTANCE - id == 7043 || // MENU MEASURE - ANGLE - id == 705 || // MENU MEASURE - TOLERANCE - id == 706 || // MENU MEASURE - WHATIS - id == 707 || // MENU MEASURE - CHECK - id == 7072 || // MENU MEASURE - CHECK COMPOUND OF BLOCKS - id == 708 ) { // MENU MEASURE - POINT COORDINATES -#ifndef WNT - library = getLibrary( "libMeasureGUI.so" ); -#else - library = getLibrary( "MeasureGUI.dll" ); -#endif - } - else if( id == 800 || // MENU GROUP - CREATE - id == 8001 || // POPUP MENU - CREATE GROUP - id == 801 ) { // MENU GROUP - EDIT -#ifndef WNT - library = getLibrary( "libGroupGUI.so" ); -#else - library = getLibrary( "GroupGUI.dll" ); -#endif + QString libName; + // find corresponding GUI library + switch ( id ) { + case GEOMOp::OpImport: // MENU FILE - IMPORT + case GEOMOp::OpExport: // MENU FILE - EXPORT + case GEOMOp::OpSelectVertex: // POPUP MENU - SELECT ONLY - VERTEX + case GEOMOp::OpSelectEdge: // POPUP MENU - SELECT ONLY - EDGE + case GEOMOp::OpSelectWire: // POPUP MENU - SELECT ONLY - WIRE + case GEOMOp::OpSelectFace: // POPUP MENU - SELECT ONLY - FACE + case GEOMOp::OpSelectShell: // POPUP MENU - SELECT ONLY - SHELL + case GEOMOp::OpSelectSolid: // POPUP MENU - SELECT ONLY - SOLID + case GEOMOp::OpSelectCompound: // POPUP MENU - SELECT ONLY - COMPOUND + case GEOMOp::OpSelectAll: // POPUP MENU - SELECT ONLY - SELECT ALL + case GEOMOp::OpDelete: // MENU EDIT - DELETE + case GEOMOp::OpCheckGeom: // MENU TOOLS - CHECK GEOMETRY + case GEOMOp::OpDeflection: // POPUP MENU - DEFLECTION COEFFICIENT + case GEOMOp::OpColor: // POPUP MENU - COLOR + case GEOMOp::OpTransparency: // POPUP MENU - TRANSPARENCY + case GEOMOp::OpIsos: // POPUP MENU - ISOS + case GEOMOp::OpAutoColor: // POPUP MENU - AUTO COLOR + case GEOMOp::OpNoAutoColor: // POPUP MENU - DISABLE AUTO COLOR + case GEOMOp::OpShowChildren: // POPUP MENU - SHOW CHILDREN + case GEOMOp::OpHideChildren: // POPUP MENU - HIDE CHILDREN + case GEOMOp::OpPointMarker: // POPUP MENU - POINT MARKER + case GEOMOp::OpRename: // POPUP MENU - RENAME + libName = "GEOMToolsGUI"; + break; + case GEOMOp::OpDisplayMode: // MENU VIEW - WIREFRAME/SHADING + case GEOMOp::OpShowAll: // MENU VIEW - SHOW ALL + case GEOMOp::OpShowOnly: // MENU VIEW - DISPLAY ONLY + case GEOMOp::OpHideAll: // MENU VIEW - ERASE ALL + case GEOMOp::OpHide: // MENU VIEW - ERASE + case GEOMOp::OpShow: // MENU VIEW - DISPLAY + case GEOMOp::OpSwitchVectors: // MENU VIEW - VECTOR MODE + case GEOMOp::OpWireframe: // POPUP MENU - WIREFRAME + case GEOMOp::OpShading: // POPUP MENU - SHADING + case GEOMOp::OpVectors: // POPUP MENU - VECTORS + libName = "DisplayGUI"; + break; + case GEOMOp::OpPoint: // MENU BASIC - POINT + case GEOMOp::OpLine: // MENU BASIC - LINE + case GEOMOp::OpCircle: // MENU BASIC - CIRCLE + case GEOMOp::OpEllipse: // MENU BASIC - ELLIPSE + case GEOMOp::OpArc: // MENU BASIC - ARC + case GEOMOp::OpVector: // MENU BASIC - VECTOR + case GEOMOp::OpPlane: // MENU BASIC - PLANE + case GEOMOp::OpCurve: // MENU BASIC - CURVE + case GEOMOp::OpLCS: // MENU BASIC - REPAIR + libName = "BasicGUI"; + break; + case GEOMOp::OpBox: // MENU PRIMITIVE - BOX + case GEOMOp::OpCylinder: // MENU PRIMITIVE - CYLINDER + case GEOMOp::OpSphere: // MENU PRIMITIVE - SPHERE + case GEOMOp::OpTorus: // MENU PRIMITIVE - TORUS + case GEOMOp::OpCone: // MENU PRIMITIVE - CONE + case GEOMOp::OpRectangle: // MENU PRIMITIVE - FACE + case GEOMOp::OpDisk: // MENU PRIMITIVE - DISK + libName = "PrimitiveGUI"; + break; + case GEOMOp::OpPrism: // MENU GENERATION - PRISM + case GEOMOp::OpRevolution: // MENU GENERATION - REVOLUTION + case GEOMOp::OpFilling: // MENU GENERATION - FILLING + case GEOMOp::OpPipe: // MENU GENERATION - PIPE + libName = "GenerationGUI"; + break; + case GEOMOp::Op2dSketcher: // MENU ENTITY - SKETCHER + case GEOMOp::Op3dSketcher: // MENU ENTITY - 3D SKETCHER + case GEOMOp::OpExplode: // MENU ENTITY - EXPLODE + libName = "EntityGUI"; + break; + case GEOMOp::OpEdge: // MENU BUILD - EDGE + case GEOMOp::OpWire: // MENU BUILD - WIRE + case GEOMOp::OpFace: // MENU BUILD - FACE + case GEOMOp::OpShell: // MENU BUILD - SHELL + case GEOMOp::OpSolid: // MENU BUILD - SOLID + case GEOMOp::OpCompound: // MENU BUILD - COMPUND + libName = "BuildGUI"; + break; + case GEOMOp::OpFuse: // MENU BOOLEAN - FUSE + case GEOMOp::OpCommon: // MENU BOOLEAN - COMMON + case GEOMOp::OpCut: // MENU BOOLEAN - CUT + case GEOMOp::OpSection: // MENU BOOLEAN - SECTION + libName = "BooleanGUI"; + break; + case GEOMOp::OpTranslate: // MENU TRANSFORMATION - TRANSLATION + case GEOMOp::OpRotate: // MENU TRANSFORMATION - ROTATION + case GEOMOp::OpChangeLoc: // MENU TRANSFORMATION - LOCATION + case GEOMOp::OpMirror: // MENU TRANSFORMATION - MIRROR + case GEOMOp::OpScale: // MENU TRANSFORMATION - SCALE + case GEOMOp::OpOffset: // MENU TRANSFORMATION - OFFSET + case GEOMOp::OpMultiTranslate: // MENU TRANSFORMATION - MULTI-TRANSLATION + case GEOMOp::OpMultiRotate: // MENU TRANSFORMATION - MULTI-ROTATION + case GEOMOp::OpReimport: // CONTEXT(POPUP) MENU - RELOAD_IMPORTED + libName = "TransformationGUI"; + break; + case GEOMOp::OpPartition: // MENU OPERATION - PARTITION + case GEOMOp::OpArchimede: // MENU OPERATION - ARCHIMEDE + case GEOMOp::OpFillet3d: // MENU OPERATION - FILLET + case GEOMOp::OpChamfer: // MENU OPERATION - CHAMFER + case GEOMOp::OpClipping: // MENU OPERATION - CLIPPING RANGE + case GEOMOp::OpShapesOnShape: // MENU OPERATION - GET SHAPES ON SHAPE + case GEOMOp::OpFillet2d: // MENU OPERATION - FILLET 2D + case GEOMOp::OpFillet1d: // MENU OPERATION - FILLET 1D + libName = "OperationGUI"; + break; + case GEOMOp::OpSewing: // MENU REPAIR - SEWING + case GEOMOp::OpSuppressFaces: // MENU REPAIR - SUPPRESS FACES + case GEOMOp::OpSuppressHoles: // MENU REPAIR - SUPPRESS HOLE + case GEOMOp::OpShapeProcess: // MENU REPAIR - SHAPE PROCESSING + case GEOMOp::OpCloseContour: // MENU REPAIR - CLOSE CONTOUR + case GEOMOp::OpRemoveIntWires: // MENU REPAIR - REMOVE INTERNAL WIRES + case GEOMOp::OpAddPointOnEdge: // MENU REPAIR - ADD POINT ON EDGE + case GEOMOp::OpFreeBoundaries: // MENU MEASURE - FREE BOUNDARIES + case GEOMOp::OpFreeFaces: // MENU MEASURE - FREE FACES + case GEOMOp::OpOrientation: // MENU REPAIR - CHANGE ORIENTATION + case GEOMOp::OpGlueFaces: // MENU REPAIR - GLUE FACES + case GEOMOp::OpRemoveExtraEdges: // MENU REPAIR - REMOVE EXTRA EDGES + libName = "RepairGUI"; + break; + case GEOMOp::OpProperties: // MENU MEASURE - PROPERTIES + case GEOMOp::OpCenterMass: // MENU MEASURE - CDG + case GEOMOp::OpInertia: // MENU MEASURE - INERTIA + case GEOMOp::OpNormale: // MENU MEASURE - NORMALE + case GEOMOp::OpBoundingBox: // MENU MEASURE - BOUNDING BOX + case GEOMOp::OpMinDistance: // MENU MEASURE - MIN DISTANCE + case GEOMOp::OpAngle: // MENU MEASURE - ANGLE + case GEOMOp::OpTolerance: // MENU MEASURE - TOLERANCE + case GEOMOp::OpWhatIs: // MENU MEASURE - WHATIS + case GEOMOp::OpCheckShape: // MENU MEASURE - CHECK + case GEOMOp::OpCheckCompound: // MENU MEASURE - CHECK COMPOUND OF BLOCKS + case GEOMOp::OpPointCoordinates: // MENU MEASURE - POINT COORDINATES + libName = "MeasureGUI"; + break; + case GEOMOp::OpGroupCreate: // MENU GROUP - CREATE + case GEOMOp::OpGroupCreatePopup: // POPUP MENU - CREATE GROUP + case GEOMOp::OpGroupEdit: // MENU GROUP - EDIT + libName = "GroupGUI"; + break; + case GEOMOp::OpHexaSolid: // MENU BLOCKS - HEXAHEDRAL SOLID + case GEOMOp::OpMultiTransform: // MENU BLOCKS - MULTI-TRANSFORMATION + case GEOMOp::OpQuadFace: // MENU BLOCKS - QUADRANGLE FACE + case GEOMOp::OpPropagate: // MENU BLOCKS - PROPAGATE + case GEOMOp::OpExplodeBlock: // MENU BLOCKS - EXPLODE ON BLOCKS + libName = "BlocksGUI"; + break; + default: + break; } - else if( id == 9999 || // MENU BLOCKS - HEXAHEDRAL SOLID - id == 9998 || // MENU BLOCKS - MULTI-TRANSFORMATION - id == 9997 || // MENU BLOCKS - QUADRANGLE FACE - id == 99991 || // MENU BLOCKS - PROPAGATE - id == 9995 ) { // MENU BLOCKS - EXPLODE ON BLOCKS + + GEOMGUI* library = 0; + if ( !libName.isEmpty() ) { #ifndef WNT - library = getLibrary( "libBlocksGUI.so" ); + libName = QString( "lib" ) + libName + ".so"; #else - library = getLibrary( "BlocksGUI.dll" ); + libName = libName + ".dll"; #endif + library = getLibrary( libName ); } // call method of corresponding GUI library @@ -573,190 +520,60 @@ void GeometryGUI::OnGUIEvent( int id ) SUIT_MessageBox::critical( desk, tr( "GEOM_ERROR" ), tr( "GEOM_ERR_LIB_NOT_FOUND" ), tr( "GEOM_BUT_OK" ) ); } - //================================================================================= // function : GeometryGUI::OnKeyPress() // purpose : Called when any key is pressed by user [static] //================================================================================= -void GeometryGUI::OnKeyPress( SUIT_ViewWindow* win, QKeyEvent* pe ) +void GeometryGUI::OnKeyPress( SUIT_ViewWindow* w, QKeyEvent* e ) { - GUIMap::Iterator it; - bool bOk = true; - for ( it = myGUIMap.begin(); it != myGUIMap.end(); ++it ) { - SUIT_Application* anApp = application(); - if (!anApp) return; - bOk = bOk && it.value()->OnKeyPress( pe, anApp->desktop(), win ); - } -// return bOk; + if ( !application() ) + return; + foreach ( GEOMGUI* lib, myGUIMap ) + lib->OnKeyPress( e, application()->desktop(), w ); } - //================================================================================= // function : GeometryGUI::OnMouseMove() // purpose : Manages mouse move events [static] //================================================================================= -void GeometryGUI::OnMouseMove( SUIT_ViewWindow* win, QMouseEvent* pe ) +void GeometryGUI::OnMouseMove( SUIT_ViewWindow* w, QMouseEvent* e ) { - GUIMap::Iterator it; - bool bOk = true; - for ( it = myGUIMap.begin(); it != myGUIMap.end(); ++it ) { - SUIT_Application* anApp = application(); - if (!anApp) return; - bOk = bOk && it.value()->OnMouseMove( pe, anApp->desktop(), win ); - } -// return bOk; + if ( !application() ) + return; + foreach ( GEOMGUI* lib, myGUIMap ) + lib->OnMouseMove( e, application()->desktop(), w ); } - //================================================================================= -// function : GeometryGUI::0nMousePress() +// function : GeometryGUI::OnMousePress() // purpose : Manage mouse press events [static] //================================================================================= -void GeometryGUI::OnMousePress( SUIT_ViewWindow* win, QMouseEvent* pe ) +void GeometryGUI::OnMousePress( SUIT_ViewWindow* w, QMouseEvent* e ) { - GUIMap::Iterator it; - // OnMousePress() should return false if this event should be processed further - // (see OCCViewer_Viewer3d::onMousePress() for explanation) - bool processed = false; - for ( it = myGUIMap.begin(); it != myGUIMap.end(); ++it ) { - SUIT_Application* anApp = application(); - if (!anApp) return; - processed = processed || it.value()->OnMousePress( pe, anApp->desktop(), win ); - } -// return processed; -} - -/* -static void UpdateVtkSelection() -{ - QPtrList winList = application()->desktop()->windows(); - SUIT_ViewWindow* win = 0; - for ( win = winList.first(); win; win = winList.next() ) { - if ( win->getViewManager()->getTypeView() == VIEW_VTK ) { - SVTK_ViewWindow* vw = dynamic_cast( window ); - if ( vw ) { - SVTK_RenderWindowInteractor* anInteractor = vw->getRWInteractor(); - anInteractor->SetSelectionProp(); - anInteractor->SetSelectionTolerance(); - SVTK_InteractorStyleSALOME* aStyle = anInteractor->GetInteractorStyleSALOME(); - if (aStyle) { - aStyle->setPreselectionProp(); - } - } - } - } -} - -//================================================================================= -// function : GeometryGUI::SetSettings() -// purpose : Called when GEOM module is activated [static] -//================================================================================= -bool GeometryGUI::SetSettings() -{ - QMenuBar* Mb = parent->getMainMenuBar(); - SUIT_Study* ActiveStudy = application()->activeStudy(); - -// Wireframe or Shading - int DisplayMode = 0; - SUIT_ViewWindow* window = application()->desktop()->activeWindow(); - bool ViewOCC = ( window && window->getViewManager()->getType() == VIEW_OCC ); - bool ViewVTK = ( window && window->getViewManager()->getType() == VIEW_VTK ); - if ( ViewOCC ) { - OCCViewer_ViewManager* vm = dynamic_cast( window->getViewManager() ); - if ( vm ) { - Handle(AIS_InteractiveContext) ic = vm->getOCCViewer()->getAISContext(); - DisplayMode = ic->DisplayMode(); - } - } - else if ( ViewVTK ) { - SVTK_ViewWindow* vw = dynamic_cast( window ); - if ( vw ) { - SVTK_RenderWindowInteractor* myRenderInter = vw->getRWInteractor(); - DisplayMode = myRenderInter->GetDisplayMode(); - } - } - - if( DisplayMode == 1 ) - getApp()-> - Mb->changeItem( 211, tr( "GEOM_MEN_WIREFRAME" ) ); - else - Mb->changeItem( 211, tr( "GEOM_MEN_SHADING" ) ); - - - // Add in Study - !!!ALWAYS TRUE!!! /////// VSR : TO BE REMOVED - QString AddInStudy = QAD_CONFIG->getSetting("Geometry:SettingsAddInStudy"); - int Settings_AddInStudy; - // if(!AddInStudy.isEmpty()) - // Settings_AddInStudy = AddInStudy.toInt(); - // else - - Settings_AddInStudy = 1; - Mb->setItemChecked(411, Settings_AddInStudy); - - // step value - QString S = QAD_CONFIG->getSetting("Geometry:SettingsGeomStep"); - if(S.isEmpty()) - QAD_CONFIG->addSetting("Geometry:SettingsGeomStep", "100"); - - // isos - int count = ActiveStudy->getStudyFramesCount(); - for(int i = 0; i < count; i++) { - if(ActiveStudy->getStudyFrame(i)->getTypeView() == VIEW_OCC) { - OCCViewer_Viewer3d* v3d = ((OCCViewer_ViewFrame*)ActiveStudy->getStudyFrame(i)->getRightFrame()->getViewFrame())->getViewer(); - Handle (AIS_InteractiveContext) ic = v3d->getAISContext(); - - QString IsoU = QAD_CONFIG->getSetting("Geometry:SettingsIsoU"); - QString IsoV = QAD_CONFIG->getSetting("Geometry:SettingsIsoV"); - if(!IsoU.isEmpty()) - ic->DefaultDrawer()->UIsoAspect()->SetNumber(IsoU.toInt()); - if(!IsoV.isEmpty()) - ic->DefaultDrawer()->VIsoAspect()->SetNumber(IsoV.toInt()); - } - } - - setActionsEnabled(); - - // PAL5356: update VTK selection - ::UpdateVtkSelection(); - bool bOk = true; - GUIMap::Iterator it; - for ( it = myGUIMap.begin(); it != myGUIMap.end(); ++it ) - bOk = bOk && it.data()->SetSettings( parent ); - - // MZN: Enable/disable "Clipping range" menu item(from GEOM_CLIPPING variable) - if (getenv( "GEOM_CLIPPING" ) == NULL) - { - QMenuItem* mi = Mb->findItem(50); - if (mi && mi->popup()) - mi->popup()->removeItem(507); - } - - return bOk; + if ( !application() ) + return; + foreach ( GEOMGUI* lib, myGUIMap ) + lib->OnMousePress( e, application()->desktop(), w ); } -*/ //======================================================================= // function : createGeomAction // purpose : //======================================================================= -void GeometryGUI::createGeomAction( const int id, const QString& po_id, const QString& icon_id, const int key, const bool toggle ) +void GeometryGUI::createGeomAction( const int id, const QString& label, const QString& icolabel, const int accel, const bool toggle ) { - QIcon icon; - QWidget* parent = application()->desktop(); SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr(); - QPixmap pix; - if ( icon_id.length() ) - pix = resMgr->loadPixmap( "GEOM", tr( icon_id.toLatin1().constData() ) ); - else - pix = resMgr->loadPixmap( "GEOM", tr( (QString( "ICO_" )+po_id).toLatin1().constData() ), false ); - if ( !pix.isNull() ) - icon = QIcon( pix ); - - QString tooltip = tr( (QString( "TOP_" )+po_id).toLatin1().constData() ), - menu = tr( (QString( "MEN_" )+po_id).toLatin1().constData() ), - status_bar = tr( (QString( "STB_" )+po_id).toLatin1().constData() ); - - createAction( id, tooltip, icon, menu, status_bar, key, parent, toggle, this, SLOT( OnGUIEvent() ) ); + QPixmap icon = icolabel.isEmpty() ? resMgr->loadPixmap( "GEOM", tr( (QString( "ICO_" )+label).toLatin1().constData() ), false ) + : resMgr->loadPixmap( "GEOM", tr( icolabel.toLatin1().constData() ) ); + createAction( id, + tr( QString( "TOP_%1" ).arg( label ).toLatin1().constData() ), + icon, + tr( QString( "MEN_%1" ).arg( label ).toLatin1().constData() ), + tr( QString( "STB_%1" ).arg( label ).toLatin1().constData() ), + accel, + application()->desktop(), + toggle, + this, SLOT( OnGUIEvent() ) ); } @@ -771,366 +588,383 @@ void GeometryGUI::initialize( CAM_Application* app ) // ----- create actions -------------- - createGeomAction( 111, "IMPORT", "", (CTRL + Key_I) ); - createGeomAction( 121, "EXPORT", "", (CTRL + Key_E) ); - - createGeomAction( 33, "DELETE", "", Qt::Key_Delete ); - - createGeomAction( 4011, "POINT" ); - createGeomAction( 4012, "LINE" ); - createGeomAction( 4013, "CIRCLE" ); - createGeomAction( 4014, "ELLIPSE" ); - createGeomAction( 4015, "ARC" ); - createGeomAction( 4019, "CURVE" ); - createGeomAction( 4016, "VECTOR" ); - createGeomAction( 4017, "PLANE" ); -// createGeomAction( 4018, "WORK_PLANE" ); DEPRECATED - createGeomAction( 4020, "LOCAL_CS" ); - - createGeomAction( 4021, "BOX" ); - createGeomAction( 4022, "CYLINDER" ); - createGeomAction( 4023, "SPHERE" ); - createGeomAction( 4024, "TORUS" ); - createGeomAction( 4025, "CONE" ); - createGeomAction( 4026, "FACE" ); - createGeomAction( 4027, "DISK" ); - - createGeomAction( 4031, "EXTRUSION" ); - createGeomAction( 4032, "REVOLUTION" ); - createGeomAction( 4033, "FILLING" ); - createGeomAction( 4034, "PIPE" ); - - createGeomAction( 800, "GROUP_CREATE" ); - createGeomAction( 801, "GROUP_EDIT" ); - - createGeomAction( 5029, "RELOAD_IMPORTED" ); - - createGeomAction( 9997, "Q_FACE" ); - createGeomAction( 9999, "HEX_SOLID" ); - - createGeomAction( 404, "SKETCH" ); - createGeomAction( 405, "3DSKETCH" ); - createGeomAction( 407, "EXPLODE" ); - - createGeomAction( 4081, "EDGE" ); - createGeomAction( 4082, "WIRE" ); - createGeomAction( 4083, "FACE" ); - createGeomAction( 4084, "SHELL" ); - createGeomAction( 4085, "SOLID" ); - createGeomAction( 4086, "COMPOUND" ); - - createGeomAction( 5011, "FUSE" ); - createGeomAction( 5012, "COMMON" ); - createGeomAction( 5013, "CUT" ); - createGeomAction( 5014, "SECTION" ); - - createGeomAction( 5021, "TRANSLATION" ); - createGeomAction( 5022, "ROTATION" ); - createGeomAction( 5023, "MODIFY_LOCATION" ); - createGeomAction( 5024, "MIRROR" ); - createGeomAction( 5025, "SCALE" ); - createGeomAction( 5026, "OFFSET" ); - createGeomAction( 5027, "MUL_TRANSLATION" ); - createGeomAction( 5028, "MUL_ROTATION" ); - - createGeomAction( 503, "PARTITION" ); - createGeomAction( 504, "ARCHIMEDE" ); - createGeomAction( 505, "FILLET" ); - createGeomAction( 506, "CHAMFER" ); - //createGeomAction( 507, "CLIPPING" ); - createGeomAction( 508, "GET_SHAPES_ON_SHAPES" ); - createGeomAction( 510, "FILLET_1D" ); - createGeomAction( 509, "FILLET_2D" ); - - createGeomAction( 9998, "MUL_TRANSFORM" ); - createGeomAction( 9995, "EXPLODE_BLOCKS" ); - createGeomAction( 99991, "PROPAGATE" ); - - createGeomAction( 601, "SEWING" ); - createGeomAction( 602, "GLUE_FACES" ); - createGeomAction( 603, "SUPPRESS_FACES" ); - createGeomAction( 604, "SUPPERSS_HOLES" ); - createGeomAction( 605, "SHAPE_PROCESS" ); - createGeomAction( 606, "CLOSE_CONTOUR" ); - createGeomAction( 607, "SUPPRESS_INT_WIRES" ); - createGeomAction( 608, "POINT_ON_EDGE" ); - createGeomAction( 609, "CHECK_FREE_BNDS" ); - createGeomAction( 610, "CHECK_FREE_FACES" ); - createGeomAction( 611, "CHANGE_ORIENTATION" ); - createGeomAction( 612, "REMOVE_EXTRA_EDGES" ); - - createGeomAction( 708, "POINT_COORDS" ); - createGeomAction( 701, "BASIC_PROPS" ); - createGeomAction( 702, "MASS_CENTER" ); - createGeomAction( 703, "INERTIA" ); - createGeomAction( 704, "NORMALE" ); - createGeomAction( 7041, "BND_BOX" ); - createGeomAction( 7042, "MIN_DIST" ); - createGeomAction( 7043, "MEASURE_ANGLE" ); - - createGeomAction( 705, "TOLERANCE" ); - createGeomAction( 706, "WHAT_IS" ); - createGeomAction( 707, "CHECK" ); - createGeomAction( 7072, "CHECK_COMPOUND" ); + createGeomAction( GEOMOp::OpImport, "IMPORT", "", Qt::ControlModifier + Qt::Key_I ); + createGeomAction( GEOMOp::OpExport, "EXPORT", "", Qt::ControlModifier + Qt::Key_E ); + + createGeomAction( GEOMOp::OpDelete, "DELETE", "", Qt::Key_Delete ); + + createGeomAction( GEOMOp::OpPoint, "POINT" ); + createGeomAction( GEOMOp::OpLine, "LINE" ); + createGeomAction( GEOMOp::OpCircle, "CIRCLE" ); + createGeomAction( GEOMOp::OpEllipse, "ELLIPSE" ); + createGeomAction( GEOMOp::OpArc, "ARC" ); + createGeomAction( GEOMOp::OpCurve, "CURVE" ); + createGeomAction( GEOMOp::OpVector, "VECTOR" ); + createGeomAction( GEOMOp::OpPlane, "PLANE" ); + createGeomAction( GEOMOp::OpLCS, "LOCAL_CS" ); + + createGeomAction( GEOMOp::OpBox, "BOX" ); + createGeomAction( GEOMOp::OpCylinder, "CYLINDER" ); + createGeomAction( GEOMOp::OpSphere, "SPHERE" ); + createGeomAction( GEOMOp::OpTorus, "TORUS" ); + createGeomAction( GEOMOp::OpCone, "CONE" ); + createGeomAction( GEOMOp::OpRectangle, "RECTANGLE" ); + createGeomAction( GEOMOp::OpDisk, "DISK" ); + + createGeomAction( GEOMOp::OpPrism, "EXTRUSION" ); + createGeomAction( GEOMOp::OpRevolution, "REVOLUTION" ); + createGeomAction( GEOMOp::OpFilling, "FILLING" ); + createGeomAction( GEOMOp::OpPipe, "PIPE" ); + + createGeomAction( GEOMOp::OpGroupCreate, "GROUP_CREATE" ); + createGeomAction( GEOMOp::OpGroupEdit, "GROUP_EDIT" ); + + createGeomAction( GEOMOp::OpReimport, "RELOAD_IMPORTED" ); + + createGeomAction( GEOMOp::OpQuadFace, "Q_FACE" ); + createGeomAction( GEOMOp::OpHexaSolid, "HEX_SOLID" ); + + createGeomAction( GEOMOp::Op2dSketcher, "SKETCH" ); + createGeomAction( GEOMOp::Op3dSketcher, "3DSKETCH" ); + createGeomAction( GEOMOp::OpExplode, "EXPLODE" ); + + createGeomAction( GEOMOp::OpEdge, "EDGE" ); + createGeomAction( GEOMOp::OpWire, "WIRE" ); + createGeomAction( GEOMOp::OpFace, "FACE" ); + createGeomAction( GEOMOp::OpShell, "SHELL" ); + createGeomAction( GEOMOp::OpSolid, "SOLID" ); + createGeomAction( GEOMOp::OpCompound, "COMPOUND" ); + + createGeomAction( GEOMOp::OpFuse, "FUSE" ); + createGeomAction( GEOMOp::OpCommon, "COMMON" ); + createGeomAction( GEOMOp::OpCut, "CUT" ); + createGeomAction( GEOMOp::OpSection, "SECTION" ); + + createGeomAction( GEOMOp::OpTranslate, "TRANSLATION" ); + createGeomAction( GEOMOp::OpRotate, "ROTATION" ); + createGeomAction( GEOMOp::OpChangeLoc, "MODIFY_LOCATION" ); + createGeomAction( GEOMOp::OpMirror, "MIRROR" ); + createGeomAction( GEOMOp::OpScale, "SCALE" ); + createGeomAction( GEOMOp::OpOffset, "OFFSET" ); + createGeomAction( GEOMOp::OpMultiTranslate, "MUL_TRANSLATION" ); + createGeomAction( GEOMOp::OpMultiRotate, "MUL_ROTATION" ); + + createGeomAction( GEOMOp::OpPartition, "PARTITION" ); + createGeomAction( GEOMOp::OpArchimede, "ARCHIMEDE" ); + createGeomAction( GEOMOp::OpFillet3d, "FILLET" ); + createGeomAction( GEOMOp::OpChamfer, "CHAMFER" ); + //createGeomAction( GEOMOp::OpClipping, "CLIPPING" ); + createGeomAction( GEOMOp::OpShapesOnShape, "GET_SHAPES_ON_SHAPES" ); + createGeomAction( GEOMOp::OpFillet1d, "FILLET_1D" ); + createGeomAction( GEOMOp::OpFillet2d, "FILLET_2D" ); + + createGeomAction( GEOMOp::OpMultiTransform, "MUL_TRANSFORM" ); + createGeomAction( GEOMOp::OpExplodeBlock, "EXPLODE_BLOCKS" ); + createGeomAction( GEOMOp::OpPropagate, "PROPAGATE" ); + + createGeomAction( GEOMOp::OpSewing, "SEWING" ); + createGeomAction( GEOMOp::OpGlueFaces, "GLUE_FACES" ); + createGeomAction( GEOMOp::OpSuppressFaces, "SUPPRESS_FACES" ); + createGeomAction( GEOMOp::OpSuppressHoles, "SUPPERSS_HOLES" ); + createGeomAction( GEOMOp::OpShapeProcess, "SHAPE_PROCESS" ); + createGeomAction( GEOMOp::OpCloseContour, "CLOSE_CONTOUR" ); + createGeomAction( GEOMOp::OpRemoveIntWires, "SUPPRESS_INT_WIRES" ); + createGeomAction( GEOMOp::OpAddPointOnEdge, "POINT_ON_EDGE" ); + createGeomAction( GEOMOp::OpFreeBoundaries, "CHECK_FREE_BNDS" ); + createGeomAction( GEOMOp::OpFreeFaces, "CHECK_FREE_FACES" ); + createGeomAction( GEOMOp::OpOrientation, "CHANGE_ORIENTATION" ); + createGeomAction( GEOMOp::OpRemoveExtraEdges, "REMOVE_EXTRA_EDGES" ); + + createGeomAction( GEOMOp::OpPointCoordinates, "POINT_COORDS" ); + createGeomAction( GEOMOp::OpProperties, "BASIC_PROPS" ); + createGeomAction( GEOMOp::OpCenterMass, "MASS_CENTER" ); + createGeomAction( GEOMOp::OpInertia, "INERTIA" ); + createGeomAction( GEOMOp::OpNormale, "NORMALE" ); + createGeomAction( GEOMOp::OpBoundingBox, "BND_BOX" ); + createGeomAction( GEOMOp::OpMinDistance, "MIN_DIST" ); + createGeomAction( GEOMOp::OpAngle, "MEASURE_ANGLE" ); + + createGeomAction( GEOMOp::OpTolerance, "TOLERANCE" ); + createGeomAction( GEOMOp::OpWhatIs, "WHAT_IS" ); + createGeomAction( GEOMOp::OpCheckShape, "CHECK" ); + createGeomAction( GEOMOp::OpCheckCompound, "CHECK_COMPOUND" ); #ifdef _DEBUG_ // PAL16821 - createGeomAction( 5103, "CHECK_GEOMETRY" ); + createGeomAction( GEOMOp::OpCheckGeom, "CHECK_GEOMETRY" ); #endif - createGeomAction( 412, "SHADING_COLOR" ); - - createGeomAction( 211, "SHADING" ); - createGeomAction( 212, "DISPLAY_ALL" ); - createGeomAction( 214, "ERASE_ALL" ); - createGeomAction( 216, "DISPLAY" ); - createGeomAction( 218, "VECTOR_MODE"); - createGeomAction( 2171, "VERTEX_SEL_ONLY" ,"", 0, true ); - createGeomAction( 2172, "EDGE_SEL_ONLY", "", 0, true ); - createGeomAction( 2173, "WIRE_SEL_ONLY", "", 0, true ); - createGeomAction( 2174, "FACE_SEL_ONLY", "", 0, true ); - createGeomAction( 2175, "SHELL_SEL_ONLY", "", 0, true ); - createGeomAction( 2176, "SOLID_SEL_ONLY", "", 0, true ); - createGeomAction( 2177, "COMPOUND_SEL_ONLY", "", 0, true ); - createGeomAction( 2178, "ALL_SEL_ONLY", "", 0, true ); - createGeomAction( 213, "DISPLAY_ONLY" ); - createGeomAction( 215, "ERASE" ); - - createGeomAction( 901, "POP_RENAME", "", Qt::Key_F2 ); - createGeomAction( 80311, "POP_WIREFRAME", "", 0, true ); - createGeomAction( 80312, "POP_SHADING", "", 0, true ); - createGeomAction( 80313, "POP_VECTORS", "", 0, true ); - createGeomAction( 8031, "POP_DEFLECTION" ); - createGeomAction( 8032, "POP_COLOR" ); - createGeomAction( 8033, "POP_TRANSPARENCY" ); - createGeomAction( 8034, "POP_ISOS" ); - createGeomAction( 8035, "POP_AUTO_COLOR" ); - createGeomAction( 8036, "POP_DISABLE_AUTO_COLOR" ); - createGeomAction( 8001, "POP_CREATE_GROUP" ); - createGeomAction( 8037, "POP_SHOW_CHILDREN" ); - createGeomAction( 8038, "POP_HIDE_CHILDREN" ); - createGeomAction( 8039, "POP_POINT_MARKER" ); - - // make wireframe-shading items to be exclusive (only one at a time is selected) - //QActionGroup* dispModeGr = new QActionGroup( this, "", true ); - //dispModeGr->add( action( 80311 ) ); - //dispModeGr->add( action( 80312 ) ); - // ---- create menu -------------------------- + + createGeomAction( GEOMOp::OpDisplayMode, "SHADING" ); + createGeomAction( GEOMOp::OpShowAll, "DISPLAY_ALL" ); + createGeomAction( GEOMOp::OpHideAll, "ERASE_ALL" ); + createGeomAction( GEOMOp::OpShow, "DISPLAY" ); + createGeomAction( GEOMOp::OpSwitchVectors, "VECTOR_MODE"); + createGeomAction( GEOMOp::OpSelectVertex, "VERTEX_SEL_ONLY" ,"", 0, true ); + createGeomAction( GEOMOp::OpSelectEdge, "EDGE_SEL_ONLY", "", 0, true ); + createGeomAction( GEOMOp::OpSelectWire, "WIRE_SEL_ONLY", "", 0, true ); + createGeomAction( GEOMOp::OpSelectFace, "FACE_SEL_ONLY", "", 0, true ); + createGeomAction( GEOMOp::OpSelectShell, "SHELL_SEL_ONLY", "", 0, true ); + createGeomAction( GEOMOp::OpSelectSolid, "SOLID_SEL_ONLY", "", 0, true ); + createGeomAction( GEOMOp::OpSelectCompound, "COMPOUND_SEL_ONLY", "", 0, true ); + createGeomAction( GEOMOp::OpSelectAll, "ALL_SEL_ONLY", "", 0, true ); + createGeomAction( GEOMOp::OpShowOnly, "DISPLAY_ONLY" ); + createGeomAction( GEOMOp::OpHide, "ERASE" ); + + createGeomAction( GEOMOp::OpRename, "POP_RENAME", "", Qt::Key_F2 ); + createGeomAction( GEOMOp::OpWireframe, "POP_WIREFRAME", "", 0, true ); + createGeomAction( GEOMOp::OpShading, "POP_SHADING", "", 0, true ); + createGeomAction( GEOMOp::OpVectors, "POP_VECTORS", "", 0, true ); + createGeomAction( GEOMOp::OpDeflection, "POP_DEFLECTION" ); + createGeomAction( GEOMOp::OpColor, "POP_COLOR" ); + createGeomAction( GEOMOp::OpTransparency, "POP_TRANSPARENCY" ); + createGeomAction( GEOMOp::OpIsos, "POP_ISOS" ); + createGeomAction( GEOMOp::OpAutoColor, "POP_AUTO_COLOR" ); + createGeomAction( GEOMOp::OpNoAutoColor, "POP_DISABLE_AUTO_COLOR" ); + createGeomAction( GEOMOp::OpGroupCreatePopup, "POP_CREATE_GROUP" ); + createGeomAction( GEOMOp::OpShowChildren, "POP_SHOW_CHILDREN" ); + createGeomAction( GEOMOp::OpHideChildren, "POP_HIDE_CHILDREN" ); + createGeomAction( GEOMOp::OpPointMarker, "POP_POINT_MARKER" ); + + // ---- create menus -------------------------- int fileId = createMenu( tr( "MEN_FILE" ), -1, -1 ); - createMenu( separator(), fileId, 10 ); - createMenu( 111, fileId, 10 ); - createMenu( 121, fileId, 10 ); - createMenu( separator(), fileId, -1 ); + createMenu( separator(), fileId, 10 ); + createMenu( GEOMOp::OpImport, fileId, 10 ); + createMenu( GEOMOp::OpExport, fileId, 10 ); + createMenu( separator(), fileId, -1 ); int editId = createMenu( tr( "MEN_EDIT" ), -1, -1 ); - createMenu( 33, editId, -1 ); + createMenu( GEOMOp::OpDelete, editId, -1 ); int newEntId = createMenu( tr( "MEN_NEW_ENTITY" ), -1, -1, 10 ); int basicId = createMenu( tr( "MEN_BASIC" ), newEntId, -1 ); - createMenu( 4011, basicId, -1 ); - createMenu( 4012, basicId, -1 ); - createMenu( 4013, basicId, -1 ); - createMenu( 4014, basicId, -1 ); - createMenu( 4015, basicId, -1 ); - createMenu( 4019, basicId, -1 ); - createMenu( separator(), basicId, -1 ); - createMenu( 4016, basicId, -1 ); - createMenu( 4017, basicId, -1 ); -// createMenu( 4018, basicId, -1 ); DEPRECATED - createMenu( 4020, basicId, -1 ); + createMenu( GEOMOp::OpPoint, basicId, -1 ); + createMenu( GEOMOp::OpLine, basicId, -1 ); + createMenu( GEOMOp::OpCircle, basicId, -1 ); + createMenu( GEOMOp::OpEllipse, basicId, -1 ); + createMenu( GEOMOp::OpArc, basicId, -1 ); + createMenu( GEOMOp::OpCurve, basicId, -1 ); + createMenu( separator(), basicId, -1 ); + createMenu( GEOMOp::OpVector, basicId, -1 ); + createMenu( GEOMOp::OpPlane, basicId, -1 ); + createMenu( GEOMOp::OpLCS, basicId, -1 ); int primId = createMenu( tr( "MEN_PRIMITIVES" ), newEntId, -1 ); - createMenu( 4021, primId, -1 ); - createMenu( 4022, primId, -1 ); - createMenu( 4023, primId, -1 ); - createMenu( 4024, primId, -1 ); - createMenu( 4025, primId, -1 ); - createMenu( 4026, primId, -1 ); - createMenu( 4027, primId, -1 ); + createMenu( GEOMOp::OpBox, primId, -1 ); + createMenu( GEOMOp::OpCylinder, primId, -1 ); + createMenu( GEOMOp::OpSphere, primId, -1 ); + createMenu( GEOMOp::OpTorus, primId, -1 ); + createMenu( GEOMOp::OpCone, primId, -1 ); + createMenu( GEOMOp::OpRectangle, primId, -1 ); + createMenu( GEOMOp::OpDisk, primId, -1 ); int genId = createMenu( tr( "MEN_GENERATION" ), newEntId, -1 ); - createMenu( 4031, genId, -1 ); - createMenu( 4032, genId, -1 ); - createMenu( 4033, genId, -1 ); - createMenu( 4034, genId, -1 ); + createMenu( GEOMOp::OpPrism, genId, -1 ); + createMenu( GEOMOp::OpRevolution, genId, -1 ); + createMenu( GEOMOp::OpFilling, genId, -1 ); + createMenu( GEOMOp::OpPipe, genId, -1 ); + createMenu( separator(), newEntId, -1 ); int groupId = createMenu( tr( "MEN_GROUP" ), newEntId, -1 ); - createMenu( 800, groupId, -1 ); - createMenu( 801, groupId, -1 ); + createMenu( GEOMOp::OpGroupCreate, groupId, -1 ); + createMenu( GEOMOp::OpGroupEdit, groupId, -1 ); + createMenu( separator(), newEntId, -1 ); int blocksId = createMenu( tr( "MEN_BLOCKS" ), newEntId, -1 ); - createMenu( 9997, blocksId, -1 ); - createMenu( 9999, blocksId, -1 ); + createMenu( GEOMOp::OpQuadFace, blocksId, -1 ); + createMenu( GEOMOp::OpHexaSolid, blocksId, -1 ); - createMenu( separator(), newEntId, -1 ); - createMenu( 404, newEntId, -1 ); - createMenu( 405, newEntId, -1 ); - createMenu( separator(), newEntId, -1 ); - createMenu( 407, newEntId, -1 ); + createMenu( separator(), newEntId, -1 ); + + createMenu( GEOMOp::Op2dSketcher, newEntId, -1 ); + createMenu( GEOMOp::Op3dSketcher, newEntId, -1 ); + + createMenu( separator(), newEntId, -1 ); + + createMenu( GEOMOp::OpExplode, newEntId, -1 ); int buildId = createMenu( tr( "MEN_BUILD" ), newEntId, -1 ); - createMenu( 4081, buildId, -1 ); - createMenu( 4082, buildId, -1 ); - createMenu( 4083, buildId, -1 ); - createMenu( 4084, buildId, -1 ); - createMenu( 4085, buildId, -1 ); - createMenu( 4086, buildId, -1 ); + createMenu( GEOMOp::OpEdge, buildId, -1 ); + createMenu( GEOMOp::OpWire, buildId, -1 ); + createMenu( GEOMOp::OpFace, buildId, -1 ); + createMenu( GEOMOp::OpShell, buildId, -1 ); + createMenu( GEOMOp::OpSolid, buildId, -1 ); + createMenu( GEOMOp::OpCompound, buildId, -1 ); int operId = createMenu( tr( "MEN_OPERATIONS" ), -1, -1, 10 ); int boolId = createMenu( tr( "MEN_BOOLEAN" ), operId, -1 ); - createMenu( 5011, boolId, -1 ); - createMenu( 5012, boolId, -1 ); - createMenu( 5013, boolId, -1 ); - createMenu( 5014, boolId, -1 ); + createMenu( GEOMOp::OpFuse, boolId, -1 ); + createMenu( GEOMOp::OpCommon, boolId, -1 ); + createMenu( GEOMOp::OpCut, boolId, -1 ); + createMenu( GEOMOp::OpSection, boolId, -1 ); int transId = createMenu( tr( "MEN_TRANSFORMATION" ), operId, -1 ); - createMenu( 5021, transId, -1 ); - createMenu( 5022, transId, -1 ); - createMenu( 5023, transId, -1 ); - createMenu( 5024, transId, -1 ); - createMenu( 5025, transId, -1 ); - createMenu( 5026, transId, -1 ); - createMenu( separator(), transId, -1 ); - createMenu( 5027, transId, -1 ); - createMenu( 5028, transId, -1 ); - - createMenu( 503, operId, -1 ); - createMenu( 504, operId, -1 ); - createMenu( 508, operId, -1 ); - createMenu( separator(), operId, -1 ); - createMenu( 510, transId, -1 ); - createMenu( 509, transId, -1 ); - createMenu( 505, transId, -1 ); - createMenu( 506, transId, -1 ); - //createMenu( 507, transId, -1 ); + createMenu( GEOMOp::OpTranslate, transId, -1 ); + createMenu( GEOMOp::OpRotate, transId, -1 ); + createMenu( GEOMOp::OpChangeLoc, transId, -1 ); + createMenu( GEOMOp::OpMirror, transId, -1 ); + createMenu( GEOMOp::OpScale, transId, -1 ); + createMenu( GEOMOp::OpOffset, transId, -1 ); + createMenu( separator(), transId, -1 ); + createMenu( GEOMOp::OpMultiTranslate, transId, -1 ); + createMenu( GEOMOp::OpMultiRotate, transId, -1 ); int blockId = createMenu( tr( "MEN_BLOCKS" ), operId, -1 ); - createMenu( 9998, blockId, -1 ); - createMenu( 9995, blockId, -1 ); - createMenu( 99991, blockId, -1 ); + createMenu( GEOMOp::OpMultiTransform, blockId, -1 ); + createMenu( GEOMOp::OpExplodeBlock, blockId, -1 ); + createMenu( GEOMOp::OpPropagate, blockId, -1 ); + + createMenu( separator(), operId, -1 ); + + createMenu( GEOMOp::OpPartition, operId, -1 ); + createMenu( GEOMOp::OpArchimede, operId, -1 ); + createMenu( GEOMOp::OpShapesOnShape, operId, -1 ); + + createMenu( separator(), operId, -1 ); + + createMenu( GEOMOp::OpFillet1d, operId, -1 ); + createMenu( GEOMOp::OpFillet2d, operId, -1 ); + createMenu( GEOMOp::OpFillet3d, operId, -1 ); + createMenu( GEOMOp::OpChamfer, operId, -1 ); + //createMenu( GEOMOp::OpClipping, operId, -1 ); int repairId = createMenu( tr( "MEN_REPAIR" ), -1, -1, 10 ); - createMenu( 605, repairId, -1 ); - createMenu( 603, repairId, -1 ); - createMenu( 606, repairId, -1 ); - createMenu( 607, repairId, -1 ); - createMenu( 604, repairId, -1 ); - createMenu( 601, repairId, -1 ); - createMenu( 602, repairId, -1 ); - createMenu( 608, repairId, -1 ); - //createMenu( 609, repairId, -1 ); - //createMenu( 610, repairId, -1 ); - createMenu( 611, repairId, -1 ); - createMenu( 612, repairId, -1 ); + createMenu( GEOMOp::OpShapeProcess, repairId, -1 ); + createMenu( GEOMOp::OpSuppressFaces, repairId, -1 ); + createMenu( GEOMOp::OpCloseContour, repairId, -1 ); + createMenu( GEOMOp::OpRemoveIntWires, repairId, -1 ); + createMenu( GEOMOp::OpSuppressHoles, repairId, -1 ); + createMenu( GEOMOp::OpSewing, repairId, -1 ); + createMenu( GEOMOp::OpGlueFaces, repairId, -1 ); + createMenu( GEOMOp::OpAddPointOnEdge, repairId, -1 ); + //createMenu( GEOMOp::OpFreeBoundaries, repairId, -1 ); + //createMenu( GEOMOp::OpFreeFaces, repairId, -1 ); + createMenu( GEOMOp::OpOrientation, repairId, -1 ); + createMenu( GEOMOp::OpRemoveExtraEdges, repairId, -1 ); int measurId = createMenu( tr( "MEN_MEASURES" ), -1, -1, 10 ); - createMenu( 708, measurId, -1 ); - createMenu( 701, measurId, -1 ); - createMenu( separator(), measurId, -1 ); - createMenu( 702, measurId, -1 ); - createMenu( 703, measurId, -1 ); - createMenu( 704, measurId, -1 ); - // NPAL16572: move "Check free boundaries" and "Check free faces" from "Repair" to "Measure" - createMenu( separator(), measurId, -1 ); - createMenu( 609, measurId, -1 ); - createMenu( 610, measurId, -1 ); - // NPAL16572 END - createMenu( separator(), measurId, -1 ); + createMenu( GEOMOp::OpPointCoordinates, measurId, -1 ); + createMenu( GEOMOp::OpProperties, measurId, -1 ); + createMenu( separator(), measurId, -1 ); + createMenu( GEOMOp::OpCenterMass, measurId, -1 ); + createMenu( GEOMOp::OpInertia, measurId, -1 ); + createMenu( GEOMOp::OpNormale, measurId, -1 ); + createMenu( separator(), measurId, -1 ); + createMenu( GEOMOp::OpFreeBoundaries, measurId, -1 ); + createMenu( GEOMOp::OpFreeFaces, measurId, -1 ); + createMenu( separator(), measurId, -1 ); int dimId = createMenu( tr( "MEN_DIMENSIONS" ), measurId, -1 ); - createMenu( 7041, dimId, -1 ); - createMenu( 7042, dimId, -1 ); - createMenu( 7043, dimId, -1 ); - createMenu( separator(), measurId, -1 ); + createMenu( GEOMOp::OpBoundingBox, dimId, -1 ); + createMenu( GEOMOp::OpMinDistance, dimId, -1 ); + createMenu( GEOMOp::OpAngle, dimId, -1 ); - createMenu( 705, measurId, -1 ); - createMenu( separator(), measurId, -1 ); - createMenu( 706, measurId, -1 ); - createMenu( 707, measurId, -1 ); - createMenu( 7072, measurId, -1 ); + createMenu( separator(), measurId, -1 ); + createMenu( GEOMOp::OpTolerance, measurId, -1 ); + createMenu( separator(), measurId, -1 ); + createMenu( GEOMOp::OpWhatIs, measurId, -1 ); + createMenu( GEOMOp::OpCheckShape, measurId, -1 ); + createMenu( GEOMOp::OpCheckCompound, measurId, -1 ); #ifdef _DEBUG_ // PAL16821 int toolsId = createMenu( tr( "MEN_TOOLS" ), -1, -1, 50 ); - createMenu( separator(), toolsId, -1 ); - createMenu( 5103, toolsId, -1 ); + createMenu( separator(), toolsId, -1 ); + createMenu( GEOMOp::OpCheckGeom, toolsId, -1 ); #endif - //int prefId = createMenu( tr( "MEN_PREFERENCES" ), -1, -1, 50 ); - //createMenu( separator(), prefId, -1 ); - //int geomId = createMenu( tr( "MEN_PREFERENCES_GEOM" ), prefId, -1 ); - //createMenu( 412, geomId, -1 ); - //createMenu( separator(), prefId, -1 ); int viewId = createMenu( tr( "MEN_VIEW" ), -1, -1 ); - createMenu( separator(), viewId, -1 ); + createMenu( separator(), viewId, -1 ); int dispmodeId = createMenu( tr( "MEN_DISPLAY_MODE" ), viewId, -1 ); - createMenu( 211, dispmodeId, -1 ); - createMenu( separator(), dispmodeId, -1 ); - createMenu( 218, dispmodeId, -1 ); + createMenu( GEOMOp::OpDisplayMode, dispmodeId, -1 ); + createMenu( separator(), dispmodeId, -1 ); + createMenu( GEOMOp::OpSwitchVectors, dispmodeId, -1 ); - createMenu( separator(), viewId, -1 ); - createMenu( 212, viewId, -1 ); - createMenu( 214, viewId, -1 ); - createMenu( separator(), viewId, -1 ); + createMenu( separator(), viewId, -1 ); + createMenu( GEOMOp::OpShowAll, viewId, -1 ); + createMenu( GEOMOp::OpHideAll, viewId, -1 ); + createMenu( separator(), viewId, -1 ); /* PAL9111: because of these items are accessible through object browser and viewers we have removed they from main menu - createMenu( 216, viewId, -1 ); - createMenu( 213, viewId, -1 ); - createMenu( 215, viewId, -1 ); + createMenu( GEOMOp::OpShow, viewId, -1 ); + createMenu( GEOMOp::OpShowOnly, viewId, -1 ); + createMenu( GEOMOp::OpHide, viewId, -1 ); */ // ---- create toolbars -------------------------- int basicTbId = createTool( tr( "TOOL_BASIC" ) ); - createTool( 4011, basicTbId ); - createTool( 4012, basicTbId ); - createTool( 4013, basicTbId ); - createTool( 4014, basicTbId ); - createTool( 4015, basicTbId ); - createTool( 4019, basicTbId ); - createTool( 4016, basicTbId ); - createTool( 4017, basicTbId ); -// createTool( 4018, basicTbId ); DEPRECATED - createTool( 4020, basicTbId ); + createTool( GEOMOp::OpPoint, basicTbId ); + createTool( GEOMOp::OpLine, basicTbId ); + createTool( GEOMOp::OpCircle, basicTbId ); + createTool( GEOMOp::OpEllipse, basicTbId ); + createTool( GEOMOp::OpArc, basicTbId ); + createTool( GEOMOp::OpCurve, basicTbId ); + createTool( GEOMOp::OpVector, basicTbId ); + createTool( GEOMOp::OpPlane, basicTbId ); + createTool( GEOMOp::OpLCS, basicTbId ); int primTbId = createTool( tr( "TOOL_PRIMITIVES" ) ); - createTool( 4021, primTbId ); - createTool( 4022, primTbId ); - createTool( 4023, primTbId ); - createTool( 4024, primTbId ); - createTool( 4025, primTbId ); - createTool( 4026, primTbId ); - createTool( 4027, primTbId ); + createTool( GEOMOp::OpBox, primTbId ); + createTool( GEOMOp::OpCylinder, primTbId ); + createTool( GEOMOp::OpSphere, primTbId ); + createTool( GEOMOp::OpTorus, primTbId ); + createTool( GEOMOp::OpCone, primTbId ); + createTool( GEOMOp::OpRectangle, primTbId ); + createTool( GEOMOp::OpDisk, primTbId ); int boolTbId = createTool( tr( "TOOL_BOOLEAN" ) ); - createTool( 5011, boolTbId ); - createTool( 5012, boolTbId ); - createTool( 5013, boolTbId ); - createTool( 5014, boolTbId ); + createTool( GEOMOp::OpFuse, boolTbId ); + createTool( GEOMOp::OpCommon, boolTbId ); + createTool( GEOMOp::OpCut, boolTbId ); + createTool( GEOMOp::OpSection, boolTbId ); int genTbId = createTool( tr( "TOOL_GENERATION" ) ); - createTool( 4031, genTbId ); - createTool( 4032, genTbId ); - createTool( 4033, genTbId ); - createTool( 4034, genTbId ); + createTool( GEOMOp::OpPrism, genTbId ); + createTool( GEOMOp::OpRevolution, genTbId ); + createTool( GEOMOp::OpFilling, genTbId ); + createTool( GEOMOp::OpPipe, genTbId ); int transTbId = createTool( tr( "TOOL_TRANSFORMATION" ) ); - createTool( 5021, transTbId ); - createTool( 5022, transTbId ); - createTool( 5023, transTbId ); - createTool( 5024, transTbId ); - createTool( 5025, transTbId ); - createTool( 5026, transTbId ); - createTool( separator(), transTbId ); - createTool( 5027, transTbId ); - createTool( 5028, transTbId ); + createTool( GEOMOp::OpTranslate, transTbId ); + createTool( GEOMOp::OpRotate, transTbId ); + createTool( GEOMOp::OpChangeLoc, transTbId ); + createTool( GEOMOp::OpMirror, transTbId ); + createTool( GEOMOp::OpScale, transTbId ); + createTool( GEOMOp::OpOffset, transTbId ); + createTool( separator(), transTbId ); + createTool( GEOMOp::OpMultiTranslate, transTbId ); + createTool( GEOMOp::OpMultiRotate, transTbId ); + + int operTbId = createTool( tr( "TOOL_OPERATIONS" ) ); + createTool( GEOMOp::Op2dSketcher, operTbId ); + createTool( GEOMOp::Op3dSketcher, operTbId ); + createTool( separator(), operTbId ); + createTool( GEOMOp::OpExplode, operTbId ); + createTool( separator(), operTbId ); + createTool( GEOMOp::OpPartition, operTbId ); + createTool( GEOMOp::OpArchimede, operTbId ); + createTool( GEOMOp::OpShapesOnShape, operTbId ); + createTool( separator(), operTbId ); + createTool( GEOMOp::OpFillet1d, operTbId ); + createTool( GEOMOp::OpFillet2d, operTbId ); + createTool( GEOMOp::OpFillet3d, operTbId ); + createTool( GEOMOp::OpChamfer, operTbId ); + + int buildTbId = createTool( tr( "TOOL_BUILD" ) ); + createTool( GEOMOp::OpEdge, buildTbId ); + createTool( GEOMOp::OpWire, buildTbId ); + createTool( GEOMOp::OpFace, buildTbId ); + createTool( GEOMOp::OpShell, buildTbId ); + createTool( GEOMOp::OpSolid, buildTbId ); + createTool( GEOMOp::OpCompound, buildTbId ); // ---- create popup menus -------------------------- @@ -1144,93 +978,92 @@ void GeometryGUI::initialize( CAM_Application* app ) "(client='ObjectBrowser' or client='OCCViewer') and type='Shape' and selcount=1 and isOCC=true"; QtxPopupMgr* mgr = popupMgr(); - mgr->insert( action( 901 ), -1, -1 ); // rename - mgr->setRule( action( 901 ), QString("$type in {'Shape' 'Group'} and selcount=1"), QtxPopupMgr::VisibleRule ); - mgr->insert( action( 33 ), -1, -1 ); // delete - mgr->setRule( action( 33 ), QString("$type in {'Shape' 'Group'} and selcount>0"), QtxPopupMgr::VisibleRule ); - mgr->insert( action( 8001 ), -1, -1 ); // create group - mgr->setRule( action( 8001 ), QString("client='ObjectBrowser' and type='Shape' and selcount=1 and isOCC=true"), QtxPopupMgr::VisibleRule ); - mgr->insert( action( 8037 ), -1, -1 ); // show children - mgr->setRule( action( 8037 ), QString("client='ObjectBrowser' and type='Shape' and selcount=1 and hasHiddenChildren=true"), QtxPopupMgr::VisibleRule ); - mgr->insert( action( 8038 ), -1, -1 ); // hide children - mgr->setRule( action( 8038 ), QString("client='ObjectBrowser' and type='Shape' and selcount=1 and hasShownChildren=true"), QtxPopupMgr::VisibleRule ); - mgr->insert( action( 801 ), -1, -1 ); // edit group - mgr->setRule( action( 801 ), QString("client='ObjectBrowser' and type='Group' and selcount=1 and isOCC=true"), QtxPopupMgr::VisibleRule ); + mgr->insert( action( GEOMOp::OpRename ), -1, -1 ); // rename + mgr->setRule( action( GEOMOp::OpRename ), QString("$type in {'Shape' 'Group'} and selcount=1"), QtxPopupMgr::VisibleRule ); + mgr->insert( action( GEOMOp::OpDelete ), -1, -1 ); // delete + mgr->setRule( action( GEOMOp::OpDelete ), QString("$type in {'Shape' 'Group'} and selcount>0"), QtxPopupMgr::VisibleRule ); + mgr->insert( action( GEOMOp::OpGroupCreatePopup ), -1, -1 ); // create group + mgr->setRule( action( GEOMOp::OpGroupCreatePopup ), QString("client='ObjectBrowser' and type='Shape' and selcount=1 and isOCC=true"), QtxPopupMgr::VisibleRule ); + mgr->insert( action( GEOMOp::OpShowChildren ), -1, -1 ); // show children + mgr->setRule( action( GEOMOp::OpShowChildren ), QString("client='ObjectBrowser' and type='Shape' and selcount=1 and hasHiddenChildren=true"), QtxPopupMgr::VisibleRule ); + mgr->insert( action( GEOMOp::OpHideChildren ), -1, -1 ); // hide children + mgr->setRule( action( GEOMOp::OpHideChildren ), QString("client='ObjectBrowser' and type='Shape' and selcount=1 and hasShownChildren=true"), QtxPopupMgr::VisibleRule ); + mgr->insert( action( GEOMOp::OpGroupEdit ), -1, -1 ); // edit group + mgr->setRule( action( GEOMOp::OpGroupEdit ), QString("client='ObjectBrowser' and type='Group' and selcount=1 and isOCC=true"), QtxPopupMgr::VisibleRule ); mgr->insert( separator(), -1, -1 ); // ----------- dispmodeId = mgr->insert( tr( "MEN_DISPLAY_MODE" ), -1, -1 ); // display mode menu - mgr->insert( action( 80311 ), dispmodeId, -1 ); // wireframe - mgr->setRule( action( 80311 ), clientOCCorVTK_AndSomeVisible, QtxPopupMgr::VisibleRule ); - mgr->setRule( action( 80311 ), clientOCCorVTK + " and displaymode='Wireframe'", QtxPopupMgr::ToggleRule ); - mgr->insert( action( 80312 ), dispmodeId, -1 ); // shading - mgr->setRule( action( 80312 ), clientOCCorVTK_AndSomeVisible, QtxPopupMgr::VisibleRule ); - mgr->setRule( action( 80312 ), clientOCCorVTK + " and displaymode='Shading'", QtxPopupMgr::ToggleRule ); + mgr->insert( action( GEOMOp::OpWireframe ), dispmodeId, -1 ); // wireframe + mgr->setRule( action( GEOMOp::OpWireframe ), clientOCCorVTK_AndSomeVisible, QtxPopupMgr::VisibleRule ); + mgr->setRule( action( GEOMOp::OpWireframe ), clientOCCorVTK + " and displaymode='Wireframe'", QtxPopupMgr::ToggleRule ); + mgr->insert( action( GEOMOp::OpShading ), dispmodeId, -1 ); // shading + mgr->setRule( action( GEOMOp::OpShading ), clientOCCorVTK_AndSomeVisible, QtxPopupMgr::VisibleRule ); + mgr->setRule( action( GEOMOp::OpShading ), clientOCCorVTK + " and displaymode='Shading'", QtxPopupMgr::ToggleRule ); mgr->insert( separator(), dispmodeId, -1 ); - mgr->insert( action( 80313 ), dispmodeId, -1 ); // vectors - mgr->setRule( action( 80313 ), clientOCCorVTK_AndSomeVisible, QtxPopupMgr::VisibleRule ); - mgr->setRule( action( 80313 ), clientOCCorVTK + " and isVectorsMode", QtxPopupMgr::ToggleRule ); + mgr->insert( action( GEOMOp::OpVectors ), dispmodeId, -1 ); // vectors + mgr->setRule( action( GEOMOp::OpVectors ), clientOCCorVTK_AndSomeVisible, QtxPopupMgr::VisibleRule ); + mgr->setRule( action( GEOMOp::OpVectors ), clientOCCorVTK + " and isVectorsMode", QtxPopupMgr::ToggleRule ); mgr->insert( separator(), -1, -1 ); // ----------- - mgr->insert( action( 8032 ), -1, -1 ); // color - mgr->setRule( action( 8032 ), clientOCCorVTKorOB_AndSomeVisible + " and ($component={'GEOM'})", QtxPopupMgr::VisibleRule ); - mgr->insert( action( 8033 ), -1, -1 ); // transparency - mgr->setRule( action( 8033 ), clientOCCorVTK_AndSomeVisible, QtxPopupMgr::VisibleRule ); - mgr->insert( action( 8034 ), -1, -1 ); // isos - mgr->setRule( action( 8034 ), clientOCCorVTK_AndSomeVisible + " and selcount>0 and isVisible", QtxPopupMgr::VisibleRule ); - mgr->insert( action( 8031 ), -1, -1 ); // deflection - mgr->setRule( action( 8031 ), clientOCCorVTK_AndSomeVisible + " and selcount>0 and isVisible", QtxPopupMgr::VisibleRule ); - mgr->insert( action( 8039 ), -1, -1 ); // point marker - mgr->setRule( action( 8039 ), QString( "selcount>0 and $typeid in {%1}" ).arg( GEOM_POINT ), QtxPopupMgr::VisibleRule ); + mgr->insert( action( GEOMOp::OpColor ), -1, -1 ); // color + mgr->setRule( action( GEOMOp::OpColor ), clientOCCorVTKorOB_AndSomeVisible + " and ($component={'GEOM'})", QtxPopupMgr::VisibleRule ); + mgr->insert( action( GEOMOp::OpTransparency ), -1, -1 ); // transparency + mgr->setRule( action( GEOMOp::OpTransparency ), clientOCCorVTK_AndSomeVisible, QtxPopupMgr::VisibleRule ); + mgr->insert( action( GEOMOp::OpIsos ), -1, -1 ); // isos + mgr->setRule( action( GEOMOp::OpIsos ), clientOCCorVTK_AndSomeVisible + " and selcount>0 and isVisible", QtxPopupMgr::VisibleRule ); + mgr->insert( action( GEOMOp::OpDeflection ), -1, -1 ); // deflection + mgr->setRule( action( GEOMOp::OpDeflection ), clientOCCorVTK_AndSomeVisible + " and selcount>0 and isVisible", QtxPopupMgr::VisibleRule ); + mgr->insert( action( GEOMOp::OpPointMarker ), -1, -1 ); // point marker + mgr->setRule( action( GEOMOp::OpPointMarker ), QString( "selcount>0 and $typeid in {%1}" ).arg( GEOM_POINT ), QtxPopupMgr::VisibleRule ); mgr->insert( separator(), -1, -1 ); // ----------- - mgr->insert( action( 8035 ), -1, -1 ); // auto color - mgr->setRule( action( 8035 ), autoColorPrefix + " and isAutoColor=false", QtxPopupMgr::VisibleRule ); - mgr->insert( action( 8036 ), -1, -1 ); // disable auto color - mgr->setRule( action( 8036 ), autoColorPrefix + " and isAutoColor=true", QtxPopupMgr::VisibleRule ); + mgr->insert( action( GEOMOp::OpAutoColor ), -1, -1 ); // auto color + mgr->setRule( action( GEOMOp::OpAutoColor ), autoColorPrefix + " and isAutoColor=false", QtxPopupMgr::VisibleRule ); + mgr->insert( action( GEOMOp::OpNoAutoColor ), -1, -1 ); // disable auto color + mgr->setRule( action( GEOMOp::OpNoAutoColor ), autoColorPrefix + " and isAutoColor=true", QtxPopupMgr::VisibleRule ); mgr->insert( separator(), -1, -1 ); // ----------- - QString canDisplay = "($component={'GEOM'}) and (selcount>0) and ({true} in $canBeDisplayed) ", onlyComponent = "((type='Component') and selcount=1)", rule = canDisplay + "and ((($type in {%1}) and( %2 )) or " + onlyComponent + ")", types = "'Shape' 'Group'"; - mgr->insert( action( 216 ), -1, -1 ); // display - mgr->setRule( action( 216 ), rule.arg( types ).arg( "not isVisible" ), QtxPopupMgr::VisibleRule ); + mgr->insert( action( GEOMOp::OpShow ), -1, -1 ); // display + mgr->setRule( action( GEOMOp::OpShow ), rule.arg( types ).arg( "not isVisible" ), QtxPopupMgr::VisibleRule ); - mgr->insert( action( 215 ), -1, -1 ); // erase - mgr->setRule( action( 215 ), rule.arg( types ).arg( "isVisible" ), QtxPopupMgr::VisibleRule ); + mgr->insert( action( GEOMOp::OpHide ), -1, -1 ); // erase + mgr->setRule( action( GEOMOp::OpHide ), rule.arg( types ).arg( "isVisible" ), QtxPopupMgr::VisibleRule ); - mgr->insert( action( 214 ), -1, -1 ); // erase All - mgr->setRule( action( 214 ), clientOCCorVTK, QtxPopupMgr::VisibleRule ); + mgr->insert( action( GEOMOp::OpHideAll ), -1, -1 ); // erase All + mgr->setRule( action( GEOMOp::OpHideAll ), clientOCCorVTK, QtxPopupMgr::VisibleRule ); QString selectOnly = "(client='OCCViewer' or client='VTKViewer') and (selcount=0)"; int selectolnyId = mgr->insert( tr("MEN_SELECT_ONLY"), -1, -1); //select only menu - mgr->insert( action(2171), selectolnyId, -1); //Vertex - mgr->setRule(action(2171), selectOnly, QtxPopupMgr::VisibleRule); - mgr->setRule(action(2171), selectOnly + " and selectionmode='VERTEX'", QtxPopupMgr::ToggleRule); - mgr->insert( action(2172), selectolnyId, -1); //Edge - mgr->setRule(action(2172), selectOnly, QtxPopupMgr::VisibleRule); - mgr->setRule(action(2172), selectOnly + " and selectionmode='EDGE'", QtxPopupMgr::ToggleRule); - mgr->insert( action(2173), selectolnyId, -1); //Wire - mgr->setRule(action(2173), selectOnly, QtxPopupMgr::VisibleRule); - mgr->setRule(action(2173), selectOnly + " and selectionmode='WIRE'", QtxPopupMgr::ToggleRule); - mgr->insert( action(2174), selectolnyId, -1); //Face - mgr->setRule(action(2174), selectOnly, QtxPopupMgr::VisibleRule); - mgr->setRule(action(2174), selectOnly + " and selectionmode='FACE'", QtxPopupMgr::ToggleRule); - mgr->insert( action(2175), selectolnyId, -1); //Shell - mgr->setRule(action(2175), selectOnly, QtxPopupMgr::VisibleRule); - mgr->setRule(action(2175), selectOnly + " and selectionmode='SHELL'", QtxPopupMgr::ToggleRule); - mgr->insert( action(2176), selectolnyId, -1); //Solid - mgr->setRule(action(2176), selectOnly, QtxPopupMgr::VisibleRule); - mgr->setRule(action(2176), selectOnly + " and selectionmode='SOLID'", QtxPopupMgr::ToggleRule); - mgr->insert( action(2177), selectolnyId, -1); //Compound - mgr->setRule(action(2177), selectOnly, QtxPopupMgr::VisibleRule); - mgr->setRule(action(2177), selectOnly + " and selectionmode='COMPOUND'", QtxPopupMgr::ToggleRule); + mgr->insert( action(GEOMOp::OpSelectVertex), selectolnyId, -1); //Vertex + mgr->setRule(action(GEOMOp::OpSelectVertex), selectOnly, QtxPopupMgr::VisibleRule); + mgr->setRule(action(GEOMOp::OpSelectVertex), selectOnly + " and selectionmode='VERTEX'", QtxPopupMgr::ToggleRule); + mgr->insert( action(GEOMOp::OpSelectEdge), selectolnyId, -1); //Edge + mgr->setRule(action(GEOMOp::OpSelectEdge), selectOnly, QtxPopupMgr::VisibleRule); + mgr->setRule(action(GEOMOp::OpSelectEdge), selectOnly + " and selectionmode='EDGE'", QtxPopupMgr::ToggleRule); + mgr->insert( action(GEOMOp::OpSelectWire), selectolnyId, -1); //Wire + mgr->setRule(action(GEOMOp::OpSelectWire), selectOnly, QtxPopupMgr::VisibleRule); + mgr->setRule(action(GEOMOp::OpSelectWire), selectOnly + " and selectionmode='WIRE'", QtxPopupMgr::ToggleRule); + mgr->insert( action(GEOMOp::OpSelectFace), selectolnyId, -1); //Face + mgr->setRule(action(GEOMOp::OpSelectFace), selectOnly, QtxPopupMgr::VisibleRule); + mgr->setRule(action(GEOMOp::OpSelectFace), selectOnly + " and selectionmode='FACE'", QtxPopupMgr::ToggleRule); + mgr->insert( action(GEOMOp::OpSelectShell), selectolnyId, -1); //Shell + mgr->setRule(action(GEOMOp::OpSelectShell), selectOnly, QtxPopupMgr::VisibleRule); + mgr->setRule(action(GEOMOp::OpSelectShell), selectOnly + " and selectionmode='SHELL'", QtxPopupMgr::ToggleRule); + mgr->insert( action(GEOMOp::OpSelectSolid), selectolnyId, -1); //Solid + mgr->setRule(action(GEOMOp::OpSelectSolid), selectOnly, QtxPopupMgr::VisibleRule); + mgr->setRule(action(GEOMOp::OpSelectSolid), selectOnly + " and selectionmode='SOLID'", QtxPopupMgr::ToggleRule); + mgr->insert( action(GEOMOp::OpSelectCompound), selectolnyId, -1); //Compound + mgr->setRule(action(GEOMOp::OpSelectCompound), selectOnly, QtxPopupMgr::VisibleRule); + mgr->setRule(action(GEOMOp::OpSelectCompound), selectOnly + " and selectionmode='COMPOUND'", QtxPopupMgr::ToggleRule); mgr->insert( separator(), selectolnyId, -1); - mgr->insert( action(2178), selectolnyId, -1); //Clear selection filter - mgr->setRule(action(2178), selectOnly, QtxPopupMgr::VisibleRule); - mgr->setRule(action(2178), selectOnly + " and selectionmode='ALL'", QtxPopupMgr::ToggleRule); - mgr->insert( action( 213 ), -1, -1 ); // display only - mgr->setRule( action( 213 ), rule.arg( types ).arg( "true" ), QtxPopupMgr::VisibleRule ); + mgr->insert( action(GEOMOp::OpSelectAll), selectolnyId, -1); //Clear selection filter + mgr->setRule(action(GEOMOp::OpSelectAll), selectOnly, QtxPopupMgr::VisibleRule); + mgr->setRule(action(GEOMOp::OpSelectAll), selectOnly + " and selectionmode='ALL'", QtxPopupMgr::ToggleRule); + mgr->insert( action(GEOMOp::OpShowOnly ), -1, -1 ); // display only + mgr->setRule(action(GEOMOp::OpShowOnly ), rule.arg( types ).arg( "true" ), QtxPopupMgr::VisibleRule ); mgr->insert( separator(), -1, -1 ); mgr->hide( mgr->actionId( action( myEraseAll ) ) ); @@ -1257,12 +1090,10 @@ bool GeometryGUI::activateModule( SUIT_Study* study ) this, SLOT( onWindowActivated( SUIT_ViewWindow* ) ) ); // Reset actions accelerator keys - //action(111)->setAccel(QKeySequence(CTRL + Key_I)); // Import - //action(121)->setAccel(QKeySequence(CTRL + Key_E)); // Export - action(111)->setEnabled( true ); // Import: CTRL + Key_I - action(121)->setEnabled( true ); // Export: CTRL + Key_E - action( 33)->setEnabled( true ); // Delete: Key_Delete - action(901)->setEnabled( true ); // Rename: Key_F2 + action(GEOMOp::OpImport)->setEnabled( true ); // Import: CTRL + Key_I + action(GEOMOp::OpExport)->setEnabled( true ); // Export: CTRL + Key_E + action(GEOMOp::OpDelete)->setEnabled( true ); // Delete: Key_Delete + action(GEOMOp::OpRename)->setEnabled( true ); // Rename: Key_F2 GUIMap::Iterator it; for ( it = myGUIMap.begin(); it != myGUIMap.end(); ++it ) @@ -1335,12 +1166,10 @@ bool GeometryGUI::deactivateModule( SUIT_Study* study ) it.value()->deactivate(); // Unset actions accelerator keys - //action(111)->setAccel(QKeySequence()); // Import - //action(121)->setAccel(QKeySequence()); // Export - action(111)->setEnabled( false ); // Import: CTRL + Key_I - action(121)->setEnabled( false ); // Export: CTRL + Key_E - action( 33)->setEnabled( false ); // Delete: Key_Delete - action(901)->setEnabled( false ); // Rename: Key_F2 + action(GEOMOp::OpImport)->setEnabled( false ); // Import: CTRL + Key_I + action(GEOMOp::OpExport)->setEnabled( false ); // Export: CTRL + Key_E + action(GEOMOp::OpDelete)->setEnabled( false ); // Delete: Key_Delete + action(GEOMOp::OpRename)->setEnabled( false ); // Rename: Key_F2 qDeleteAll(myOCCSelectors); myOCCSelectors.clear(); @@ -1353,15 +1182,6 @@ bool GeometryGUI::deactivateModule( SUIT_Study* study ) return SalomeApp_Module::deactivateModule( study ); } -//======================================================================= -// function : GeometryGUI::BuildPresentation() -// purpose : -//======================================================================= -void GeometryGUI::BuildPresentation( const Handle(SALOME_InteractiveObject)& io, SUIT_ViewWindow* win ) -{ - //GEOM_Displayer().Display( io, false, win ); -} - //======================================================================= // function : onWindowActivated() // purpose : update menu items' status - disable non-OCC-viewer-compatible actions @@ -1375,18 +1195,18 @@ void GeometryGUI::onWindowActivated( SUIT_ViewWindow* win ) //const bool ViewVTK = ( win->getViewManager()->getType() == SVTK_Viewer::Type() ); // disable non-OCC viewframe menu commands -// action( 404 )->setEnabled( ViewOCC ); // SKETCHER - action( 603 )->setEnabled( ViewOCC ); // SuppressFace - action( 604 )->setEnabled( ViewOCC ); // SuppressHole - action( 606 )->setEnabled( ViewOCC ); // CloseContour - action( 607 )->setEnabled( ViewOCC ); // RemoveInternalWires - action( 608 )->setEnabled( ViewOCC ); // AddPointOnEdge -// action( 609 )->setEnabled( ViewOCC ); // Free boundaries - - action( 800 )->setEnabled( ViewOCC ); // Create Group - action( 801 )->setEnabled( ViewOCC ); // Edit Group - - action( 9998 )->setEnabled( ViewOCC ); // MENU BLOCKS - MULTI-TRANSFORMATION +// action( GEOMOp::Op2dSketcher )->setEnabled( ViewOCC ); // SKETCHER + action( GEOMOp::OpSuppressFaces )->setEnabled( ViewOCC ); // SuppressFace + action( GEOMOp::OpSuppressHoles )->setEnabled( ViewOCC ); // SuppressHole + action( GEOMOp::OpCloseContour )->setEnabled( ViewOCC ); // CloseContour + action( GEOMOp::OpRemoveIntWires )->setEnabled( ViewOCC ); // RemoveInternalWires + action( GEOMOp::OpAddPointOnEdge )->setEnabled( ViewOCC ); // AddPointOnEdge +// action( GEOMOp::OpFreeBoundaries )->setEnabled( ViewOCC ); // Free boundaries + + action( GEOMOp::OpGroupCreate )->setEnabled( ViewOCC ); // Create Group + action( GEOMOp::OpGroupEdit )->setEnabled( ViewOCC ); // Edit Group + + action( GEOMOp::OpMultiTransform )->setEnabled( ViewOCC ); // MENU BLOCKS - MULTI-TRANSFORMATION } void GeometryGUI::windows( QMap& mappa ) const @@ -1412,7 +1232,6 @@ void GeometryGUI::onViewManagerAdded( SUIT_ViewManager* vm ) connect( vm, SIGNAL( mouseMove ( SUIT_ViewWindow*, QMouseEvent* ) ), this, SLOT( OnMouseMove( SUIT_ViewWindow*, QMouseEvent* ) ) ); - LightApp_SelectionMgr* sm = getApp()->selectionMgr(); myOCCSelectors.append( new GEOMGUI_OCCSelector( ((OCCViewer_ViewManager*)vm)->getOCCViewer(), sm ) ); @@ -1536,7 +1355,7 @@ void GeometryGUI::contextMenuPopup( const QString& client, QMenu* menu, QString& } if (isImported) { - menu->addAction(action(5029)); // Reload imported shape + menu->addAction(action(GEOMOp::OpReimport)); // Reload imported shape } } @@ -2102,7 +1921,7 @@ void GeometryGUI::restoreVisualParameters (int savePoint) void GeometryGUI::onViewAboutToShow() { SUIT_ViewWindow* window = application()->desktop()->activeWindow(); - QAction* a = action( 218 ); + QAction* a = action( GEOMOp::OpSwitchVectors ); if ( window ) { a->setEnabled(true); bool vmode = window->getCustomData("VectorsMode").toBool(); diff --git a/src/GEOMGUI/GeometryGUI.h b/src/GEOMGUI/GeometryGUI.h index 249359762..2195f5b21 100644 --- a/src/GEOMGUI/GeometryGUI.h +++ b/src/GEOMGUI/GeometryGUI.h @@ -50,8 +50,6 @@ // minimum allowed value for deflection coefficient #define DEFLECTION_MIN 1e-06 -typedef QMap GUIMap; - class QDialog; class QMenu; class GEOMGUI_OCCSelector; @@ -81,17 +79,14 @@ public: static Handle(Graphic3d_HArray1OfBytes) getTexture( SalomeApp_Study*, int, int&, int& ); - static bool InitGeomGen(); //BugID IPAL9186: SRN: To be called by Python scripts + static bool InitGeomGen(); - static GEOM::GEOM_Gen_var GetGeomGen();// { return GeometryGUI::myComponentGeom; } + static GEOM::GEOM_Gen_var GetGeomGen(); static CORBA::Object_var ClientSObjectToObject (_PTR(SObject) theSObject); static SALOMEDS::Study_var ClientStudyToStudy (_PTR(Study) theStudy); GEOM_Client& GetShapeReader() { return myShapeReader; } - Standard_CString& GetFatherior() { return myFatherior; } - //void SetState( const int state ) { myState = state; } - //int GetState() const { return myState; } // Get active dialog box QDialog* GetActiveDialogBox(){ return myActiveDialogBox; } @@ -103,16 +98,9 @@ public: void EmitSignalCloseAllDialogs(); void EmitSignalDefaultStepValueChanged( double newVal ); + // Process action void OnGUIEvent( int id ); -// virtual bool SetSettings(); -// virtual void SupportedViewType ( int* buffer, int bufferSize ); - virtual void BuildPresentation( const Handle(SALOME_InteractiveObject)&, SUIT_ViewWindow* = 0 ); - -// virtual void DefinePopup( QString & theContext, QString & theParent, QString & theObject); -// virtual bool CustomPopup( QAD_Desktop* parent, QMenu* popup, const QString& theContext, -// const QString& theParent, const QString& theObject ); - // The Working Plane management void SetWorkingPlane( gp_Ax3 wp ) { myWorkingPlane = wp; } gp_Ax3 GetWorkingPlane() { return myWorkingPlane; } @@ -171,12 +159,11 @@ private: typedef QMap TextureMap; typedef QMap StudyTextureMap; - + typedef QMap GUIMap; + GUIMap myGUIMap; // GUI libraries map QDialog* myActiveDialogBox; // active dialog box GEOM_Client myShapeReader; // geom shape reader - Standard_CString myFatherior; - int myState; // identify a method gp_Ax3 myWorkingPlane; QMap myRules; // popup rules static StudyTextureMap myTextureMap; // texture map diff --git a/src/GEOMGUI/GeometryGUI_Operations.h b/src/GEOMGUI/GeometryGUI_Operations.h new file mode 100644 index 000000000..33b5e1830 --- /dev/null +++ b/src/GEOMGUI/GeometryGUI_Operations.h @@ -0,0 +1,162 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// File : GeometryGUI_Operations.h +// Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com) +// + +#ifndef GEOMETRYGUI_OPERATIONS_H +#define GEOMETRYGUI_OPERATIONS_H + +namespace GEOMOp { + enum { + // ToolsGUI + OpImport = 1000, // MENU FILE - IMPORT + OpExport = 1001, // MENU FILE - EXPORT + OpDelete = 1020, // MENU EDIT - DELETE + OpCheckGeom = 1030, // MENU TOOLS - CHECK GEOMETRY + OpSelectVertex = 1100, // POPUP MENU - SELECT ONLY - VERTEX + OpSelectEdge = 1101, // POPUP MENU - SELECT ONLY - EDGE + OpSelectWire = 1102, // POPUP MENU - SELECT ONLY - WIRE + OpSelectFace = 1103, // POPUP MENU - SELECT ONLY - FACE + OpSelectShell = 1104, // POPUP MENU - SELECT ONLY - SHELL + OpSelectSolid = 1105, // POPUP MENU - SELECT ONLY - SOLID + OpSelectCompound = 1106, // POPUP MENU - SELECT ONLY - COMPOUND + OpSelectAll = 1107, // POPUP MENU - SELECT ONLY - SELECT ALL + OpDeflection = 1200, // POPUP MENU - DEFLECTION COEFFICIENT + OpColor = 1201, // POPUP MENU - COLOR + OpTransparency = 1202, // POPUP MENU - TRANSPARENCY + OpIsos = 1203, // POPUP MENU - ISOS + OpAutoColor = 1204, // POPUP MENU - AUTO COLOR + OpNoAutoColor = 1205, // POPUP MENU - DISABLE AUTO COLOR + OpPointMarker = 1206, // POPUP MENU - POINT MARKER + OpShowChildren = 1250, // POPUP MENU - SHOW CHILDREN + OpHideChildren = 1251, // POPUP MENU - HIDE CHILDREN + OpRename = 1252, // POPUP MENU - RENAME + // DisplayGUI + OpDisplayMode = 2000, // MENU VIEW - DISPLAY MODE - WIREFRAME/SHADING + OpSwitchVectors = 2001, // MENU VIEW - DISPLAY MODE - SHOW/HIDE EDGE DIRECTION + OpShowAll = 2002, // MENU VIEW - SHOW ALL + OpHideAll = 2003, // MENU VIEW - HIDE ALL + OpShow = 2100, // POPUP MENU - SHOW + OpShowOnly = 2101, // POPUP MENU - SHOW ONLY + OpHide = 2102, // POPUP MENU - HIDE + OpWireframe = 2200, // POPUP MENU - DISPLAY MODE - WIREFRAME + OpShading = 2201, // POPUP MENU - DISPLAY MODE - SHADING + OpVectors = 2202, // POPUP MENU - DISPLAY MODE - SHOW EDGE DIRECTION + // BasicGUI + OpPoint = 3000, // MENU NEW ENTITY - BASIC - POINT + OpLine = 3001, // MENU NEW ENTITY - BASIC - LINE + OpCircle = 3002, // MENU NEW ENTITY - BASIC - CIRCLE + OpEllipse = 3003, // MENU NEW ENTITY - BASIC - ELLIPSE + OpArc = 3004, // MENU NEW ENTITY - BASIC - ARC + OpVector = 3005, // MENU NEW ENTITY - BASIC - VECTOR + OpPlane = 3006, // MENU NEW ENTITY - BASIC - PLANE + OpCurve = 3007, // MENU NEW ENTITY - BASIC - CURVE + OpLCS = 3008, // MENU NEW ENTITY - BASIC - LOCAL COORDINATE SYSTEM + // PrimitiveGUI + OpBox = 3100, // MENU NEW ENTITY - PRIMITIVES - BOX + OpCylinder = 3101, // MENU NEW ENTITY - PRIMITIVES - CYLINDER + OpSphere = 3102, // MENU NEW ENTITY - PRIMITIVES - SPHERE + OpTorus = 3103, // MENU NEW ENTITY - PRIMITIVES - TORUS + OpCone = 3104, // MENU NEW ENTITY - PRIMITIVES - CONE + OpRectangle = 3105, // MENU NEW ENTITY - PRIMITIVES - FACE + OpDisk = 3106, // MENU NEW ENTITY - PRIMITIVES - DISK + // GenerationGUI + OpPrism = 3200, // MENU NEW ENTITY - GENERATION - EXTRUSION + OpRevolution = 3201, // MENU NEW ENTITY - GENERATION - REVOLUTION + OpFilling = 3202, // MENU NEW ENTITY - GENERATION - FILLING + OpPipe = 3203, // MENU NEW ENTITY - GENERATION - EXTRUSION ALONG PATH + // EntityGUI + Op2dSketcher = 3300, // MENU NEW ENTITY - SKETCHER + Op3dSketcher = 3301, // MENU NEW ENTITY - 3D SKETCHER + OpExplode = 3302, // MENU NEW ENTITY - EXPLODE + // BuildGUI + OpEdge = 3400, // MENU NEW ENTITY - BUILD - EDGE + OpWire = 3401, // MENU NEW ENTITY - BUILD - WIRE + OpFace = 3402, // MENU NEW ENTITY - BUILD - FACE + OpShell = 3403, // MENU NEW ENTITY - BUILD - SHELL + OpSolid = 3404, // MENU NEW ENTITY - BUILD - SOLID + OpCompound = 3405, // MENU NEW ENTITY - BUILD - COMPOUND + // BooleanGUI + OpFuse = 3500, // MENU OPERATIONS - BOOLEAN - FUSE + OpCommon = 3501, // MENU OPERATIONS - BOOLEAN - COMMON + OpCut = 3502, // MENU OPERATIONS - BOOLEAN - CUT + OpSection = 3503, // MENU OPERATIONS - BOOLEAN - SECTION + // TransformationGUI + OpTranslate = 3600, // MENU OPERATIONS - TRANSFORMATION - TRANSLATION + OpRotate = 3601, // MENU OPERATIONS - TRANSFORMATION - ROTATION + OpChangeLoc = 3602, // MENU OPERATIONS - TRANSFORMATION - LOCATION + OpMirror = 3603, // MENU OPERATIONS - TRANSFORMATION - MIRROR + OpScale = 3604, // MENU OPERATIONS - TRANSFORMATION - SCALE + OpOffset = 3605, // MENU OPERATIONS - TRANSFORMATION - OFFSET + OpMultiTranslate = 3606, // MENU OPERATIONS - TRANSFORMATION - MULTI-TRANSLATION + OpMultiRotate = 3607, // MENU OPERATIONS - TRANSFORMATION - MULTI-ROTATION + OpReimport = 3608, // POPUP MENU - RELOAD IMPORTED + // OperationGUI + OpPartition = 3700, // MENU OPERATION - PARTITION + OpArchimede = 3701, // MENU OPERATION - ARCHIMEDE + OpFillet3d = 3702, // MENU OPERATION - FILLET + OpChamfer = 3703, // MENU OPERATION - CHAMFER + OpShapesOnShape = 3704, // MENU OPERATION - GET SHAPES ON SHAPE + OpFillet2d = 3705, // MENU OPERATION - FILLET 2D + OpFillet1d = 3706, // MENU OPERATION - FILLET 1D + OpClipping = 3707, // MENU OPERATION - CLIPPING RANGE + // RepairGUI + OpSewing = 4000, // MENU REPAIR - SEWING + OpSuppressFaces = 4001, // MENU REPAIR - SUPPRESS FACES + OpSuppressHoles = 4002, // MENU REPAIR - SUPPRESS HOLES + OpShapeProcess = 4003, // MENU REPAIR - SHAPE PROCESSING + OpCloseContour = 4004, // MENU REPAIR - CLOSE CONTOUR + OpRemoveIntWires = 4005, // MENU REPAIR - REMOVE INTERNAL WIRES + OpAddPointOnEdge = 4006, // MENU REPAIR - ADD POINT ON EDGE + OpFreeBoundaries = 4007, // MENU MEASURES - FREE BOUNDARIES + OpFreeFaces = 4008, // MENU MEASURES - FREE FACES + OpOrientation = 4009, // MENU REPAIR - CHANGE ORIENTATION + OpGlueFaces = 4010, // MENU REPAIR - GLUE FACES + OpRemoveExtraEdges = 4011, // MENU REPAIR - REMOVE EXTRA EDGES + // MeasureGUI + OpProperties = 5000, // MENU MEASURES - PROPERTIES + OpCenterMass = 5001, // MENU MEASURES - CENTRE OF MASS + OpInertia = 5002, // MENU MEASURES - INERTIA + OpNormale = 5003, // MENU MEASURES - NORMALE + OpBoundingBox = 5004, // MENU MEASURES - BOUNDING BOX + OpMinDistance = 5005, // MENU MEASURES - MIN DISTANCE + OpAngle = 5006, // MENU MEASURES - ANGLE + OpTolerance = 5007, // MENU MEASURES - TOLERANCE + OpWhatIs = 5008, // MENU MEASURES - WHAT IS + OpCheckShape = 5009, // MENU MEASURES - CHECK + OpCheckCompound = 5010, // MENU MEASURES - CHECK COMPOUND OF BLOCKS + OpPointCoordinates = 5011, // MENU MEASURES - POINT COORDINATES + // GroupGUI + OpGroupCreate = 6000, // MENU GROUP - CREATE + OpGroupEdit = 6001, // MENU GROUP - EDIT + OpGroupCreatePopup = 6002, // POPUP MENU - CREATE GROUP + // BlocksGUI + OpHexaSolid = 6100, // MENU BLOCKS - HEXAHEDRAL SOLID + OpMultiTransform = 6101, // MENU BLOCKS - MULTI-TRANSFORMATION + OpQuadFace = 6102, // MENU BLOCKS - QUADRANGLE FACE + OpPropagate = 6103, // MENU BLOCKS - PROPAGATE + OpExplodeBlock = 6104, // MENU BLOCKS - EXPLODE ON BLOCKS + }; +} + +#endif // GEOMETRYGUI_OPERATIONS_H diff --git a/src/GEOMGUI/Makefile.am b/src/GEOMGUI/Makefile.am index acb2cc009..331483c78 100644 --- a/src/GEOMGUI/Makefile.am +++ b/src/GEOMGUI/Makefile.am @@ -32,6 +32,7 @@ lib_LTLIBRARIES = libGEOM.la # header files salomeinclude_HEADERS = \ GeometryGUI.h \ + GeometryGUI_Operations.h\ GEOMGUI.h \ GEOM_Displayer.h \ GEOMGUI_OCCSelector.h \ -- 2.39.2