#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_SubmersibleOp.h"
#include "HYDROGUI_StricklerTableOp.h"
#include "HYDROGUI_DuplicateOp.h"
-#include "HYDROGUI_LandCoverOp.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_ImportLandCoverOp.h"
+#include "HYDROGUI_SetTransparencyOp.h"
+#include "HYDROGUI_ImportLandCoverMapOp.h"
+#include "HYDROGUI_BathymetrySelectionOp.h"
#include <HYDROData_Document.h>
#include <HYDROData_Obstacle.h>
#include <HYDROData_SplitToZonesTool.h>
+#include <HYDROData_Iterator.h>
#include <GeometryGUI.h>
#include <GeometryGUI_Operations.h>
createAction( ImportPolylineId, "IMPORT_POLYLINE", "IMPORT_POLYLINE_ICO" );
createAction( ImportSinusXId, "IMPORT_SINUSX", "IMPORT_SINUSX_ICO" );
createAction( ExportSinusXId, "EXPORT_SINUSX", "EXPORT_SINUSX_ICO" );
- createAction( ImportLandcoverId, "IMPORT_LANDCOVER", "IMPORT_LANDCOVER_ICO" );
+ createAction( ImportLandCoverMapId, "IMPORT_LANDCOVER_MAP", "IMPORT_LANDCOVER_MAP_ICO" );
createAction( CreatePolylineId, "CREATE_POLYLINE", "CREATE_POLYLINE_ICO" );
createAction( EditPolylineId, "EDIT_POLYLINE", "EDIT_POLYLINE_ICO" );
createAction( ImportBathymetryId, "IMPORT_BATHYMETRY", "IMPORT_BATHYMETRY_ICO", Qt::CTRL + Qt::Key_B );
createAction( EditImportedBathymetryId, "EDIT_IMPORTED_BATHYMETRY", "EDIT_IMPORTED_BATHYMETRY_ICO" );
createAction( BathymetryBoundsId, "BATHYMETRY_BOUNDS", "BATHYMETRY_BOUNDS_ICO" );
+ createAction( BathymetrySelectionId, "BATHYMETRY_SELECTION", "BATHYMETRY_SELECTION_ICO",
+ 0, true, SLOT( onBathymetrySelection() ) );
createAction( CreateImmersibleZoneId, "CREATE_IMMERSIBLE_ZONE", "CREATE_IMMERSIBLE_ZONE_ICO" );
createAction( EditImmersibleZoneId, "EDIT_IMMERSIBLE_ZONE", "EDIT_IMMERSIBLE_ZONE_ICO" );
createAction( EditStricklerTableId, "EDIT_STRICKLER_TABLE", "EDIT_STRICKLER_TABLE_ICO" );
createAction( DuplicateStricklerTableId, "DUPLICATE_STRICKLER_TABLE", "DUPLICATE_STRICKLER_TABLE_ICO" );
- createAction( CreateLandCoverId, "CREATE_LAND_COVER", "CREATE_LAND_COVER_ICO" );
- createAction( EditLandCoverId, "EDIT_LAND_COVER", "EDIT_LAND_COVER_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( 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" );
SLOT( onDelete() ) );
createAction( SetColorId, "COLOR" );
+ createAction( SetTransparencyId, "TRANSPARENCY" );
createAction( SetZLevelId, "ZLEVEL" );
createAction( EditLocalCSId, "EDIT_LOCAL_CS" );
createAction( ProfileInterpolateId, "PROFILE_INTERPOLATE", "PROFILE_INTERPOLATE_ICO" );
createAction( SubmersibleId, "SUBMERSIBLE", "SUBMERSIBLE_ICO" );
- createAction( ExportPolylineId, "EXPORT_POLYLINE", "EXPORT_POLYLINE_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" );
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( ImportPolylineId, aHydroId, -1, -1 );
createMenu( ImportSinusXId, aHydroId, -1, -1 );
- createMenu( ExportSinusXId, aHydroId, -1, -1 );
- createMenu( ImportLandcoverId, aHydroId, -1, -1 );
+ createMenu( ExportSinusXId, aHydroId, -1, -1 );
createMenu( ImportBathymetryId, aHydroId, -1, -1 );
createMenu( ImportStricklerTableFromFileId, aHydroId, -1, -1 );
- createMenu( CreatePolylineId, aHydroId, -1, -1 );
createMenu( CreatePolyline3DId, aHydroId, -1, -1 );
createMenu( CreateImmersibleZoneId, aHydroId, -1, -1 );
createMenu( CreateChannelId, aHydroId, -1, -1 );
- createMenu( CreateDigueId, aHydroId, -1, -1 );
- createMenu( CreateLandCoverId, 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 );
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( EditLocalCSId, aHydroId, -1, -1 );
createMenu( separator(), aHydroId );
- createMenu( FuseImagesId, aHydroId, -1, -1 );
- createMenu( CutImagesId, aHydroId, -1, -1 );
- createMenu( SplitImageId, aHydroId, -1, -1 );
- createMenu( separator(), aHydroId );
- createMenu( SplitPolylinesId, aHydroId, -1, -1 );
- createMenu( MergePolylinesId, aHydroId, -1, -1 );
}
void HYDROGUI_Module::createPopups()
createTool( ImportPolylineId, aToolBar );
createTool( ImportSinusXId, aToolBar );
createTool( ExportSinusXId, aToolBar );
- createTool( ImportLandcoverId, aToolBar );
+ createTool( ImportLandCoverMapId, aToolBar );
createTool( ImportBathymetryId, aToolBar );
createTool( CreatePolylineId, aToolBar );
createTool( ImportStricklerTableFromFileId, aToolBar );
createTool( separator(), aToolBar );
- createTool( CreateLandCoverId, 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 );
createTool( FuseImagesId, aToolBar );
createTool( CutImagesId, aToolBar );
createTool( SplitImageId, aToolBar );
+
+ createTool( separator(), aToolBar );
+ createTool( BathymetrySelectionId, aToolBar );
}
void HYDROGUI_Module::createUndoRedoActions()
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<const QAction*>( sender() );
case ForcedUpdateObjectId:
anOp = new HYDROGUI_UpdateObjectOp( aModule, theId == ForcedUpdateObjectId );
break;
- case ExportPolylineId:
+ case ExportToShapeFileID:
anOp = new HYDROGUI_ExportFileOp( aModule );
break;
- case ImportLandcoverId:
- anOp = new HYDROGUI_ImportLandCoverOp( aModule );
+ case ImportLandCoverMapId:
+ anOp = new HYDROGUI_ImportLandCoverMapOp( aModule );
break;
case RemoveImageRefsId:
anOp = new HYDROGUI_RemoveImageRefsOp( aModule );
case BathymetryBoundsId:
anOp = new HYDROGUI_BathymetryBoundsOp( aModule );
break;
+ case BathymetrySelectionId:
+ anOp = new HYDROGUI_BathymetrySelectionOp( aModule );
+ break;
case CreateImmersibleZoneId:
case EditImmersibleZoneId:
anOp = new HYDROGUI_ImmersibleZoneOp( aModule, theId == EditImmersibleZoneId );
case EditStricklerTableId:
anOp = new HYDROGUI_StricklerTableOp( aModule, theId );
break;
- case CreateLandCoverId:
- case EditLandCoverId:
- anOp = new HYDROGUI_LandCoverOp( aModule, theId == EditLandCoverId );
+ 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 );
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 );
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 SubmersibleId:
anOp = new HYDROGUI_SubmersibleOp( aModule );
break;
+ case PolylineExtractionId:
+ anOp = new HYDROGUI_PolylineExtractionOp( aModule );
+ break;
case SplitPolylinesId:
anOp = new HYDROGUI_SplitPolylinesOp( aModule );
break;
}
return aRes;
}
+
+void HYDROGUI_Module::onBathymetrySelection()
+{
+ QAction* a = qobject_cast<QAction*>( sender() );
+ if( !a )
+ return;
+
+ bool isChecked = a->isChecked();
+ if( isChecked )
+ startOperation( BathymetrySelectionId );
+ else
+ operation( BathymetrySelectionId )->abort();
+}