X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_VisualStateOp.cxx;h=0cb4447b63fa29a2659a6730fdc3ec4b7b23793f;hb=5cae7e874afd2fc1b6f61023e8ebd33a933db3c7;hp=326b5ab8fe7dfa64148906ebabec7f2cb432dc00;hpb=061386caa71490489a0475540932d9f2e48d77dc;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_VisualStateOp.cxx b/src/HYDROGUI/HYDROGUI_VisualStateOp.cxx index 326b5ab8..0cb4447b 100644 --- a/src/HYDROGUI/HYDROGUI_VisualStateOp.cxx +++ b/src/HYDROGUI/HYDROGUI_VisualStateOp.cxx @@ -41,7 +41,7 @@ #include #include -#include +#include HYDROGUI_VisualStateOp::HYDROGUI_VisualStateOp( HYDROGUI_Module* theModule, const bool theIsLoad ) @@ -59,6 +59,9 @@ void HYDROGUI_VisualStateOp::startOperation() { HYDROGUI_Operation::startOperation(); + if( !myIsLoad ) + startDocOperation(); + bool aResult = false; if( myIsLoad ) aResult = loadVisualState(); @@ -66,9 +69,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() @@ -109,7 +120,7 @@ bool HYDROGUI_VisualStateOp::saveVisualState() { if( SUIT_ViewManager* aViewManager = anIter.next() ) { - int aViewId = (int)aViewManager->getViewModel(); + size_t aViewId = (size_t)aViewManager->getViewModel(); if( SUIT_ViewWindow* aViewWindow = aViewManager->getActiveView() ) { QString aType = aViewManager->getType(); @@ -126,13 +137,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 ); @@ -198,7 +209,7 @@ bool HYDROGUI_VisualStateOp::loadVisualState() QString aViewerId = aViewerEntry.section( '_', -1 ); // unused if( SUIT_ViewManager* aViewManager = anApp->createViewManager( aType ) ) { - int aViewId = (int)aViewManager->getViewModel(); + size_t aViewId = (size_t)aViewManager->getViewModel(); if( SUIT_ViewWindow* aViewWindow = aViewManager->getActiveView() ) { // Wait until the window is really shown. This step fixes MANY bugs. @@ -232,7 +243,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 +258,7 @@ bool HYDROGUI_VisualStateOp::loadVisualState() { bool anIsVisible = aParameters[ aParamIndex ].toInt( &anIsOk[ ++aParamIndex ] ); if( anIsOk[ 0 ] ) - anObject->SetVisible( aViewId, anIsVisible ); + module()->setObjectVisible( aViewId, anObject, anIsVisible ); } } }