}
}
-
aPanel->reset();
QStringList aList;
QStringList anEntryList;
myEditedObject->GetBoundaryPolyline();
if ( !aPrevPolyline.IsNull() )
{
- module()->removeObjectShape( HYDROGUI_Module::VMR_PreviewCaseZones, aPrevPolyline );
+ setObjectVisibility( aPrevPolyline, false );
anIsToUpdateViewer = true;
}
Handle(AIS_InteractiveContext) aCtx = aViewer->getAISContext();
if ( !aCtx.IsNull() )
{
- showObject( aNewPolyline, aCtx );
+ setObjectVisibility( aNewPolyline, true );
anIsToUpdateViewer = true;
}
}
if ( anIsToUpdateViewer )
- aViewer->update();
+ module()->update( UF_OCCViewer );
}
}
}
aName = anEntity->GetName();
isSelected = aSelectedObjsMap.contains( aName );
aShape->highlight( isSelected, false );
- aShape->update( false );
+ aShape->update( false, false );
aLastShape = aShape;
}
}
}
if( aLastShape )
- aLastShape->update( true );
+ aLastShape->update( true, false );
}
void HYDROGUI_CalculationOp::onClickedInZonesBrowser( SUIT_DataObject* theItem )
HYDROGUI_Shape* aShape = module()->getObjectShape( HYDROGUI_Module::VMR_PreviewCaseZones, aZone->modelObject() );
if ( aShape )
{
- aShape->update();
+ aShape->update( true, false );
}
}
aPanel->refreshZonesBrowser();
if ( anObject.IsNull() )
continue;
- module()->removeObjectShape( HYDROGUI_Module::VMR_PreviewCaseZones, anObject );
+ setObjectVisibility( anObject, false );
myEditedObject->RemoveGeometryObject( anObject );
}
+ module()->update( UF_OCCViewer );
aPanel->excludeGeomObjects( aSelectedList );
}
}
bool HYDROGUI_CalculationOp::processApply( int& theUpdateFlags,
- QString& theErrorMsg )
+ QString& theErrorMsg,
+ QStringList& theBrowseObjectsEntries )
{
HYDROGUI_CalculationDlg* aPanel =
::qobject_cast<HYDROGUI_CalculationDlg*>( inputPanel() );
if ( !aPanel )
return false;
+ if( !myIsEdit )
+ {
+ QString anEntry = HYDROGUI_DataObject::dataObjectEntry( myEditedObject );
+ theBrowseObjectsEntries.append( anEntry );
+ }
+
theUpdateFlags = UF_Model | UF_OCCViewer | UF_OCC_Forced | UF_VTKViewer | UF_VTK_Forced | UF_VTK_Init;
return true;
int anUpdateFlags = 0;
QString anErrorMsg;
+ QStringList aBrowseObjectsEntries;
bool aResult = false;
try
{
- aResult = processApply( anUpdateFlags, anErrorMsg );
+ aResult = processApply( anUpdateFlags, anErrorMsg, aBrowseObjectsEntries );
}
catch ( Standard_Failure )
{
{
module()->update( anUpdateFlags );
commit();
+ browseObjects( aBrowseObjectsEntries );
}
else
{
HYDROData_SequenceOfObjects::Iterator aZonesIter( aZones );
for ( ; aZonesIter.More(); aZonesIter.Next() )
{
- if ( theIsVisible )
- {
- showObject( aZonesIter.Value(), aCtx );
- }
- else
- {
- module()->removeObjectShape( HYDROGUI_Module::VMR_PreviewCaseZones, aZonesIter.Value() );
- }
+ setObjectVisibility( aZonesIter.Value(), theIsVisible );
}
}
}
}
- aViewer->update();
+ module()->update( UF_OCCViewer );
}
}
}
HYDROData_SequenceOfObjects::Iterator anIter( aSeq );
for ( ; anIter.More(); anIter.Next() )
{
- showObject( anIter.Value(), aCtx );
+ setObjectVisibility( anIter.Value(), true );
}
//Process the draw events for viewer
vw->onTopView();
}
- aViewer->update();
+ module()->update( UF_OCCViewer | UF_FitAll );
}
}
-void HYDROGUI_CalculationOp::showObject( Handle(HYDROData_Entity) theEntity, Handle(AIS_InteractiveContext) theCtx )
+void HYDROGUI_CalculationOp::setObjectVisibility( Handle(HYDROData_Entity) theEntity, const bool theIsVisible )
{
- if ( !theEntity.IsNull() )
- {
- HYDROGUI_Shape* aShape = module()->getObjectShape( HYDROGUI_Module::VMR_PreviewCaseZones, theEntity );
- if ( !aShape )
- {
- aShape = new HYDROGUI_Shape( theCtx, theEntity );
- module()->setObjectShape( HYDROGUI_Module::VMR_PreviewCaseZones, theEntity, aShape );
- }
- aShape->update( false );
+ if ( theEntity.IsNull() || !myPreviewViewManager ) {
+ return;
+ }
+
+ OCCViewer_Viewer* aViewer = myPreviewViewManager->getOCCViewer();
+ if ( aViewer ) {
+ module()->setObjectVisible( (size_t)aViewer, theEntity, theIsVisible );
}
}
if( myPreviewViewManager )
{
+ // Hide all the displayed objects in the preview view
+ OCCViewer_Viewer* aViewer = myPreviewViewManager->getOCCViewer();
+ if ( aViewer ) {
+ size_t aViewId = (size_t)aViewer;
+ HYDROData_Iterator anIterator( doc() );
+ for( ; anIterator.More(); anIterator.Next() ) {
+ Handle(HYDROData_Entity) anObject = anIterator.Current();
+ if( !anObject.IsNull() ) {
+ module()->setObjectVisible( aViewId, anObject, false );
+ }
+ }
+ }
+
disconnect( myPreviewViewManager, SIGNAL( lastViewClosed( SUIT_ViewManager* ) ),
this, SLOT( onLastViewClosed( SUIT_ViewManager* ) ) );
aGroupsNames.append( aGroup->GetName() );
}
}
- if( myEditedObject->IsMustBeUpdated() )
- myEditedObject->RemoveGeometryGroups();
+ if( myEditedObject->IsMustBeUpdated() ) {
+ for( int anIndex = 1, aLength = aSeq.Length(); anIndex <= aLength; anIndex++ ) {
+ Handle(HYDROData_ShapesGroup) aGeomGroup =
+ Handle(HYDROData_ShapesGroup)::DownCast( aSeq.Value( anIndex ) );
+ if ( !aGeomGroup.IsNull() && !aGroupsNames.contains( aGeomGroup->GetName() ) ) {
+ myEditedObject->RemoveGeometryGroup( aGeomGroup );
+ }
+ }
+ }
aPanel->setAvailableGroups( aGroupsNames );
aPanel->includeGroups( aList );