#include "HYDROGUI_DataModel.h"
#include "HYDROGUI_ZoneDlg.h"
#include "HYDROGUI_Module.h"
-#include "HYDROGUI_PrsZone.h"
+#include "HYDROGUI_Shape.h"
#include "HYDROGUI_Tool.h"
#include "HYDROGUI_UpdateFlags.h"
#include <HYDROData_Iterator.h>
#include <HYDROData_Polyline.h>
-#include <GraphicsView_ViewManager.h>
-#include <GraphicsView_ViewPort.h>
-#include <GraphicsView_Viewer.h>
+#include <OCCViewer_ViewManager.h>
+#include <OCCViewer_ViewModel.h>
#include <LightApp_Application.h>
#include <LightApp_UpdateFlags.h>
if ( !aPanel )
return;
+ aPanel->blockSignals( true );
+
aPanel->reset();
QString anObjectName = HYDROGUI_Tool::GenerateObjectName( module(), "Zone" );
aPanel->setBorderColor( aBorderColor );
aPanel->setPolylineNames( aPolylines );
- aPanel->setPolylineName( aSelectedPolyline );
aPanel->setBathymetries( aBathymetries );
aPanel->setSelectedBathymetries( aSelectedBathymetries );
+ aPanel->blockSignals( false );
+
+ aPanel->setPolylineName( aSelectedPolyline );
+
}
void HYDROGUI_ZoneOp::abortOperation()
myActiveViewManager = anApp->activeViewManager();
}
- if ( !myPreviewPrs )
- {
- myPreviewPrs = new HYDROGUI_PrsZone( myIsEdit ? myEditedObject : 0 );
- }
-
- myPreviewPrs->setPath( aPath );
- myPreviewPrs->setFillingColor( aPanel->getFillingColor() );
- myPreviewPrs->setBorderColor( aPanel->getBorderColor() );
- myPreviewPrs->compute();
-
if ( !myPreviewViewManager )
{
- myPreviewViewManager = ::qobject_cast<GraphicsView_ViewManager*>(
- anApp->createViewManager( GraphicsView_Viewer::Type() ) );
+ myPreviewViewManager = ::qobject_cast<OCCViewer_ViewManager*>(
+ anApp->createViewManager( OCCViewer_Viewer::Type() ) );
if ( myPreviewViewManager )
{
connect( myPreviewViewManager, SIGNAL( lastViewClosed( SUIT_ViewManager* ) ),
module()->setViewManagerRole( myPreviewViewManager, HYDROGUI_Module::VMR_PreviewZone );
myPreviewViewManager->setTitle( tr( "PREVIEW_ZONE" ) );
- if ( GraphicsView_Viewer* aViewer = myPreviewViewManager->getViewer() )
+
+ if ( OCCViewer_Viewer* aViewer = myPreviewViewManager->getOCCViewer() )
{
- if ( GraphicsView_ViewPort* aViewPort = aViewer->getActiveViewPort() )
+ Handle(AIS_InteractiveContext) aCtx = aViewer->getAISContext();
+ if ( !aCtx.IsNull() )
{
- aViewPort->addItem( myPreviewPrs );
+ myPreviewPrs = new HYDROGUI_Shape( aCtx );
}
}
}
}
- if ( myPreviewViewManager )
- {
- if ( GraphicsView_Viewer* aViewer = myPreviewViewManager->getViewer() )
- {
- if ( GraphicsView_ViewPort* aViewPort = aViewer->getActiveViewPort() )
- {
- aViewPort->update();
- aViewPort->fitAll();
- }
- }
- }
+ if ( !myPreviewViewManager || !myPreviewPrs )
+ return;
+
+ myPreviewPrs->setFillingColor( aPanel->getFillingColor(), false );
+ myPreviewPrs->setBorderColor( aPanel->getBorderColor(), false );
+ myPreviewPrs->setPath( aPath, true );
}
void HYDROGUI_ZoneOp::onLastViewClosed( SUIT_ViewManager* theViewManager )
void HYDROGUI_ZoneOp::closePreview()
{
- // It's very strange, but without calling this method (it's quite safe) a crash is stably reproduced.
- // Scenario: create any non-Graphics view, activate import op, click apply.
- // Result: a few SIGSEGVs coming from processEvents(), then crash.
- if( myPreviewViewManager )
- if( GraphicsView_Viewer* aViewer = myPreviewViewManager->getViewer() )
- if( GraphicsView_ViewPort* aViewPort = aViewer->getActiveViewPort() )
- aViewPort->onBoundingRectChanged();
-
if( myPreviewPrs )
{
delete myPreviewPrs;