#include "HYDROGUI_ImportLandCoverMapOp.h"
#include "HYDROGUI_BathymetrySelectionOp.h"
#include "HYDROGUI_BathymetryOp.h"
-
+#include "HYDROGUI_RegenerateRegionColorsOp.h"
+#include "HYDROGUI_PolylineStyleOp.h"
+#include "HYDROGUI_ZoneSetColorOp.h"
#include <HYDROData_Document.h>
#include <HYDROData_Obstacle.h>
#include <HYDROData_SplitToZonesTool.h>
#include <LightApp_Application.h>
-#include <CAM_Application.h>
+#include <OCCViewer_ViewModel.h>
+#include <OCCViewer_ViewManager.h>
+#include <OCCViewer_ViewWindow.h>
+#include <OCCViewer_ViewFrame.h>
#include <QtxListAction.h>
#include <QtxActionToolMgr.h>
createAction( ProfileInterpolateId, "PROFILE_INTERPOLATE", "PROFILE_INTERPOLATE_ICO" );
createAction( SubmersibleId, "SUBMERSIBLE", "SUBMERSIBLE_ICO" );
+ createAction( UnSubmersibleId, "UNSUBMERSIBLE", "HYDRO_UNSUBMERSIBLE16_ICO" );
createAction( ExportToShapeFileID, "EXPORT_TO_SHAPE_FILE", "EXPORT_TO_SHAPE_FILE_ICO" );
createAction( PolylineExtractionId, "POLYLINE_EXTRACTION" );
createAction( LandCoverScalarMapModeOnId, "LC_SCALARMAP_COLORING_ON" );
createAction( LandCoverScalarMapModeOffId, "LC_SCALARMAP_COLORING_OFF" );
+
+ createAction( RegenerateRegionColorsId, "REGENERATE_REGION_COLORS" );
+ createAction( ZoneSetColorId, "ZONE_SET_COLOR" );
+ createAction( ShowHideArrows, "SHOW_HIDE_ARROWS" );
}
void HYDROGUI_Module::createMenus()
if ( anAction ) anAction->setEnabled( anEnableTools );
}
+void HYDROGUI_Module::resetViewState()
+{
+ OCCViewer_ViewManager* mgr = dynamic_cast<OCCViewer_ViewManager*>(getApp()->viewManager( OCCViewer_Viewer::Type()));
+ if( mgr )
+ {
+ foreach( SUIT_ViewWindow* wnd, mgr->getViews() )
+ {
+ OCCViewer_ViewFrame* vf = dynamic_cast<OCCViewer_ViewFrame*>( wnd );
+ if( vf )
+ {
+ for( int i=OCCViewer_ViewFrame::MAIN_VIEW; i<=OCCViewer_ViewFrame::TOP_RIGHT; i++ )
+ {
+ OCCViewer_ViewWindow* iwnd = vf->getView(i);
+ if( iwnd )
+ iwnd->resetState();
+ }
+ }
+ else
+ {
+ OCCViewer_ViewWindow* ownd = dynamic_cast<OCCViewer_ViewWindow*>( wnd );
+ if( ownd )
+ ownd->resetState();
+ }
+ }
+ }
+}
+
void HYDROGUI_Module::onOperation()
{
const QAction* anAction = dynamic_cast<const QAction*>( sender() );
int anId = actionId( anAction );
if( anId >= 0 )
+ {
+ resetViewState();
startOperation( anId );
+ }
+
+ if( anId==ShowHideArrows )
+ {
+ setArrowsVisible( !arrowsVisible() );
+ }
+}
+
+bool HYDROGUI_Module::arrowsVisible() const
+{
+ int aType;
+ SUIT_ResourceMgr* resMgr = application()->resourceMgr();
+ if( resMgr )
+ {
+ resMgr->value( "polyline", "arrow_type", aType );
+ return aType>0;
+ }
+ else
+ return false;
+}
+
+void HYDROGUI_Module::setArrowsVisible( bool isVisible )
+{
+ SUIT_ResourceMgr* resMgr = application()->resourceMgr();
+
+ int aType=-1;
+ if( !resMgr )
+ return;
+
+ if( isVisible )
+ {
+ if( resMgr->hasValue( "polyline", "prev_arrow_type" ) )
+ resMgr->value( "polyline", "prev_arrow_type", aType );
+
+ if( aType<=0 )
+ aType = 1;
+ resMgr->setValue( "polyline", "arrow_type", aType );
+ }
+ else
+ {
+ resMgr->value( "polyline", "arrow_type", aType );
+ resMgr->setValue( "polyline", "prev_arrow_type", aType );
+ resMgr->setValue( "polyline", "arrow_type", 0 );
+ }
+ preferencesChanged( "polyline", "arrow_type" );
}
void HYDROGUI_Module::onDelete()
anOp = new HYDROGUI_ShowHideOp( aModule, theId );
break;
case SubmersibleId:
- anOp = new HYDROGUI_SubmersibleOp( aModule );
+ anOp = new HYDROGUI_SubmersibleOp( aModule, true );
+ break;
+ case UnSubmersibleId:
+ anOp = new HYDROGUI_SubmersibleOp( aModule, false );
break;
case PolylineExtractionId:
anOp = new HYDROGUI_PolylineExtractionOp( aModule );
case LandCoverScalarMapModeOffId:
anOp = new HYDROGUI_LandCoverColoringOp( aModule, theId );
break;
+ case RegenerateRegionColorsId:
+ anOp = new HYDROGUI_RegenerateRegionColorsOp( aModule );
+ break;
+ case ZoneSetColorId:
+ anOp = new HYDROGUI_ZoneSetColorOp( aModule );
+ break;
}
if( !anOp )
if( isChecked )
startOperation( BathymetrySelectionId );
else
- operation( BathymetrySelectionId )->abort();
+ {
+ LightApp_Operation* op = operation( BathymetryTextId );
+ if( op )
+ op->abort();
+
+ op = operation( BathymetrySelectionId );
+ if( op )
+ op->abort();
+ }
}
void HYDROGUI_Module::onBathymetryText()
if( isChecked )
startOperation( BathymetryTextId );
else
- operation( BathymetryTextId )->abort();
+ {
+ HYDROGUI_BathymetryOp* op = dynamic_cast<HYDROGUI_BathymetryOp*>( operation( BathymetryTextId ) );
+ if( op )
+ op->commit();
+ }
}