Salome HOME
projects
/
modules
/
hydro.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
refs #1340 part.2
[modules/hydro.git]
/
src
/
HYDROGUI
/
HYDROGUI_ChannelOp.cxx
diff --git
a/src/HYDROGUI/HYDROGUI_ChannelOp.cxx
b/src/HYDROGUI/HYDROGUI_ChannelOp.cxx
index 0a6227851bcce28a3f74afdb2faab14bc741189f..8c3e73e469f05fa438f03d039ef3e31990548a51 100644
(file)
--- a/
src/HYDROGUI/HYDROGUI_ChannelOp.cxx
+++ b/
src/HYDROGUI/HYDROGUI_ChannelOp.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
// 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
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
@@
-23,10
+19,12
@@
#include "HYDROGUI_ChannelOp.h"
#include "HYDROGUI_DataModel.h"
#include "HYDROGUI_ChannelOp.h"
#include "HYDROGUI_DataModel.h"
+#include <HYDROGUI_DataObject.h>
#include "HYDROGUI_ChannelDlg.h"
#include "HYDROGUI_Module.h"
#include "HYDROGUI_Shape.h"
#include "HYDROGUI_Tool.h"
#include "HYDROGUI_ChannelDlg.h"
#include "HYDROGUI_Module.h"
#include "HYDROGUI_Shape.h"
#include "HYDROGUI_Tool.h"
+#include "HYDROGUI_Tool2.h"
#include "HYDROGUI_UpdateFlags.h"
#include <HYDROData_Iterator.h>
#include "HYDROGUI_UpdateFlags.h"
#include <HYDROData_Iterator.h>
@@
-65,15
+63,17
@@
void HYDROGUI_ChannelOp::startOperation()
aPanel->reset();
aPanel->reset();
- myEditedObject.Nullify();
+ if ( isApplyAndClose() )
+ myEditedObject.Nullify();
QString aSelectedGuideLine, aSelectedProfile;
QString anObjectName = HYDROGUI_Tool::GenerateObjectName( module(), tr( "DEFAULT_CHANNEL_NAME" ) );
if ( myIsEdit )
{
QString aSelectedGuideLine, aSelectedProfile;
QString anObjectName = HYDROGUI_Tool::GenerateObjectName( module(), tr( "DEFAULT_CHANNEL_NAME" ) );
if ( myIsEdit )
{
- myEditedObject =
- Handle(HYDROData_Channel)::DownCast( HYDROGUI_Tool::GetSelectedObject( module() ) );
+ if ( isApplyAndClose() )
+ myEditedObject =
+ Handle(HYDROData_Channel)::DownCast( HYDROGUI_Tool::GetSelectedObject( module() ) );
if ( !myEditedObject.IsNull() )
{
anObjectName = myEditedObject->GetName();
if ( !myEditedObject.IsNull() )
{
anObjectName = myEditedObject->GetName();
@@
-108,7
+108,7
@@
void HYDROGUI_ChannelOp::startOperation()
}
// collect information about existing profiles
}
// collect information about existing profiles
- QStringList aProfiles = HYDROGUI_Tool::FindExistingObjectsNames( doc(), KIND_PROFILE );
+ QStringList aProfiles = HYDROGUI_Tool::FindExistingObjectsNames( doc(), KIND_PROFILE
, false
);
aPanel->setObjectName( anObjectName );
aPanel->setObjectName( anObjectName );
@@
-118,6
+118,11
@@
void HYDROGUI_ChannelOp::startOperation()
aPanel->setGuideLineName( aSelectedGuideLine );
aPanel->setProfileName( aSelectedProfile );
aPanel->setGuideLineName( aSelectedGuideLine );
aPanel->setProfileName( aSelectedProfile );
+ if( !myEditedObject.IsNull() )
+ aPanel->setEquiDistance( myEditedObject->GetEquiDistance() );
+ else
+ aPanel->setEquiDistance( 1.0 );
+
aPanel->blockSignals( false );
onCreatePreview();
aPanel->blockSignals( false );
onCreatePreview();
@@
-143,7
+148,8
@@
HYDROGUI_InputPanel* HYDROGUI_ChannelOp::createInputPanel() const
}
bool HYDROGUI_ChannelOp::processApply( int& theUpdateFlags,
}
bool HYDROGUI_ChannelOp::processApply( int& theUpdateFlags,
- QString& theErrorMsg )
+ QString& theErrorMsg,
+ QStringList& theBrowseObjectsEntries )
{
HYDROGUI_ChannelDlg* aPanel = ::qobject_cast<HYDROGUI_ChannelDlg*>( inputPanel() );
if ( !aPanel )
{
HYDROGUI_ChannelDlg* aPanel = ::qobject_cast<HYDROGUI_ChannelDlg*>( inputPanel() );
if ( !aPanel )
@@
-175,35
+181,54
@@
bool HYDROGUI_ChannelOp::processApply( int& theUpdateFlags,
if ( !myIsEdit )
{
if ( !myIsEdit )
{
- myEditedObject->SetFillingColor(
get
DefaultFillingColor() );
- myEditedObject->SetBorderColor(
get
DefaultBorderColor() );
+ myEditedObject->SetFillingColor(
myEditedObject->
DefaultFillingColor() );
+ myEditedObject->SetBorderColor(
myEditedObject->
DefaultBorderColor() );
}
QString aGuideLineName = aPanel->getGuideLineName();
QString aProfileName = aPanel->getProfileName();
}
QString aGuideLineName = aPanel->getGuideLineName();
QString aProfileName = aPanel->getProfileName();
- if ( aGuideLineName.isEmpty() || aProfileName.isEmpty() )
+
/*
if ( aGuideLineName.isEmpty() || aProfileName.isEmpty() )
{
myEditedObject->RemoveGuideLine();
myEditedObject->RemoveProfile();
}
{
myEditedObject->RemoveGuideLine();
myEditedObject->RemoveProfile();
}
- else
+ else
*/
{
Handle(HYDROData_Polyline3D) aGuideLine = Handle(HYDROData_Polyline3D)::DownCast(
HYDROGUI_Tool::FindObjectByName( module(), aGuideLineName, KIND_POLYLINE ) );
{
Handle(HYDROData_Polyline3D) aGuideLine = Handle(HYDROData_Polyline3D)::DownCast(
HYDROGUI_Tool::FindObjectByName( module(), aGuideLineName, KIND_POLYLINE ) );
+ if ( aGuideLine.IsNull() )
+ {
+ theErrorMsg = tr( "GUIDE_LINE_IS_NOT_SELECTED" );
+ return false;
+ }
+
+ myEditedObject->RemoveGuideLine();
myEditedObject->SetGuideLine( aGuideLine );
Handle(HYDROData_Profile) aProfile = Handle(HYDROData_Profile)::DownCast(
HYDROGUI_Tool::FindObjectByName( module(), aProfileName, KIND_PROFILE ) );
myEditedObject->SetGuideLine( aGuideLine );
Handle(HYDROData_Profile) aProfile = Handle(HYDROData_Profile)::DownCast(
HYDROGUI_Tool::FindObjectByName( module(), aProfileName, KIND_PROFILE ) );
+ if ( aProfile.IsNull() )
+ {
+ theErrorMsg = tr( "PROFILE_IS_NOT_SELECTED" );
+ return false;
+ }
+
+ myEditedObject->RemoveProfile();
myEditedObject->SetProfile( aProfile );
myEditedObject->SetProfile( aProfile );
+ myEditedObject->SetEquiDistance( aPanel->getEquiDistance() );
}
}
- if ( myEditedObject->IsMustBeUpdated() )
+ if ( myEditedObject->IsMustBeUpdated(
HYDROData_Entity::Geom_2d
) )
myEditedObject->Update();
erasePreview();
if( !myIsEdit )
myEditedObject->Update();
erasePreview();
if( !myIsEdit )
+ {
module()->setObjectVisible( HYDROGUI_Tool::GetActiveOCCViewId( module() ), myEditedObject, true );
module()->setObjectVisible( HYDROGUI_Tool::GetActiveOCCViewId( module() ), myEditedObject, true );
+ QString anEntry = HYDROGUI_DataObject::dataObjectEntry( myEditedObject );
+ theBrowseObjectsEntries.append( anEntry );
+ }
module()->setIsToUpdate( myEditedObject );
module()->setIsToUpdate( myEditedObject );
@@
-217,16
+242,6
@@
Handle(HYDROData_Channel) HYDROGUI_ChannelOp::createNewObject() const
return Handle(HYDROData_Channel)::DownCast( doc()->CreateObject( KIND_CHANNEL ) );
}
return Handle(HYDROData_Channel)::DownCast( doc()->CreateObject( KIND_CHANNEL ) );
}
-QColor HYDROGUI_ChannelOp::getDefaultFillingColor() const
-{
- return HYDROData_Channel::DefaultFillingColor();
-}
-
-QColor HYDROGUI_ChannelOp::getDefaultBorderColor() const
-{
- return HYDROData_Channel::DefaultBorderColor();
-}
-
void HYDROGUI_ChannelOp::onCreatePreview()
{
HYDROGUI_ChannelDlg* aPanel = ::qobject_cast<HYDROGUI_ChannelDlg*>( inputPanel() );
void HYDROGUI_ChannelOp::onCreatePreview()
{
HYDROGUI_ChannelDlg* aPanel = ::qobject_cast<HYDROGUI_ChannelDlg*>( inputPanel() );
@@
-259,8
+274,8
@@
void HYDROGUI_ChannelOp::onCreatePreview()
{
myPreviewPrs = new HYDROGUI_Shape( aCtx, NULL, getPreviewZLayer() );
{
myPreviewPrs = new HYDROGUI_Shape( aCtx, NULL, getPreviewZLayer() );
- QColor aFillingColor =
getDefaultFillingColor()
;
- QColor aBorderColor =
getDefaultBorderColor()
;
+ QColor aFillingColor =
Qt::blue
;
+ QColor aBorderColor =
Qt::transparent
;
if ( !myEditedObject.IsNull() )
{
aFillingColor = myEditedObject->GetFillingColor();
if ( !myEditedObject.IsNull() )
{
aFillingColor = myEditedObject->GetFillingColor();
@@
-283,7
+298,7
@@
void HYDROGUI_ChannelOp::onCreatePreview()
HYDROGUI_Tool::FindObjectByName( module(), aProfileName, KIND_PROFILE ) );
HYDROData_Channel::PrsDefinition aPrsDef;
HYDROGUI_Tool::FindObjectByName( module(), aProfileName, KIND_PROFILE ) );
HYDROData_Channel::PrsDefinition aPrsDef;
- if ( !HYDROData_Channel::CreatePresentations( aGuideLine, aProfile, aPrsDef ) )
+ if ( !HYDROData_Channel::CreatePresentations( aGuideLine, aProfile, aPrsDef
, aPanel->getEquiDistance()
) )
{
erasePreview();
return;
{
erasePreview();
return;