X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_ImmersibleZoneOp.cxx;h=dc674b74fc76634fbba524b1675c4aa6492807c2;hb=a53349567d67f4df0ef737798a25c24d9dc8f08e;hp=0fad51be853d32d9db3b0d334883fa6c9677960e;hpb=ff8d3c8919312e506334fd31e19928b09093bebe;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_ImmersibleZoneOp.cxx b/src/HYDROGUI/HYDROGUI_ImmersibleZoneOp.cxx index 0fad51be..dc674b74 100644 --- a/src/HYDROGUI/HYDROGUI_ImmersibleZoneOp.cxx +++ b/src/HYDROGUI/HYDROGUI_ImmersibleZoneOp.cxx @@ -1,12 +1,8 @@ -// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE -// -// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// +// Copyright (C) 2014-2015 EDF-R&D // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either -// version 2.1 of the License. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -28,6 +24,7 @@ #include "HYDROGUI_Shape.h" #include "HYDROGUI_Tool.h" #include "HYDROGUI_UpdateFlags.h" +#include "HYDROGUI_DataObject.h" #include #include @@ -43,6 +40,7 @@ #include #include +#include #include #include @@ -80,7 +78,8 @@ void HYDROGUI_ImmersibleZoneOp::startOperation() if ( myIsEdit ) { - myEditedObject = Handle(HYDROData_ImmersibleZone)::DownCast( HYDROGUI_Tool::GetSelectedObject( module() ) ); + if ( isApplyAndClose() ) + myEditedObject = Handle(HYDROData_ImmersibleZone)::DownCast( HYDROGUI_Tool::GetSelectedObject( module() ) ); if( !myEditedObject.IsNull() ) { anObjectName = myEditedObject->GetName(); @@ -95,46 +94,9 @@ void HYDROGUI_ImmersibleZoneOp::startOperation() } } - // collect information about existing closed polylines - QStringList aPolylines; - - HYDROData_Iterator anIter( doc(), KIND_POLYLINEXY ); - for ( ; anIter.More(); anIter.Next() ) - { - Handle(HYDROData_PolylineXY) aPolylineObj = - Handle(HYDROData_PolylineXY)::DownCast( anIter.Current() ); - if ( aPolylineObj.IsNull() )//TODO: || !aPolylineObj->IsClosed() ) - continue; - - QString aPolylineName = aPolylineObj->GetName(); - if ( aPolylineName.isEmpty() ) - continue; - - aPolylines.append( aPolylineName ); - } - - // collect information about existing bathymetries - QStringList aBathymetries; - - anIter = HYDROData_Iterator( doc(), KIND_BATHYMETRY ); - for ( ; anIter.More(); anIter.Next() ) - { - Handle(HYDROData_Bathymetry) aBathymetryObj = - Handle(HYDROData_Bathymetry)::DownCast( anIter.Current() ); - if ( aBathymetryObj.IsNull() ) - continue; - - QString aBathymetryName = aBathymetryObj->GetName(); - if ( aBathymetryName.isEmpty() ) - continue; - - aBathymetries.append( aBathymetryName ); - } - aPanel->setObjectName( anObjectName ); - - aPanel->setPolylineNames( aPolylines ); - aPanel->setBathymetryNames( aBathymetries ); + aPanel->setPolylineNames( HYDROGUI_Tool::FindExistingObjectsNames( doc(), KIND_POLYLINEXY ) ); + aPanel->setBathymetryNames( HYDROGUI_Tool::FindExistingObjectsNames( doc(), KIND_BATHYMETRY ) ); aPanel->blockSignals( false ); @@ -165,7 +127,8 @@ HYDROGUI_InputPanel* HYDROGUI_ImmersibleZoneOp::createInputPanel() const } bool HYDROGUI_ImmersibleZoneOp::processApply( int& theUpdateFlags, - QString& theErrorMsg ) + QString& theErrorMsg, + QStringList& theBrowseObjectsEntries ) { HYDROGUI_ImmersibleZoneDlg* aPanel = ::qobject_cast( inputPanel() ); if ( !aPanel ) @@ -231,7 +194,11 @@ bool HYDROGUI_ImmersibleZoneOp::processApply( int& theUpdateFlags, closePreview(); if( !myIsEdit ) + { module()->setObjectVisible( HYDROGUI_Tool::GetActiveOCCViewId( module() ), aZoneObj, true ); + QString anEntry = HYDROGUI_DataObject::dataObjectEntry( aZoneObj ); + theBrowseObjectsEntries.append( anEntry ); + } module()->setIsToUpdate( aZoneObj ); @@ -287,7 +254,7 @@ void HYDROGUI_ImmersibleZoneOp::onCreatePreview( const QString& thePolylineName TopoDS_Face aFace; if( !aZoneShape.IsNull() ) aFace = TopoDS::Face( aZoneShape ); - myPreviewPrs->setFace( aFace ); + myPreviewPrs->setFace( aFace, true, true, "" ); } QApplication::restoreOverrideCursor();