Salome HOME
refs #207 - "Help" button doesn't work
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_Operations.cxx
index 85601129dadd793f7522178b8d52a669f80a73b8..7d8dba61d98a7e0d1969a6f99ff68b8967b64813 100644 (file)
@@ -27,6 +27,7 @@
 #include "HYDROGUI_ChannelOp.h"
 #include "HYDROGUI_DataModel.h"
 #include "HYDROGUI_DeleteOp.h"
+#include "HYDROGUI_DigueOp.h"
 #include "HYDROGUI_ExportImageOp.h"
 #include "HYDROGUI_ImportImageOp.h"
 #include "HYDROGUI_ImportBathymetryOp.h"
@@ -67,6 +68,7 @@
 #include <CAM_Application.h>
 
 #include <QtxListAction.h>
+#include <QtxActionToolMgr.h>
 
 #include <SUIT_Desktop.h>
 #include <SUIT_ResourceMgr.h>
@@ -104,53 +106,56 @@ void HYDROGUI_Module::createActions()
 
   createAction( UpdateObjectId, "UPDATE_OBJECT" );
 
-  createAction( ImportImageId, "IMPORT_IMAGE", "", Qt::CTRL + Qt::Key_I );
-  createAction( EditImportedImageId, "EDIT_IMPORTED_IMAGE" );
-  createAction( ObserveImageId, "OBSERVE_IMAGE" );
-  createAction( ExportImageId, "EXPORT_IMAGE" );
-  createAction( RemoveImageRefsId, "REMOVE_IMAGE_REFERENCE" );
+  createAction( ImportImageId, "IMPORT_IMAGE", "IMPORT_IMAGE_ICO", Qt::CTRL + Qt::Key_I );
+  createAction( EditImportedImageId, "EDIT_IMPORTED_IMAGE", "EDIT_IMPORTED_IMAGE_ICO" );
+  createAction( ObserveImageId, "OBSERVE_IMAGE", "OBSERVE_IMAGE_ICO" );
+  createAction( ExportImageId, "EXPORT_IMAGE", "EXPORT_IMAGE_ICO" );
+  createAction( RemoveImageRefsId, "REMOVE_IMAGE_REFERENCE", "REMOVE_IMAGE_REFERENCE_ICO" );
 
-  createAction( CreatePolylineId, "CREATE_POLYLINE" );
-  createAction( EditPolylineId, "EDIT_POLYLINE" ); 
+  createAction( CreatePolylineId, "CREATE_POLYLINE", "CREATE_POLYLINE_ICO" );
+  createAction( EditPolylineId, "EDIT_POLYLINE", "EDIT_POLYLINE_ICO" ); 
 
-  createAction( CreatePolyline3DId, "CREATE_POLYLINE_3D" );
-  createAction( EditPolyline3DId, "EDIT_POLYLINE_3D" ); 
+  createAction( CreatePolyline3DId, "CREATE_POLYLINE_3D", "CREATE_POLYLINE_3D_ICO" );
+  createAction( EditPolyline3DId, "EDIT_POLYLINE_3D", "EDIT_POLYLINE_3D_ICO" ); 
 
-  createAction( CreateProfileId, "CREATE_PROFILE" );
-  createAction( ImportProfilesId, "IMPORT_PROFILES" );
-  createAction( EditProfileId, "EDIT_PROFILE" ); 
-  createAction( AllGeoreferencementId, "GEOREFERENCEMENT" ); 
-  createAction( SelectedGeoreferencementId, "GEOREFERENCEMENT" ); 
+  createAction( CreateProfileId, "CREATE_PROFILE", "CREATE_PROFILE_ICO" );
+  createAction( ImportProfilesId, "IMPORT_PROFILES", "IMPORT_PROFILES_ICO" );
+  createAction( EditProfileId, "EDIT_PROFILE", "EDIT_PROFILE_ICO" ); 
+  createAction( AllGeoreferencementId, "GEOREFERENCEMENT", "GEOREFERENCEMENT_ICO" ); 
+  createAction( SelectedGeoreferencementId, "GEOREFERENCEMENT", "GEOREFERENCEMENT_ICO" ); 
   
-  createAction( ImportBathymetryId, "IMPORT_BATHYMETRY", "", Qt::CTRL + Qt::Key_B );
-  createAction( EditImportedBathymetryId, "EDIT_IMPORTED_BATHYMETRY" );
+  createAction( ImportBathymetryId, "IMPORT_BATHYMETRY", "IMPORT_BATHYMETRY_ICO", Qt::CTRL + Qt::Key_B );
+  createAction( EditImportedBathymetryId, "EDIT_IMPORTED_BATHYMETRY", "EDIT_IMPORTED_BATHYMETRY_ICO" );
 
-  createAction( CreateImmersibleZoneId, "CREATE_IMMERSIBLE_ZONE" );
-  createAction( EditImmersibleZoneId, "EDIT_IMMERSIBLE_ZONE" );
+  createAction( CreateImmersibleZoneId, "CREATE_IMMERSIBLE_ZONE", "CREATE_IMMERSIBLE_ZONE_ICO" );
+  createAction( EditImmersibleZoneId, "EDIT_IMMERSIBLE_ZONE", "EDIT_IMMERSIBLE_ZONE_ICO" );
 
-  createAction( CreateStreamId, "CREATE_STREAM" );
-  createAction( EditStreamId, "EDIT_STREAM" );
+  createAction( CreateStreamId, "CREATE_STREAM", "CREATE_STREAM_ICO" );
+  createAction( EditStreamId, "EDIT_STREAM", "EDIT_STREAM_ICO" );
 
-  createAction( CreateChannelId, "CREATE_CHANNEL" );
-  createAction( EditChannelId, "EDIT_CHANNEL" );
+  createAction( CreateChannelId, "CREATE_CHANNEL", "CREATE_CHANNEL_ICO" );
+  createAction( EditChannelId, "EDIT_CHANNEL", "EDIT_CHANNEL_ICO" );
 
-  createAction( ImportObstacleFromFileId, "IMPORT_OBSTACLE_FROM_FILE" );
-  createAction( ImportGeomObjectId, "IMPORT_GEOM_OBJECT" );
-  createAction( CreateBoxId, "CREATE_BOX" );
-  createAction( CreateCylinderId, "CREATE_CYLINDER" );
+  createAction( CreateDigueId, "CREATE_DIGUE", "CREATE_DIGUE_ICO" );
+  createAction( EditDigueId, "EDIT_DIGUE", "EDIT_DIGUE_ICO" );
 
-  createAction( CreateCalculationId, "CREATE_CALCULATION" );
-  createAction( EditCalculationId, "EDIT_CALCULATION" );
-  createAction( ExportCalculationId, "EXPORT_CALCULATION" );
+  createAction( ImportObstacleFromFileId, "IMPORT_OBSTACLE_FROM_FILE", "IMPORT_OBSTACLE_FROM_FILE_ICO" );
+  createAction( ImportGeomObjectId, "IMPORT_GEOM_OBJECT", "IMPORT_GEOM_OBJECT_ICO" );
+  createAction( CreateBoxId, "CREATE_BOX", "CREATE_BOX_ICO" );
+  createAction( CreateCylinderId, "CREATE_CYLINDER", "CREATE_CYLINDER_ICO" );
 
-  createAction( FuseImagesId, "FUSE_IMAGES" );
-  createAction( EditFusedImageId, "EDIT_FUSED_IMAGE" );
+  createAction( CreateCalculationId, "CREATE_CALCULATION", "CREATE_CALCULATION_ICO" );
+  createAction( EditCalculationId, "EDIT_CALCULATION", "EDIT_CALCULATION_ICO" );
+  createAction( ExportCalculationId, "EXPORT_CALCULATION", "EXPORT_CALCULATION_ICO" );
 
-  createAction( CutImagesId, "CUT_IMAGES" );
-  createAction( EditCutImageId, "EDIT_CUT_IMAGE" );
+  createAction( FuseImagesId, "FUSE_IMAGES", "FUSE_IMAGES_ICO" );
+  createAction( EditFusedImageId, "EDIT_FUSED_IMAGE", "EDIT_FUSED_IMAGE_ICO" );
 
-  createAction( SplitImageId, "SPLIT_IMAGE" );
-  createAction( EditSplittedImageId, "EDIT_SPLITTED_IMAGE" );
+  createAction( CutImagesId, "CUT_IMAGES", "CUT_IMAGES_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( DeleteId, "DELETE", "", Qt::Key_Delete, false,
                 SLOT( onDelete() ) );
@@ -192,6 +197,7 @@ void HYDROGUI_Module::createMenus()
 
   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 );
@@ -219,6 +225,38 @@ void HYDROGUI_Module::createToolbars()
   int aToolBar = createTool( tr( "MEN_DESK_HYDRO" ) );
   createTool( UndoId, aToolBar );
   createTool( RedoId, aToolBar );
+
+  createTool( separator(), aToolBar );
+  createTool( ImportImageId, aToolBar );
+  createTool( ImportBathymetryId, aToolBar );
+  createTool( CreatePolylineId, aToolBar );
+  createTool( CreatePolyline3DId, aToolBar );
+
+  createTool( separator(), aToolBar );
+  createTool( CreateProfileId, aToolBar );
+  createTool( ImportProfilesId, aToolBar );
+  createTool( AllGeoreferencementId, aToolBar );
+
+  createTool( separator(), aToolBar );
+  createTool( CreateChannelId, aToolBar );
+  createTool( CreateDigueId, aToolBar );
+
+  createTool( separator(), aToolBar );
+  createTool( CreateImmersibleZoneId, aToolBar );
+  createTool( CreateStreamId, aToolBar );
+
+  createTool( separator(), aToolBar );
+  createTool( ImportObstacleFromFileId, aToolBar );
+  createTool( CreateBoxId, aToolBar );
+  createTool( CreateCylinderId, aToolBar );
+
+  createTool( separator(), aToolBar );
+  createTool( CreateCalculationId, aToolBar );
+
+  createTool( separator(), aToolBar );
+  createTool( FuseImagesId, aToolBar );
+  createTool( CutImagesId, aToolBar );
+  createTool( SplitImageId, aToolBar );
 }
 
 void HYDROGUI_Module::createUndoRedoActions()
@@ -391,6 +429,10 @@ LightApp_Operation* HYDROGUI_Module::createOperation( const int theId ) const
   case EditChannelId:
     anOp = new HYDROGUI_ChannelOp( aModule, theId == EditChannelId );
     break;
+  case CreateDigueId:
+  case EditDigueId:
+    anOp = new HYDROGUI_DigueOp( aModule, theId == EditDigueId );
+    break;
   case CreateCalculationId:
   case EditCalculationId:
     anOp = new HYDROGUI_CalculationOp( aModule, theId == EditCalculationId );
@@ -502,8 +544,8 @@ bool HYDROGUI_Module::renameAllowed( const QString& theEntry ) const
 bool HYDROGUI_Module::renameObject( const QString& theEntry, const QString& theName )
 {
   Handle(HYDROData_Entity) anEntity = getDataModel()->objectByEntry( theEntry );
-  bool aRes = !anEntity.IsNull();
-  if ( aRes )
+  bool aRes = false;
+  if ( !anEntity.IsNull() )
   {
     HYDROGUI_DataModel* aModel = getDataModel();
     if( aModel )
@@ -512,10 +554,18 @@ bool HYDROGUI_Module::renameObject( const QString& theEntry, const QString& theN
       {
         // check that there are no other objects with the same name in the document
         Handle(HYDROData_Entity) anObject = HYDROGUI_Tool::FindObjectByName( this, theName );
-        aRes = anObject.IsNull();
-        if ( aRes )
+        if ( anObject.IsNull() )
         {
-          aRes = aModel->rename( anEntity, theName );
+          SUIT_Operation* anOp = application()->activeStudy()->activeOperation();
+          if ( anOp && anOp->inherits( "HYDROGUI_CalculationOp" ) )
+          {
+            anEntity->SetName( theName );
+            aRes = true;
+          }
+          else
+          {
+            aRes = aModel->rename( anEntity, theName );
+          }
         }
         else
         {