X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FHYDROGUI%2FHYDROGUI_Operations.cxx;h=8371e64d1dbe85ea64a6e5e8dee481e4aaab7d7a;hb=d37ac478f4055b8698aa200b8878af2cb6af5e45;hp=12106628e9b83560b222905895e7ba4edbee6828;hpb=0df953327ef66ec8f0d1ac3a625b569ba1a6a3c2;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_Operations.cxx b/src/HYDROGUI/HYDROGUI_Operations.cxx index 12106628..8371e64d 100644 --- a/src/HYDROGUI/HYDROGUI_Operations.cxx +++ b/src/HYDROGUI/HYDROGUI_Operations.cxx @@ -1,8 +1,4 @@ -// Copyright (C) 2007-2015 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 -// +// Copyright (C) 2014-2015 EDF-R&D // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either @@ -30,7 +26,10 @@ #include "HYDROGUI_DeleteOp.h" #include "HYDROGUI_DigueOp.h" #include "HYDROGUI_ExportImageOp.h" +#include "HYDROGUI_ExportFileOp.h" #include "HYDROGUI_ImportImageOp.h" +#include "HYDROGUI_ImportPolylineOp.h" +#include "HYDROGUI_ImportSinusXOp.h" #include "HYDROGUI_ImportBathymetryOp.h" #include "HYDROGUI_ImmersibleZoneOp.h" #include "HYDROGUI_Module.h" @@ -54,15 +53,29 @@ #include "HYDROGUI_GeoreferencementOp.h" #include "HYDROGUI_SetColorOp.h" #include "HYDROGUI_BathymetryBoundsOp.h" -#include "HYDROGUI_Tool.h" +#include "HYDROGUI_Tool2.h" #include "HYDROGUI_ZLevelsOp.h" #include "HYDROGUI_LocalCSOp.h" #include "HYDROGUI_RiverBottomOp.h" #include "HYDROGUI_ProfileInterpolateOp.h" +#include "HYDROGUI_RecognizeContoursOp.h" +#include "HYDROGUI_SubmersibleOp.h" +#include "HYDROGUI_StricklerTableOp.h" +#include "HYDROGUI_DuplicateOp.h" +#include "HYDROGUI_LandCoverMapOp.h" +#include "HYDROGUI_PolylineExtractionOp.h" +#include "HYDROGUI_ExportSinusXOp.h" +#include "HYDROGUI_MergePolylinesOp.h" +#include "HYDROGUI_SplitPolylinesOp.h" +#include "HYDROGUI_LandCoverColoringOp.h" +#include "HYDROGUI_SetTransparencyOp.h" + +#include "HYDROGUI_ImportLandCoverMapOp.h" #include #include #include +#include #include #include @@ -119,6 +132,11 @@ void HYDROGUI_Module::createActions() createAction( ObserveImageId, "OBSERVE_IMAGE", "OBSERVE_IMAGE_ICO" ); createAction( ExportImageId, "EXPORT_IMAGE", "EXPORT_IMAGE_ICO" ); createAction( RemoveImageRefsId, "REMOVE_IMAGE_REFERENCE", "REMOVE_IMAGE_REFERENCE_ICO" ); + + createAction( ImportPolylineId, "IMPORT_POLYLINE", "IMPORT_POLYLINE_ICO" ); + createAction( ImportSinusXId, "IMPORT_SINUSX", "IMPORT_SINUSX_ICO" ); + createAction( ExportSinusXId, "EXPORT_SINUSX", "EXPORT_SINUSX_ICO" ); + createAction( ImportLandCoverMapId, "IMPORT_LANDCOVER_MAP", "IMPORT_LANDCOVER_MAP_ICO" ); createAction( CreatePolylineId, "CREATE_POLYLINE", "CREATE_POLYLINE_ICO" ); createAction( EditPolylineId, "EDIT_POLYLINE", "EDIT_POLYLINE_ICO" ); @@ -148,6 +166,19 @@ void HYDROGUI_Module::createActions() createAction( CreateDigueId, "CREATE_DIGUE", "CREATE_DIGUE_ICO" ); createAction( EditDigueId, "EDIT_DIGUE", "EDIT_DIGUE_ICO" ); + createAction( ImportStricklerTableFromFileId, "IMPORT_STRICKLER_TABLE", "IMPORT_STRICKLER_TABLE_ICO" ); + createAction( ExportStricklerTableFromFileId, "EXPORT_STRICKLER_TABLE", "EXPORT_STRICKLER_TABLE_ICO" ); + createAction( EditStricklerTableId, "EDIT_STRICKLER_TABLE", "EDIT_STRICKLER_TABLE_ICO" ); + createAction( DuplicateStricklerTableId, "DUPLICATE_STRICKLER_TABLE", "DUPLICATE_STRICKLER_TABLE_ICO" ); + + createAction( CreateLandCoverMapId, "CREATE_LAND_COVER_MAP", "CREATE_LAND_COVER_MAP_ICO" ); + + createAction( AddLandCoverId, "ADD_LAND_COVER", "ADD_LAND_COVER_ICO" ); + createAction( RemoveLandCoverId, "REMOVE_LAND_COVER", "REMOVE_LAND_COVER_ICO" ); + createAction( SplitLandCoverId, "SPLIT_LAND_COVER", "SPLIT_LAND_COVER_ICO" ); + createAction( MergeLandCoverId, "MERGE_LAND_COVER", "MERGE_LAND_COVER_ICO" ); + createAction( ChangeLandCoverTypeId, "CHANGE_LAND_COVER_TYPE", "CHANGE_LAND_COVER_TYPE_ICO" ); + createAction( ImportObstacleFromFileId, "IMPORT_OBSTACLE_FROM_FILE", "IMPORT_OBSTACLE_FROM_FILE_ICO" ); createAction( ImportGeomObjectAsObstacleId, "IMPORT_GEOM_OBJECT_AS_OBSTACLE", "IMPORT_GEOM_OBJECT_ICO" ); createAction( ImportGeomObjectAsPolylineId, "IMPORT_GEOM_OBJECT_AS_POLYLINE", "IMPORT_GEOM_OBJECT_ICO" ); @@ -166,7 +197,9 @@ void HYDROGUI_Module::createActions() createAction( EditCutImageId, "EDIT_CUT_IMAGE", "EDIT_CUT_IMAGE_ICO" ); createAction( SplitImageId, "SPLIT_IMAGE", "SPLIT_IMAGE_ICO" ); - createAction( EditSplittedImageId, "EDIT_SPLITTED_IMAGE", "EDIT_SPLITTED_IMAGE_ICO" ); + createAction( EditSplitImageId, "EDIT_SPLIT_IMAGE", "EDIT_SPLIT_IMAGE_ICO" ); + + createAction( RecognizeContoursId, "RECOGNIZE_CONTOURS", "RECOGNIZE_CONTOURS_ICO" ); createAction( CopyViewerPositionId, "COPY_VIEWER_POSITION", "" ); @@ -174,6 +207,7 @@ void HYDROGUI_Module::createActions() SLOT( onDelete() ) ); createAction( SetColorId, "COLOR" ); + createAction( SetTransparencyId, "TRANSPARENCY" ); createAction( SetZLevelId, "ZLEVEL" ); createAction( EditLocalCSId, "EDIT_LOCAL_CS" ); @@ -183,8 +217,19 @@ void HYDROGUI_Module::createActions() createAction( HideId, "HIDE" ); createAction( HideAllId, "HIDE_ALL" ); - createAction( RiverBottom, "CREATE_RIVER_BOTTOM", "CREATE_RIVER_BOTTOM_ICO" ); - createAction( ProfileInterpolate, "PROFILE_INTERPOLATE", "PROFILE_INTERPOLATE_ICO" ); + createAction( RiverBottomId, "CREATE_STREAM_BOTTOM", "CREATE_STREAM_BOTTOM_ICO" ); + createAction( RiverBottomContextId, "CREATE_STREAM_BOTTOM", "CREATE_STREAM_BOTTOM_ICO" ); + createAction( ProfileInterpolateId, "PROFILE_INTERPOLATE", "PROFILE_INTERPOLATE_ICO" ); + + createAction( SubmersibleId, "SUBMERSIBLE", "SUBMERSIBLE_ICO" ); + createAction( ExportToShapeFileID, "EXPORT_TO_SHAPE_FILE", "EXPORT_TO_SHAPE_FILE_ICO" ); + + createAction( PolylineExtractionId, "POLYLINE_EXTRACTION" ); + createAction( SplitPolylinesId, "SPLIT_POLYLINES", "SPLIT_POLYLINES_ICO" ); + createAction( MergePolylinesId, "MERGE_POLYLINES", "MERGE_POLYLINES_ICO" ); + + createAction( LandCoverScalarMapModeOnId, "LC_SCALARMAP_COLORING_ON" ); + createAction( LandCoverScalarMapModeOffId, "LC_SCALARMAP_COLORING_OFF" ); } void HYDROGUI_Module::createMenus() @@ -203,37 +248,62 @@ void HYDROGUI_Module::createMenus() int aHydroMenu = 6; // Edit menu id == 5, View menu id == 10 int aHydroId = createMenu( tr( "MEN_DESK_HYDRO" ), -1, -1, aHydroMenu ); - createMenu( ImportImageId, aHydroId, -1, -1 ); + createMenu( ImportSinusXId, aHydroId, -1, -1 ); + createMenu( ExportSinusXId, aHydroId, -1, -1 ); + createMenu( ImportBathymetryId, aHydroId, -1, -1 ); - createMenu( CreatePolylineId, aHydroId, -1, -1 ); + createMenu( ImportStricklerTableFromFileId, aHydroId, -1, -1 ); createMenu( CreatePolyline3DId, aHydroId, -1, -1 ); - createMenu( RiverBottom, aHydroId, -1, -1 ); - createMenu( EditLocalCSId, aHydroId, -1, -1 ); + createMenu( CreateImmersibleZoneId, aHydroId, -1, -1 ); + createMenu( CreateChannelId, aHydroId, -1, -1 ); + createMenu( CreateDigueId, aHydroId, -1, -1 ); + + int aNewImageId = createMenu( tr( "MEN_DESK_IMAGE" ), aHydroId, -1 ); + createMenu( ImportImageId, aNewImageId, -1, -1 ); + createMenu( separator(), aNewImageId ); + createMenu( FuseImagesId, aNewImageId, -1, -1 ); + createMenu( CutImagesId, aNewImageId, -1, -1 ); + createMenu( SplitImageId, aNewImageId, -1, -1 ); + + int aNewPolylineId = createMenu( tr( "MEN_DESK_POLYLINE" ), aHydroId, -1 ); + createMenu( ImportPolylineId, aNewPolylineId, -1, -1 ); + createMenu( CreatePolylineId, aNewPolylineId, -1, -1 ); + createMenu( separator(), aNewPolylineId ); + createMenu( SplitPolylinesId, aNewPolylineId, -1, -1 ); + createMenu( MergePolylinesId, aNewPolylineId, -1, -1 ); int aNewProfileId = createMenu( tr( "MEN_DESK_PROFILE" ), aHydroId, -1 ); createMenu( CreateProfileId, aNewProfileId, -1, -1 ); createMenu( ImportProfilesId, aNewProfileId, -1, -1 ); + createMenu( separator(), aNewProfileId ); createMenu( AllGeoreferencementId, aNewProfileId, -1, -1 ); - createMenu( ProfileInterpolate, aNewProfileId, -1, -1 ); - - int anArtificialMenuId = createMenu( tr( "MEN_DESK_ARTIFICIAL" ), aHydroId, -1 ); - createMenu( CreateChannelId, anArtificialMenuId, -1, -1 ); - createMenu( CreateDigueId, anArtificialMenuId, -1, -1 ); - int aNaturalMenuId = createMenu( tr( "MEN_DESK_NATURAL" ), aHydroId, -1 ); - createMenu( CreateImmersibleZoneId, aNaturalMenuId, -1, -1 ); - createMenu( CreateStreamId, aNaturalMenuId, -1, -1 ); + int aStreamMenuId = createMenu( tr( "MEN_DESK_STREAM" ), aHydroId, -1 ); + createMenu( CreateStreamId, aStreamMenuId, -1, -1 ); + createMenu( separator(), aStreamMenuId ); + createMenu( RiverBottomId, aStreamMenuId, -1, -1 ); + createMenu( ProfileInterpolateId, aStreamMenuId, -1, -1 ); int anObstacleMenuId = createMenu( tr( "MEN_DESK_OBSTACLE" ), aHydroId, -1 ); createMenu( ImportObstacleFromFileId, anObstacleMenuId, -1, -1 ); + createMenu( separator(), anObstacleMenuId ); createMenu( CreateBoxId, anObstacleMenuId, -1, -1 ); createMenu( CreateCylinderId, anObstacleMenuId, -1, -1 ); + int aLandCoverMapMenuId = createMenu( tr( "MEN_DESK_LAND_COVER_MAP" ), aHydroId, -1 ); + createMenu( ImportLandCoverMapId, aLandCoverMapMenuId, -1, -1 ); + createMenu( CreateLandCoverMapId, aLandCoverMapMenuId, -1, -1 ); + createMenu( separator(), aLandCoverMapMenuId ); + createMenu( AddLandCoverId, aLandCoverMapMenuId, -1, -1 ); + createMenu( RemoveLandCoverId, aLandCoverMapMenuId, -1, -1 ); + createMenu( separator(), aLandCoverMapMenuId ); + createMenu( SplitLandCoverId, aLandCoverMapMenuId, -1, -1 ); + createMenu( MergeLandCoverId, aLandCoverMapMenuId, -1, -1 ); + createMenu( ChangeLandCoverTypeId, aLandCoverMapMenuId, -1, -1 ); + createMenu( CreateCalculationId, aHydroId, -1, -1 ); createMenu( separator(), aHydroId ); - createMenu( FuseImagesId, aHydroId, -1, -1 ); - createMenu( CutImagesId, aHydroId, -1, -1 ); - createMenu( SplitImageId, aHydroId, -1, -1 ); + createMenu( EditLocalCSId, aHydroId, -1, -1 ); createMenu( separator(), aHydroId ); } @@ -249,6 +319,11 @@ void HYDROGUI_Module::createToolbars() createTool( separator(), aToolBar ); createTool( ImportImageId, aToolBar ); + createTool( ImportPolylineId, aToolBar ); + createTool( ImportSinusXId, aToolBar ); + createTool( ExportSinusXId, aToolBar ); + createTool( ImportLandCoverMapId, aToolBar ); + createTool( ImportBathymetryId, aToolBar ); createTool( CreatePolylineId, aToolBar ); createTool( CreatePolyline3DId, aToolBar ); @@ -271,6 +346,18 @@ void HYDROGUI_Module::createToolbars() createTool( CreateBoxId, aToolBar ); createTool( CreateCylinderId, aToolBar ); + createTool( separator(), aToolBar ); + createTool( ImportStricklerTableFromFileId, aToolBar ); + + createTool( separator(), aToolBar ); + createTool( CreateLandCoverMapId, aToolBar ); + createTool( AddLandCoverId, aToolBar ); + createTool( RemoveLandCoverId, aToolBar ); + createTool( SplitLandCoverId, aToolBar ); + createTool( MergeLandCoverId, aToolBar ); + createTool( ChangeLandCoverTypeId, aToolBar ); + enableLCMActions(); + createTool( separator(), aToolBar ); createTool( CreateCalculationId, aToolBar ); @@ -321,6 +408,24 @@ void HYDROGUI_Module::updateUndoRedoControls() aRedoAction->setEnabled( aCanRedo ); } +void HYDROGUI_Module::enableLCMActions() +{ + HYDROData_Iterator anIt( HYDROData_Document::Document( getStudyId() ), KIND_LAND_COVER_MAP ); + bool anEnableTools = anIt.More(); + + QtxListAction* anAction; + anAction = (QtxListAction*)action( AddLandCoverId ); + if ( anAction ) anAction->setEnabled( anEnableTools ); + anAction = (QtxListAction*)action( RemoveLandCoverId ); + if ( anAction ) anAction->setEnabled( anEnableTools ); + anAction = (QtxListAction*)action( SplitLandCoverId ); + if ( anAction ) anAction->setEnabled( anEnableTools ); + anAction = (QtxListAction*)action( MergeLandCoverId ); + if ( anAction ) anAction->setEnabled( anEnableTools ); + anAction = (QtxListAction*)action( ChangeLandCoverTypeId ); + if ( anAction ) anAction->setEnabled( anEnableTools ); +} + void HYDROGUI_Module::onOperation() { const QAction* anAction = dynamic_cast( sender() ); @@ -401,6 +506,15 @@ LightApp_Operation* HYDROGUI_Module::createOperation( const int theId ) const case EditImportedImageId: anOp = new HYDROGUI_ImportImageOp( aModule, theId == EditImportedImageId ); break; + case ImportPolylineId: + anOp = new HYDROGUI_ImportPolylineOp( aModule/*, theId == EditImportedPolylineId*/ ); + break; + case ImportSinusXId: + anOp = new HYDROGUI_ImportSinusXOp( aModule ); + break; + case ExportSinusXId: + anOp = new HYDROGUI_ExportSinusXOp( aModule ); + break; case ObserveImageId: anOp = new HYDROGUI_ObserveImageOp( aModule ); break; @@ -411,6 +525,12 @@ LightApp_Operation* HYDROGUI_Module::createOperation( const int theId ) const case ForcedUpdateObjectId: anOp = new HYDROGUI_UpdateObjectOp( aModule, theId == ForcedUpdateObjectId ); break; + case ExportToShapeFileID: + anOp = new HYDROGUI_ExportFileOp( aModule ); + break; + case ImportLandCoverMapId: + anOp = new HYDROGUI_ImportLandCoverMapOp( aModule ); + break; case RemoveImageRefsId: anOp = new HYDROGUI_RemoveImageRefsOp( aModule ); break; @@ -426,7 +546,7 @@ LightApp_Operation* HYDROGUI_Module::createOperation( const int theId ) const case EditProfileId: anOp = new HYDROGUI_ProfileOp( aModule, theId == EditProfileId ); break; - case ProfileInterpolate: + case ProfileInterpolateId: anOp = new HYDROGUI_ProfileInterpolateOp( aModule ); break; case ImportProfilesId: @@ -461,6 +581,22 @@ LightApp_Operation* HYDROGUI_Module::createOperation( const int theId ) const case EditDigueId: anOp = new HYDROGUI_DigueOp( aModule, theId == EditDigueId ); break; + case ImportStricklerTableFromFileId: + case ExportStricklerTableFromFileId: + case EditStricklerTableId: + anOp = new HYDROGUI_StricklerTableOp( aModule, theId ); + break; + case CreateLandCoverMapId: + case AddLandCoverId: + case RemoveLandCoverId: + case SplitLandCoverId: + case MergeLandCoverId: + case ChangeLandCoverTypeId: + anOp = new HYDROGUI_LandCoverMapOp( aModule, theId ); + break; + case DuplicateStricklerTableId: + anOp = new HYDROGUI_DuplicateOp( aModule ); + break; case CreateCalculationId: case EditCalculationId: anOp = new HYDROGUI_CalculationOp( aModule, theId == EditCalculationId ); @@ -477,8 +613,8 @@ LightApp_Operation* HYDROGUI_Module::createOperation( const int theId ) const anOp = new HYDROGUI_TwoImagesOp( aModule, HYDROGUI_TwoImagesOp::Cut, theId == EditCutImageId ); break; case SplitImageId: - case EditSplittedImageId: - anOp = new HYDROGUI_TwoImagesOp( aModule, HYDROGUI_TwoImagesOp::Split, theId == EditSplittedImageId ); + case EditSplitImageId: + anOp = new HYDROGUI_TwoImagesOp( aModule, HYDROGUI_TwoImagesOp::Split, theId == EditSplitImageId ); break; case ImportObstacleFromFileId: anOp = new HYDROGUI_ImportObstacleFromFileOp( aModule ); @@ -509,15 +645,22 @@ LightApp_Operation* HYDROGUI_Module::createOperation( const int theId ) const case SetColorId: anOp = new HYDROGUI_SetColorOp( aModule ); break; + case SetTransparencyId: + anOp = new HYDROGUI_SetTransparencyOp( aModule ); + break; case SetZLevelId: anOp = new HYDROGUI_ZLevelsOp( aModule ); break; case EditLocalCSId: anOp = new HYDROGUI_LocalCSOp( aModule ); break; - case RiverBottom: + case RiverBottomId: + case RiverBottomContextId: anOp = new HYDROGUI_RiverBottomOp( aModule ); break; + case RecognizeContoursId: + anOp = new HYDROGUI_RecognizeContoursOp( aModule ); + break; case ShowId: case ShowOnlyId: case ShowAllId: @@ -525,6 +668,22 @@ LightApp_Operation* HYDROGUI_Module::createOperation( const int theId ) const case HideAllId: anOp = new HYDROGUI_ShowHideOp( aModule, theId ); break; + case SubmersibleId: + anOp = new HYDROGUI_SubmersibleOp( aModule ); + break; + case PolylineExtractionId: + anOp = new HYDROGUI_PolylineExtractionOp( aModule ); + break; + case SplitPolylinesId: + anOp = new HYDROGUI_SplitPolylinesOp( aModule ); + break; + case MergePolylinesId: + anOp = new HYDROGUI_MergePolylinesOp( aModule ); + break; + case LandCoverScalarMapModeOnId: + case LandCoverScalarMapModeOffId: + anOp = new HYDROGUI_LandCoverColoringOp( aModule, theId ); + break; } if( !anOp )