X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FGEOMGUI%2FGeometryGUI.cxx;h=09aa1abf1c776624b53af80092835db8c370a201;hb=205001b2a059a58d6d8bcf43d30bc281a516c131;hp=2d352d9193a94a9a449c6d500bfd97a548a1bcba;hpb=4afdc688fc0c62ba252e8274a712482558f7ae14;p=modules%2Fgeom.git diff --git a/src/GEOMGUI/GeometryGUI.cxx b/src/GEOMGUI/GeometryGUI.cxx index 2d352d919..09aa1abf1 100644 --- a/src/GEOMGUI/GeometryGUI.cxx +++ b/src/GEOMGUI/GeometryGUI.cxx @@ -23,16 +23,22 @@ // Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com) #include // E.A. must be included before Python.h to fix compilation on windows +#ifdef HAVE_FINITE +#undef HAVE_FINITE // VSR: avoid compilation warning on Linux : "HAVE_FINITE" redefined +#endif #include "Python.h" #include "GeometryGUI.h" #include "GeometryGUI_Operations.h" #include "GEOMGUI_OCCSelector.h" #include "GEOMGUI_Selection.h" +#include "GEOM_Constants.h" #include "GEOM_Displayer.h" #include "GEOM_AISShape.hxx" #include "GEOM_Actor.h" +#include + #include #include #include @@ -386,168 +392,175 @@ void GeometryGUI::OnGUIEvent( int id ) QString libName; // find corresponding GUI library switch ( id ) { - case GEOMOp::OpOriginAndVectors: // MENU BASIC - ORIGIN AND BASE VECTORS + case GEOMOp::OpOriginAndVectors: // MENU BASIC - ORIGIN AND BASE VECTORS createOriginAndBaseVectors(); // internal operation return; - 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::OpSetTexture: // POPUP MENU - SETTEXTURE - case GEOMOp::OpTransparency: // POPUP MENU - TRANSPARENCY - case GEOMOp::OpIncrTransparency: // SHORTCUT - INCREASE TRANSPARENCY - case GEOMOp::OpDecrTransparency: // SHORTCUT - DECREASE TRANSPARENCY - case GEOMOp::OpIsos: // POPUP MENU - ISOS - case GEOMOp::OpIncrNbIsos: // SHORTCUT - INCREASE NB ISOS - case GEOMOp::OpDecrNbIsos: // SHORTCUT - DECREASE NB 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::OpUnpublishObject: // POPUP MENU - UNPUBLISH - case GEOMOp::OpPublishObject: // ROOT GEOM OBJECT - POPUP MENU - PUBLISH - case GEOMOp::OpPointMarker: // POPUP MENU - POINT MARKER + 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::OpSetTexture: // POPUP MENU - SETTEXTURE + case GEOMOp::OpTransparency: // POPUP MENU - TRANSPARENCY + case GEOMOp::OpIncrTransparency: // SHORTCUT - INCREASE TRANSPARENCY + case GEOMOp::OpDecrTransparency: // SHORTCUT - DECREASE TRANSPARENCY + case GEOMOp::OpIsos: // POPUP MENU - ISOS + case GEOMOp::OpIncrNbIsos: // SHORTCUT - INCREASE NB ISOS + case GEOMOp::OpDecrNbIsos: // SHORTCUT - DECREASE NB 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::OpUnpublishObject: // POPUP MENU - UNPUBLISH + case GEOMOp::OpPublishObject: // ROOT GEOM OBJECT - POPUP MENU - PUBLISH + case GEOMOp::OpPointMarker: // POPUP MENU - POINT MARKER + case GEOMOp::OpMaterialProperties: // POPUP MENU - MATERIAL PROPERTIES + case GEOMOp::OpEdgeWidth: // POPUP MENU - LINE WIDTH - EDGE WIDTH + case GEOMOp::OpIsosWidth: // POPUP MENU - LINE WIDTH - ISOS WIDTH 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::OpTexture: // POPUP MENU - TEXTURE - case GEOMOp::OpVectors: // POPUP MENU - VECTORS + 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::OpShadingWithEdges: // POPUP MENU - SHADING WITH EDGES + case GEOMOp::OpTexture: // POPUP MENU - TEXTURE + 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 - LOCAL COORDINATE SYSTEM + 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 - LOCAL COORDINATE SYSTEM 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 + 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 + 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 + case GEOMOp::Op2dSketcher: // MENU ENTITY - SKETCHER + case GEOMOp::Op3dSketcher: // MENU ENTITY - 3D SKETCHER + case GEOMOp::OpExplode: // MENU ENTITY - EXPLODE #ifdef WITH_OPENCV - case GEOMOp::OpFeatureDetect: // MENU ENTITY - FEATURE DETECTION + case GEOMOp::OpFeatureDetect: // MENU ENTITY - FEATURE DETECTION #endif - case GEOMOp::OpPictureImport: // MENU ENTITY - IMPORT PICTURE IN VIEWER + case GEOMOp::OpPictureImport: // MENU ENTITY - IMPORT PICTURE IN VIEWER 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 + 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 + 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::OpProjection: // MENU TRANSFORMATION - PROJECTION - case GEOMOp::OpMultiTranslate: // MENU TRANSFORMATION - MULTI-TRANSLATION - case GEOMOp::OpMultiRotate: // MENU TRANSFORMATION - MULTI-ROTATION - case GEOMOp::OpReimport: // CONTEXT(POPUP) MENU - RELOAD_IMPORTED + 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::OpProjection: // MENU TRANSFORMATION - PROJECTION + 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 - case GEOMOp::OpSharedShapes: // MENU OPERATION - GET SHARED SHAPES + 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 + case GEOMOp::OpSharedShapes: // MENU OPERATION - GET SHARED SHAPES + case GEOMOp::OpExtrudedBoss: // MENU OPERATION - EXTRUDED BOSS + case GEOMOp::OpExtrudedCut: // MENU OPERATION - EXTRUDED CUT 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::OpGlueEdges: // MENU REPAIR - GLUE EDGES - case GEOMOp::OpLimitTolerance: // MENU REPAIR - LIMIT TOLERANCE - case GEOMOp::OpRemoveExtraEdges: // MENU REPAIR - REMOVE EXTRA EDGES + 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::OpGlueEdges: // MENU REPAIR - GLUE EDGES + case GEOMOp::OpLimitTolerance: // MENU REPAIR - LIMIT TOLERANCE + 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 + 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 + case GEOMOp::OpCheckSelfInters: // MENU MEASURE - CHECK SELF INTERSECTIONS libName = "MeasureGUI"; break; - case GEOMOp::OpGroupCreate: // MENU GROUP - CREATE - case GEOMOp::OpGroupCreatePopup: // POPUP MENU - CREATE GROUP - case GEOMOp::OpGroupEdit: // MENU GROUP - EDIT + 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 + 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; - case GEOMOp::OpAdvancedNoOp: // NO OPERATION (advanced operations base) - case GEOMOp::OpPipeTShape: // MENU NEW ENTITY - ADVANCED - PIPE TSHAPE + case GEOMOp::OpAdvancedNoOp: // NO OPERATION (advanced operations base) + case GEOMOp::OpPipeTShape: // MENU NEW ENTITY - ADVANCED - PIPE TSHAPE // case GEOMOp::OpPipeTShapeGroups: // MENU NEW ENTITY - ADVANCED - PIPE TSHAPE GROUPS //@@ insert new functions before this line @@ do not remove this line @@ do not remove this line @@ do not remove this line @@ do not remove this line @@// libName = "AdvancedGUI"; @@ -567,8 +580,24 @@ void GeometryGUI::OnGUIEvent( int id ) } // call method of corresponding GUI library - if ( library ) + if ( library ) { library->OnGUIEvent( id, desk ); + + // Update a list of materials for "Preferences" dialog + if ( id == GEOMOp::OpMaterialProperties ) { + LightApp_Preferences* pref = preferences(); + if ( pref ) { + Material_ResourceMgr aMatResMgr; + QStringList aPerfMatNames = aMatResMgr.getPreferenceMaterialsNames(); + setPreferenceProperty( pref->rootItem()->findItem( tr( "PREF_FRONT_MATERIAL" ), true )->id(), + "strings", + aPerfMatNames ); + setPreferenceProperty( pref->rootItem()->findItem( tr( "PREF_BACK_MATERIAL" ), true )->id(), + "strings", + aPerfMatNames ); + } + } + } else SUIT_MessageBox::critical( desk, tr( "GEOM_ERROR" ), tr( "GEOM_ERR_LIB_NOT_FOUND" ), tr( "GEOM_BUT_OK" ) ); } @@ -758,6 +787,8 @@ void GeometryGUI::initialize( CAM_Application* app ) //createGeomAction( GEOMOp::OpClipping, "CLIPPING" ); createGeomAction( GEOMOp::OpShapesOnShape, "GET_SHAPES_ON_SHAPE" ); createGeomAction( GEOMOp::OpSharedShapes, "GET_SHARED_SHAPES" ); + createGeomAction( GEOMOp::OpExtrudedCut, "EXTRUDED_CUT" ); + createGeomAction( GEOMOp::OpExtrudedBoss, "EXTRUDED_BOSS" ); createGeomAction( GEOMOp::OpFillet1d, "FILLET_1D" ); createGeomAction( GEOMOp::OpFillet2d, "FILLET_2D" ); @@ -793,6 +824,7 @@ void GeometryGUI::initialize( CAM_Application* app ) createGeomAction( GEOMOp::OpWhatIs, "WHAT_IS" ); createGeomAction( GEOMOp::OpCheckShape, "CHECK" ); createGeomAction( GEOMOp::OpCheckCompound, "CHECK_COMPOUND" ); + createGeomAction( GEOMOp::OpCheckSelfInters, "CHECK_SELF_INTERSECTIONS" ); #ifdef _DEBUG_ // PAL16821 createGeomAction( GEOMOp::OpCheckGeom, "CHECK_GEOMETRY" ); @@ -816,7 +848,10 @@ void GeometryGUI::initialize( CAM_Application* app ) createGeomAction( GEOMOp::OpWireframe, "POP_WIREFRAME", "", 0, true ); createGeomAction( GEOMOp::OpShading, "POP_SHADING", "", 0, true ); + createGeomAction( GEOMOp::OpShadingWithEdges, "POP_SHADING_WITH_EDGES", "", 0, true ); createGeomAction( GEOMOp::OpTexture, "POP_TEXTURE", "", 0, true ); + createGeomAction( GEOMOp::OpEdgeWidth, "EDGE_WIDTH"); + createGeomAction( GEOMOp::OpIsosWidth, "ISOS_WIDTH"); createGeomAction( GEOMOp::OpVectors, "POP_VECTORS", "", 0, true ); createGeomAction( GEOMOp::OpDeflection, "POP_DEFLECTION" ); createGeomAction( GEOMOp::OpColor, "POP_COLOR" ); @@ -831,6 +866,7 @@ void GeometryGUI::initialize( CAM_Application* app ) createGeomAction( GEOMOp::OpUnpublishObject, "POP_UNPUBLISH_OBJ" ); createGeomAction( GEOMOp::OpPublishObject, "POP_PUBLISH_OBJ" ); createGeomAction( GEOMOp::OpPointMarker, "POP_POINT_MARKER" ); + createGeomAction( GEOMOp::OpMaterialProperties, "POP_MATERIAL_PROPERTIES" ); createGeomAction( GEOMOp::OpPipeTShape, "PIPETSHAPE" ); @@ -870,6 +906,8 @@ void GeometryGUI::initialize( CAM_Application* app ) createMenu( GEOMOp::OpArc, basicId, -1 ); createMenu( GEOMOp::OpCurve, basicId, -1 ); createMenu( separator(), basicId, -1 ); + createMenu( GEOMOp::Op2dSketcher, basicId, -1 ); + createMenu( GEOMOp::Op3dSketcher, basicId, -1 ); createMenu( GEOMOp::OpVector, basicId, -1 ); createMenu( GEOMOp::OpPlane, basicId, -1 ); createMenu( GEOMOp::OpLCS, basicId, -1 ); @@ -883,6 +921,7 @@ void GeometryGUI::initialize( CAM_Application* app ) createMenu( GEOMOp::OpCone, primId, -1 ); createMenu( GEOMOp::OpRectangle, primId, -1 ); createMenu( GEOMOp::OpDisk, primId, -1 ); + createMenu( GEOMOp::OpPipeTShape,primId, -1 ); int genId = createMenu( tr( "MEN_GENERATION" ), newEntId, -1 ); createMenu( GEOMOp::OpPrism, genId, -1 ); @@ -890,8 +929,8 @@ void GeometryGUI::initialize( CAM_Application* app ) createMenu( GEOMOp::OpFilling, genId, -1 ); createMenu( GEOMOp::OpPipe, genId, -1 ); - int advId = createMenu( tr( "MEN_ADVANCED" ), newEntId, -1 ); - createMenu( GEOMOp::OpPipeTShape, advId, -1 ); +// int advId = createMenu( tr( "MEN_ADVANCED" ), newEntId, -1 ); +// createMenu( GEOMOp::OpPipeTShape, advId, -1 ); // createMenu( GEOMOp::OpPipeTShapeGroups, advId, -1 ); //@@ insert new functions before this line @@ do not remove this line @@ do not remove this line @@ do not remove this line @@ do not remove this line @@// @@ -909,11 +948,6 @@ void GeometryGUI::initialize( CAM_Application* app ) 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 ); @@ -969,6 +1003,8 @@ void GeometryGUI::initialize( CAM_Application* app ) createMenu( GEOMOp::OpFillet2d, operId, -1 ); createMenu( GEOMOp::OpFillet3d, operId, -1 ); createMenu( GEOMOp::OpChamfer, operId, -1 ); + createMenu( GEOMOp::OpExtrudedBoss, operId, -1 ); + createMenu( GEOMOp::OpExtrudedCut, operId, -1 ); //createMenu( GEOMOp::OpClipping, operId, -1 ); int repairId = createMenu( tr( "MEN_REPAIR" ), -1, -1, 10 ); @@ -1004,12 +1040,13 @@ void GeometryGUI::initialize( CAM_Application* app ) createMenu( GEOMOp::OpMinDistance, dimId, -1 ); createMenu( GEOMOp::OpAngle, dimId, -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 ); + 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 ); + createMenu( GEOMOp::OpCheckSelfInters, measurId, -1 ); #ifdef _DEBUG_ // PAL16821 int toolsId = createMenu( tr( "MEN_TOOLS" ), -1, -1, 50 ); @@ -1043,40 +1080,50 @@ void GeometryGUI::initialize( CAM_Application* app ) */ // ---- create toolbars -------------------------- - + int basicTbId = createTool( tr( "TOOL_BASIC" ) ); - 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 ); + 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::Op2dSketcher, basicTbId ); //rnc + createTool( GEOMOp::Op3dSketcher, basicTbId ); //rnc + createTool( GEOMOp::OpPlane, basicTbId ); + createTool( GEOMOp::OpLCS, basicTbId ); createTool( GEOMOp::OpOriginAndVectors, basicTbId ); - + +// int sketchTbId = createTool( tr( "TOOL_SKETCH" ) ); +// createTool( GEOMOp::Op2dSketcher, sketchTbId ); +// createTool( GEOMOp::Op3dSketcher, sketchTbId ); + int primTbId = createTool( tr( "TOOL_PRIMITIVES" ) ); - 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 ); - + 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 ); + createTool( GEOMOp::OpPipeTShape, primTbId ); //rnc + +// int advancedTbId = createTool( tr( "TOOL_ADVANCED" ) ); //rnc +// createTool( GEOMOp::OpPipeTShape, advancedTbId ); + int boolTbId = createTool( tr( "TOOL_BOOLEAN" ) ); - createTool( GEOMOp::OpFuse, boolTbId ); - createTool( GEOMOp::OpCommon, boolTbId ); - createTool( GEOMOp::OpCut, boolTbId ); - createTool( GEOMOp::OpSection, boolTbId ); - - int genTbId = createTool( tr( "TOOL_GENERATION" ) ); + createTool( GEOMOp::OpFuse, boolTbId ); + createTool( GEOMOp::OpCommon, boolTbId ); + createTool( GEOMOp::OpCut, boolTbId ); + createTool( GEOMOp::OpSection, boolTbId ); + + int genTbId = createTool( tr( "TOOL_GENERATION" ) ); createTool( GEOMOp::OpPrism, genTbId ); createTool( GEOMOp::OpRevolution, genTbId ); createTool( GEOMOp::OpFilling, genTbId ); createTool( GEOMOp::OpPipe, genTbId ); - + int transTbId = createTool( tr( "TOOL_TRANSFORMATION" ) ); createTool( GEOMOp::OpTranslate, transTbId ); createTool( GEOMOp::OpRotate, transTbId ); @@ -1088,29 +1135,22 @@ void GeometryGUI::initialize( CAM_Application* app ) 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 ); -#ifdef WITH_OPENCV - createTool( GEOMOp::OpFeatureDetect, operTbId ); -#endif - createTool( GEOMOp::OpPictureImport, operTbId ); - createTool( separator(), operTbId ); - createTool( GEOMOp::OpPartition, operTbId ); createTool( GEOMOp::OpArchimede, operTbId ); createTool( GEOMOp::OpShapesOnShape, operTbId ); createTool( GEOMOp::OpSharedShapes, operTbId ); - createTool( separator(), operTbId ); - createTool( GEOMOp::OpFillet1d, operTbId ); - createTool( GEOMOp::OpFillet2d, operTbId ); - createTool( GEOMOp::OpFillet3d, operTbId ); - createTool( GEOMOp::OpChamfer, operTbId ); - + + int featTbId = createTool( tr( "TOOL_FEATURES" ) ); + createTool( GEOMOp::OpFillet1d, featTbId ); + createTool( GEOMOp::OpFillet2d, featTbId ); + createTool( GEOMOp::OpFillet3d, featTbId ); + createTool( GEOMOp::OpChamfer, featTbId ); + createTool( GEOMOp::OpExtrudedBoss, featTbId ); + createTool( GEOMOp::OpExtrudedCut, featTbId ); + int buildTbId = createTool( tr( "TOOL_BUILD" ) ); createTool( GEOMOp::OpEdge, buildTbId ); createTool( GEOMOp::OpWire, buildTbId ); @@ -1137,9 +1177,14 @@ void GeometryGUI::initialize( CAM_Application* app ) createTool( GEOMOp::OpWhatIs, measureTbId ); createTool( GEOMOp::OpCheckShape, measureTbId ); createTool( GEOMOp::OpCheckCompound, measureTbId ); + createTool( GEOMOp::OpCheckSelfInters, measureTbId ); + + int picturesTbId = createTool( tr( "TOOL_PICTURES" ) ); + createTool( GEOMOp::OpPictureImport, picturesTbId ); + #ifdef WITH_OPENCV + createTool( GEOMOp::OpFeatureDetect, picturesTbId ); + #endif - int advancedTbId = createTool( tr( "TOOL_ADVANCED" ) ); - createTool( GEOMOp::OpPipeTShape, advancedTbId ); //@@ insert new functions before this line @@ do not remove this line @@ do not remove this line @@ do not remove this line @@ do not remove this line @@// // ---- create popup menus -------------------------- @@ -1178,6 +1223,9 @@ void GeometryGUI::initialize( CAM_Application* app ) 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( action( GEOMOp::OpShadingWithEdges ), dispmodeId, -1 ); // shading with edges + mgr->setRule( action( GEOMOp::OpShadingWithEdges ), clientOCCorVTK_AndSomeVisible, QtxPopupMgr::VisibleRule ); + mgr->setRule( action( GEOMOp::OpShadingWithEdges ), clientOCCorVTK + " and displaymode='ShadingWithEdges'", QtxPopupMgr::ToggleRule ); mgr->insert( action( GEOMOp::OpTexture ), dispmodeId, -1 ); // wireframe mgr->setRule( action( GEOMOp::OpTexture ), clientOCC_AndSomeVisible, QtxPopupMgr::VisibleRule ); mgr->setRule( action( GEOMOp::OpTexture), clientOCC + " and displaymode='Texture'", QtxPopupMgr::ToggleRule ); @@ -1197,8 +1245,18 @@ void GeometryGUI::initialize( CAM_Application* app ) 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->setRule( action( GEOMOp::OpPointMarker ), QString( "selcount>0 and ( $typeid in {%1} or compoundOfVertices=true ) " ).arg(GEOM::VERTEX).arg(GEOM::COMPOUND), QtxPopupMgr::VisibleRule ); + mgr->insert( action( GEOMOp::OpMaterialProperties ), -1, -1 ); // material properties + mgr->setRule( action( GEOMOp::OpMaterialProperties ), clientOCCorVTK_AndSomeVisible + " and ($component={'GEOM'}) and selcount>0 and isVisible", QtxPopupMgr::VisibleRule ); mgr->insert( action( GEOMOp::OpSetTexture ), -1, -1 ); // texture mgr->setRule( action( GEOMOp::OpSetTexture ), clientOCCorOB_AndSomeVisible + " and ($component={'GEOM'})", QtxPopupMgr::VisibleRule ); + + int lineW = mgr->insert( tr( "MEN_LINE_WIDTH" ), -1, -1 ); // line width menu + mgr->insert( action( GEOMOp::OpEdgeWidth ), lineW, -1 ); // edge width + mgr->setRule( action( GEOMOp::OpEdgeWidth ), clientOCCorVTK_AndSomeVisible, QtxPopupMgr::VisibleRule ); + + mgr->insert( action( GEOMOp::OpIsosWidth ), lineW, -1 ); // isos width + mgr->setRule( action( GEOMOp::OpIsosWidth ), clientOCCorVTK_AndSomeVisible, QtxPopupMgr::VisibleRule ); + mgr->insert( separator(), -1, -1 ); // ----------- mgr->insert( action( GEOMOp::OpAutoColor ), -1, -1 ); // auto color mgr->setRule( action( GEOMOp::OpAutoColor ), autoColorPrefix + " and isAutoColor=false", QtxPopupMgr::VisibleRule ); @@ -1617,6 +1675,9 @@ void GeometryGUI::createPreferences() addPreference( tr( "PREF_SHADING_COLOR" ), genGroup, LightApp_Preferences::Color, "Geometry", "shading_color" ); + addPreference( tr( "PREF_EDGES_IN_SHADING" ), genGroup, + LightApp_Preferences::Color, "Geometry", "edges_in_shading_color" ); + addPreference( tr( "PREF_WIREFRAME_COLOR" ), genGroup, LightApp_Preferences::Color, "Geometry", "wireframe_color" ); @@ -1638,6 +1699,36 @@ void GeometryGUI::createPreferences() int defl = addPreference( tr( "PREF_DEFLECTION" ), genGroup, LightApp_Preferences::DblSpin, "Geometry", "deflection_coeff" ); + int front_material = addPreference( tr( "PREF_FRONT_MATERIAL" ), genGroup, + LightApp_Preferences::Selector, + "Geometry", "front_material" ); + + int back_material = addPreference( tr( "PREF_BACK_MATERIAL" ), genGroup, + LightApp_Preferences::Selector, + "Geometry", "back_material" ); + + const int nb = 4; + int wd[nb]; + int iter=0; + + wd[iter++] = addPreference( tr( "PREF_EDGE_WIDTH" ), genGroup, + LightApp_Preferences::IntSpin, "Geometry", "edge_width" ); + + wd[iter++] = addPreference( tr( "PREF_ISOLINES_WIDTH" ), genGroup, + LightApp_Preferences::IntSpin, "Geometry", "isolines_width" ); + + wd[iter++] = addPreference( tr( "PREF_PREVIEW_EDGE_WIDTH" ), genGroup, + LightApp_Preferences::IntSpin, "Geometry", "preview_edge_width" ); + + wd[iter++] = addPreference( tr( "PREF_MEASURES_LINE_WIDTH" ), genGroup, + LightApp_Preferences::IntSpin, "Geometry", "measures_line_width" ); + + for(int i = 0; i < nb; i++) { + setPreferenceProperty( wd[i], "min", 1 ); + setPreferenceProperty( wd[i], "max", 5 ); + } + + // Quantities with individual precision settings int precGroup = addPreference( tr( "GEOM_PREF_GROUP_PRECISION" ), tabId ); setPreferenceProperty( precGroup, "columns", 2 ); @@ -1681,10 +1772,12 @@ void GeometryGUI::createPreferences() QStringList aModesList; aModesList.append( tr("MEN_WIREFRAME") ); aModesList.append( tr("MEN_SHADING") ); + aModesList.append( tr("MEN_SHADING_WITH_EDGES") ); QList anIndexesList; anIndexesList.append(0); anIndexesList.append(1); + anIndexesList.append(2); setPreferenceProperty( dispmode, "strings", aModesList ); setPreferenceProperty( dispmode, "indexes", anIndexesList ); @@ -1700,6 +1793,12 @@ void GeometryGUI::createPreferences() setPreferenceProperty( defl, "step", 1.0e-04 ); setPreferenceProperty( defl, "precision", 6 ); + // Set property for default material + Material_ResourceMgr aMatResMgr; + QStringList aPrefMatNames = aMatResMgr.getPreferenceMaterialsNames(); + setPreferenceProperty( front_material, "strings", aPrefMatNames ); + setPreferenceProperty( back_material, "strings", aPrefMatNames ); + // Set property vertex marker type QList aMarkerTypeIndicesList; QList aMarkerTypeIconsList; @@ -1780,7 +1879,7 @@ const char gDigitsSep = ':'; // character used to separate numeric parameter val * \brief Store visual parameters * * This method is called just before the study document is saved. - * Store visual parameters in AttributeParameter attribue(s) + * Store visual parameters in AttributeParameter attribute(s) */ void GeometryGUI::storeVisualParameters (int savePoint) { @@ -1887,6 +1986,27 @@ void GeometryGUI::storeVisualParameters (int savePoint) param = occParam + MARKER_TYPE_PROP; ip->setParameter(entry, param, aProps.value(MARKER_TYPE_PROP).toString().toLatin1().data()); } + + if(aProps.contains(FRONT_MATERIAL_PROP)) { + param = occParam + FRONT_MATERIAL_PROP; + ip->setParameter(entry, param, aProps.value(FRONT_MATERIAL_PROP).toString().toLatin1().data()); + } + + if(aProps.contains(BACK_MATERIAL_PROP)) { + param = occParam + BACK_MATERIAL_PROP; + ip->setParameter(entry, param, aProps.value(BACK_MATERIAL_PROP).toString().toLatin1().data()); + + } + + if(aProps.contains( EDGE_WIDTH_PROP )) { + param = occParam + EDGE_WIDTH_PROP; + ip->setParameter(entry, param, aProps.value(EDGE_WIDTH_PROP).toString().toLatin1().data()); + } + + if(aProps.contains( ISOS_WIDTH_PROP )) { + param = occParam + ISOS_WIDTH_PROP; + ip->setParameter(entry, param, aProps.value(ISOS_WIDTH_PROP).toString().toLatin1().data()); + } } // object iterator } // for (views) } // for (viewManagers) @@ -1896,7 +2016,7 @@ void GeometryGUI::storeVisualParameters (int savePoint) * \brief Restore visual parameters * * This method is called after the study document is opened. - * Restore visual parameters from AttributeParameter attribue(s) + * Restore visual parameters from AttributeParameter attribute(s) */ void GeometryGUI::restoreVisualParameters (int savePoint) { @@ -1994,8 +2114,18 @@ void GeometryGUI::restoreVisualParameters (int savePoint) aListOfMap[viewIndex].insert( DEFLECTION_COEFF_PROP, val.toDouble()); } else if(paramNameStr == MARKER_TYPE_PROP) { aListOfMap[viewIndex].insert( MARKER_TYPE_PROP, val); + } else if(paramNameStr == FRONT_MATERIAL_PROP) { + aListOfMap[viewIndex].insert( FRONT_MATERIAL_PROP, val); + } else if(paramNameStr == BACK_MATERIAL_PROP) { + aListOfMap[viewIndex].insert( BACK_MATERIAL_PROP, val); + } else if(paramNameStr == EDGE_WIDTH_PROP) { + aListOfMap[viewIndex].insert( EDGE_WIDTH_PROP , val); + } else if(paramNameStr == ISOS_WIDTH_PROP) { + aListOfMap[viewIndex].insert( ISOS_WIDTH_PROP , val); } + + } // for names/parameters iterator QList lst = getApp()->viewManagers(); @@ -2049,6 +2179,25 @@ void GeometryGUI::onViewAboutToShow() } } +/*! + \brief Check if this object is can't be renamed in place + + This method can be re-implemented in the subclasses. + Return true in case if object isn't reference or component (module root). + + \param id column id + \return \c true if the item can be renamed by the user in place (e.g. in the Object browser) +*/ +bool GeometryGUI::renameAllowed( const QString& entry) const { + + SalomeApp_Application* app = dynamic_cast< SalomeApp_Application* >( SUIT_Session::session()->activeApplication() ); + SalomeApp_Study* appStudy = app ? dynamic_cast( app->activeStudy() ) : 0; + SalomeApp_DataObject* obj = appStudy ? dynamic_cast(appStudy->findObjectByEntry(entry)) : 0; + + return (app && appStudy && obj && !appStudy->isComponent(entry) && !obj->isReference()); +} + + /*! Rename object by entry. \param entry entry of the object @@ -2056,24 +2205,26 @@ void GeometryGUI::onViewAboutToShow() \brief Return \c true if rename operation finished successfully, \c false otherwise. */ bool GeometryGUI::renameObject( const QString& entry, const QString& name) { - - bool appRes = SalomeApp_Module::renameObject(entry,name); - if( !appRes ) - return false; - + bool result = false; - + SalomeApp_Application* app = dynamic_cast< SalomeApp_Application* >( SUIT_Session::session()->activeApplication()); SalomeApp_Study* appStudy = app ? dynamic_cast( app->activeStudy() ) : 0; - + if(!appStudy) return result; - + _PTR(Study) aStudy = appStudy->studyDS(); - + if(!aStudy) return result; + bool aLocked = (_PTR(AttributeStudyProperties)(appStudy->studyDS()->GetProperties()))->IsLocked(); + if ( aLocked ) { + SUIT_MessageBox::warning ( app->desktop(), QObject::tr("WRN_WARNING"), QObject::tr("WRN_STUDY_LOCKED") ); + return result; + } + _PTR(SObject) obj ( aStudy->FindObjectID(qPrintable(entry)) ); _PTR(GenericAttribute) anAttr; if ( obj ) { @@ -2090,3 +2241,4 @@ bool GeometryGUI::renameObject( const QString& entry, const QString& name) { } return result; } +