X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_VisualStateOp.cxx;h=9c866b85cb0a16d9d9f8765223cbd9e18458b5b5;hb=9d44116e703eee10527cef6c81ab5f6805515111;hp=dd0523aaaee3baed98c9a5aaf64b85901aa02f36;hpb=94ce56d6f7ffc055c2409af2c48d1278fe42d90e;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_VisualStateOp.cxx b/src/HYDROGUI/HYDROGUI_VisualStateOp.cxx index dd0523aa..9c866b85 100644 --- a/src/HYDROGUI/HYDROGUI_VisualStateOp.cxx +++ b/src/HYDROGUI/HYDROGUI_VisualStateOp.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 @@ -23,7 +19,7 @@ #include "HYDROGUI_VisualStateOp.h" #include "HYDROGUI_Module.h" -#include "HYDROGUI_Tool.h" +#include "HYDROGUI_Tool2.h" #include "HYDROGUI_UpdateFlags.h" #include @@ -59,6 +55,9 @@ void HYDROGUI_VisualStateOp::startOperation() { HYDROGUI_Operation::startOperation(); + if( !myIsLoad ) + startDocOperation(); + bool aResult = false; if( myIsLoad ) aResult = loadVisualState(); @@ -66,9 +65,17 @@ void HYDROGUI_VisualStateOp::startOperation() aResult = saveVisualState(); if( aResult ) + { + if( !myIsLoad ) + commitDocOperation(); commit(); + } else - abort(); // do not commit the document command + { + if( !myIsLoad ) + abortDocOperation(); + abort(); + } } bool HYDROGUI_VisualStateOp::saveVisualState() @@ -84,7 +91,7 @@ bool HYDROGUI_VisualStateOp::saveVisualState() if( aVisualState.IsNull() ) return false; - QString aName = HYDROGUI_Tool::GenerateObjectName( module(), "VisualState" ); + QString aName = HYDROGUI_Tool::GenerateObjectName( module(), tr( "DEFAULT_VISUAL_STATE_NAME" ) ); aVisualState->SetName( aName ); } @@ -126,13 +133,13 @@ bool HYDROGUI_VisualStateOp::saveVisualState() for( int anObjIndex = 1, aLength = aSeq.Length(); anObjIndex <= aLength; anObjIndex++ ) { - Handle(HYDROData_Object) anObject = aSeq.Value( anObjIndex ); + Handle(HYDROData_Entity) anObject = aSeq.Value( anObjIndex ); if( !anObject.IsNull() ) { // Format: "Name|Visibility[|CoordX|CoordY]" QString aParameters = anObject->GetName(); - int aVisibility = (int)anObject->IsVisible( aViewId ); + int aVisibility = (int)( module()->isObjectVisible( aViewId, anObject ) ); aParameters.append( QString( "|%1" ).arg( aVisibility ) ); setVisualProperty( aPropertyMap, aViewerEntry, aParameters, true ); @@ -158,7 +165,7 @@ bool HYDROGUI_VisualStateOp::saveVisualState() //printf( "--- SetState -----------\n" ); //printf( "%s\n", qPrintable( aState ) ); //printf( "------------------------\n" ); - aVisualState->SetState( aState ); + aVisualState->SetState( aState.toStdString() ); module()->update( UF_Model ); @@ -174,7 +181,7 @@ bool HYDROGUI_VisualStateOp::loadVisualState() if( aVisualState.IsNull() ) return false; - QString aState = aVisualState->GetState(); + QString aState = QString::fromStdString( aVisualState->GetState() ); //printf( "--- GetState -----------\n" ); //printf( "%s\n", qPrintable( aState ) ); //printf( "------------------------\n" ); @@ -232,7 +239,7 @@ bool HYDROGUI_VisualStateOp::loadVisualState() for( int anObjIndex = 1, aLength = aSeq.Length(); anObjIndex <= aLength; anObjIndex++ ) { - Handle(HYDROData_Object) anObject = aSeq.Value( anObjIndex ); + Handle(HYDROData_Entity) anObject = aSeq.Value( anObjIndex ); if( !anObject.IsNull() ) { QString aName = anObject->GetName(); @@ -247,7 +254,7 @@ bool HYDROGUI_VisualStateOp::loadVisualState() { bool anIsVisible = aParameters[ aParamIndex ].toInt( &anIsOk[ ++aParamIndex ] ); if( anIsOk[ 0 ] ) - anObject->SetVisible( aViewId, anIsVisible ); + module()->setObjectVisible( aViewId, anObject, anIsVisible ); } } }