X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_StreamOp.cxx;h=ca1f6e5df7c3038e9fd1f2799732eaee717f08a1;hb=d5ba71b0ced3160edd96ba0e60a9b22edb7e9490;hp=ca39e32e83dffbae41c6a5a3f9286a7b8db9a7c7;hpb=e7225e329739e01faed6682de0bc83cf84c28de6;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_StreamOp.cxx b/src/HYDROGUI/HYDROGUI_StreamOp.cxx index ca39e32e..ca1f6e5d 100755 --- a/src/HYDROGUI/HYDROGUI_StreamOp.cxx +++ b/src/HYDROGUI/HYDROGUI_StreamOp.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 @@ -27,6 +23,7 @@ #include "HYDROGUI_Shape.h" #include "HYDROGUI_StreamDlg.h" #include "HYDROGUI_Tool.h" +#include "HYDROGUI_Tool2.h" #include "HYDROGUI_UpdateFlags.h" #include @@ -96,7 +93,8 @@ void HYDROGUI_StreamOp::startOperation() { HYDROGUI_Operation::startOperation(); - myEditedObject.Nullify(); + if ( !myIsEdit || isApplyAndClose() ) + myEditedObject.Nullify(); myHydAxis.clear(); myProfiles.clear(); myProfileParams.clear(); @@ -108,8 +106,9 @@ void HYDROGUI_StreamOp::startOperation() QString anObjectName = HYDROGUI_Tool::GenerateObjectName( module(), tr( "DEFAULT_STREAM_NAME" ) ); if ( myIsEdit ) { - myEditedObject = - Handle(HYDROData_Stream)::DownCast( HYDROGUI_Tool::GetSelectedObject( module() ) ); + if ( isApplyAndClose() ) + myEditedObject = + Handle(HYDROData_Stream)::DownCast( HYDROGUI_Tool::GetSelectedObject( module() ) ); if ( !myEditedObject.IsNull() ) { anObjectName = myEditedObject->GetName(); @@ -247,13 +246,13 @@ bool HYDROGUI_StreamOp::processApply( int& theUpdateFlags, myEditedObject->SetHydraulicAxis( aHydAxis ); myEditedObject->SetProfiles( aRefProfiles, false ); - if ( myEditedObject->IsMustBeUpdated() ) + if ( myEditedObject->IsMustBeUpdated( HYDROData_Entity::Geom_2d ) ) myEditedObject->Update(); if ( !myIsEdit ) { - myEditedObject->SetFillingColor( HYDROData_Stream::DefaultFillingColor() ); - myEditedObject->SetBorderColor( HYDROData_Stream::DefaultBorderColor() ); + myEditedObject->SetFillingColor( myEditedObject->DefaultFillingColor() ); + myEditedObject->SetBorderColor( myEditedObject->DefaultBorderColor() ); } // Erase preview @@ -293,8 +292,8 @@ void HYDROGUI_StreamOp::createPreview() { myPreviewPrs = new HYDROGUI_Shape( aCtx, NULL, getPreviewZLayer() ); - QColor aFillingColor = HYDROData_Stream::DefaultFillingColor(); - QColor aBorderColor = HYDROData_Stream::DefaultBorderColor(); + QColor aFillingColor = Qt::green; + QColor aBorderColor = Qt::transparent; if ( !myEditedObject.IsNull() ) { aFillingColor = myEditedObject->GetFillingColor(); @@ -437,20 +436,7 @@ void HYDROGUI_StreamOp::onAddProfiles() void HYDROGUI_StreamOp::onRemoveProfiles( const QStringList& theProfilesToRemove ) { QStringList aToRemove = theProfilesToRemove; - - // Take the Object Browser selection into account - HYDROData_SequenceOfObjects aSelectedObjects = HYDROGUI_Tool::GetSelectedObjects( module() ); - for( int i = 1, n = aSelectedObjects.Length(); i <= n; i++ ) - { - Handle(HYDROData_Profile) aProfile = - Handle(HYDROData_Profile)::DownCast( aSelectedObjects.Value( i ) ); - if ( aProfile.IsNull() ) - continue; - - QString aProfileName = aProfile->GetName(); - aToRemove.append( aProfileName ); - } - + aToRemove.removeDuplicates(); if ( aToRemove.isEmpty() ) return;