X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_ImmersibleZoneOp.cxx;h=678d8059680af73ba72bbc589df2d754c376232b;hb=d6e19029f8b41f295db878e9aecf451c2edda4af;hp=405f5f8948253fae783b0a6c4c4b01871f739292;hpb=a655703946a81c1d61809b0e84a0ec2a3a7fcbb3;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_ImmersibleZoneOp.cxx b/src/HYDROGUI/HYDROGUI_ImmersibleZoneOp.cxx index 405f5f89..678d8059 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(); @@ -97,12 +96,12 @@ void HYDROGUI_ImmersibleZoneOp::startOperation() aPanel->setObjectName( anObjectName ); aPanel->setPolylineNames( HYDROGUI_Tool::FindExistingObjectsNames( doc(), KIND_POLYLINEXY ) ); - aPanel->setBathymetryNames( HYDROGUI_Tool::FindExistingObjectsNames( doc(), KIND_BATHYMETRY ) ); + aPanel->setAdditionalParams( HYDROGUI_Tool::FindExistingObjectsNames( doc(), KIND_BATHYMETRY ) ); aPanel->blockSignals( false ); aPanel->setPolylineName( aSelectedPolyline ); - aPanel->setBathymetryName( aSelectedBathymetry ); + aPanel->setSelectedAdditionalParamName( aSelectedBathymetry ); } void HYDROGUI_ImmersibleZoneOp::abortOperation() @@ -128,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 ) @@ -162,7 +162,7 @@ bool HYDROGUI_ImmersibleZoneOp::processApply( int& theUpdateFlags, HYDROGUI_Tool::FindObjectByName( module(), aPolylineName, KIND_POLYLINEXY ) ); } - QString aBathymetryName = aPanel->getBathymetryName(); + QString aBathymetryName = aPanel->getSelectedAdditionalParamName(); if ( !aBathymetryName.isEmpty() ) { aZoneBathymetry = Handle(HYDROData_Bathymetry)::DownCast( @@ -194,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 ); @@ -250,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();