SUIT_ViewModel* aViewModel = aViewManager->getViewModel();
SALOME_View* aView = dynamic_cast<SALOME_View*>(aViewModel);
if (aView)
- aView->Display( prs );
+ aView->Display( getDisplayer(), prs );
}
// Add prs to the preview list
// check view frame where the preview was displayed
bool vfOK = checkViewWindow() && myViewWindow;
// Iterate through presentations and delete them
- for ( PrsList::iterator anIter = myPreview.begin(); anIter != myPreview.end(); ++anIter ) {
+ for ( PrsList::iterator anIter = myPreview.begin(); anIter != myPreview.end(); ++anIter )
+ {
if ( vfOK )
+ {
+ SUIT_ViewManager* aViewManager = myViewWindow->getViewManager();
+ if ( aViewManager->getType() == OCCViewer_Viewer::Type() ||
+ aViewManager->getType() == SVTK_Viewer::Type() )
{
- SUIT_ViewManager* aViewManager = myViewWindow->getViewManager();
- if ( aViewManager->getType() == OCCViewer_Viewer::Type() ||
- aViewManager->getType() == SVTK_Viewer::Type() )
- {
- SUIT_ViewModel* aViewModel = aViewManager->getViewModel();
- SALOME_View* aView = dynamic_cast<SALOME_View*>(aViewModel);
- if (aView)
- aView->Erase( *anIter, true );
- }
+ SUIT_ViewModel* aViewModel = aViewManager->getViewModel();
+ SALOME_View* aView = dynamic_cast<SALOME_View*>(aViewModel);
+ if (aView)
+ aView->Erase( getDisplayer(), *anIter, true );
}
+ }
delete *anIter;
}
myPreview.clear();
if ( prs )
{
vf->BeforeDisplay( this, prs );
- vf->Display( prs );
+ vf->Display( this, prs );
vf->AfterDisplay( this, prs );
if ( updateViewer )
vf->Repaint();
- int aMgrId = getViewManagerId(vf);
- SalomeApp_Study* aStudy = getStudy();
- aStudy->setObjectProperty(aMgrId, theIO->getEntry(), GEOM::propertyName( GEOM::Visibility ), 1 );
-
- setVisibilityState(theIO->getEntry(), Qtx::ShownState);
-
delete prs; // delete presentation because displayer is its owner
}
}
SALOME_Prs* prs = vf->CreatePrs( theIO->getEntry() );
if ( prs ) {
vf->BeforeErase( this, prs );
- vf->Erase( prs, forced );
+ vf->Erase( this, prs, forced );
vf->AfterErase( this, prs );
if ( updateViewer )
vf->Repaint();
delete prs; // delete presentation because displayer is its owner
-
- int aMgrId = getViewManagerId(vf);
- SalomeApp_Study* aStudy = getStudy();
- aStudy->setObjectProperty(aMgrId, theIO->getEntry(), GEOM::propertyName( GEOM::Visibility ), 0 );
-
- setVisibilityState(theIO->getEntry(), Qtx::HiddenState);
}
}
}
UpdateViewer();
}
+void GEOM_Displayer::UpdateVisibility( SALOME_View* v, const SALOME_Prs* p, bool on )
+{
+ SalomeApp_Study* aStudy = getStudy();
+ int vId = -1;
+ if ( v ) vId = getViewManagerId( v );
+
+ if ( p ) {
+ QString entry = p->GetEntry();
+ if ( !entry.isEmpty() ) {
+ if ( vId != -1 )
+ aStudy->setObjectProperty( vId, entry, GEOM::propertyName( GEOM::Visibility ), on );
+ setVisibilityState( entry, on ? Qtx::ShownState : Qtx::HiddenState );
+ }
+ }
+ else {
+ if ( vId != -1 ) {
+ aStudy->setObjectProperty( vId, GEOM::propertyName( GEOM::Visibility ), on );
+ }
+ }
+}
+
Quantity_Color GEOM_Displayer::qColorFromResources( const QString& property, const QColor& defColor )
{
// VSR: this method can be improved in future:
if ( create && !isTemporary && aMgrId != -1 ) {
// set properties to the study
- study->setObjectPropMap( aMgrId, entry, propMap );
+ study->setObjectProperties( aMgrId, entry, propMap );
}
// AISShape->SetName(???); ??? necessary to set name ???
if ( create && !isTemporary && aMgrId != -1 ) {
// set properties to the study
- study->setObjectPropMap( aMgrId, entry, propMap );
+ study->setObjectProperties( aMgrId, entry, propMap );
}
}
if ( viewModel && viewId != -1 ) {
// get properties from the study
- PropMap storedMap = study->getObjectPropMap( viewId, entry );
+ PropMap storedMap = study->getObjectProperties( viewId, entry );
// overwrite default properties from stored ones (that are specified)
for ( int prop = GEOM::Visibility; prop <= GEOM::LastProperty; prop++ ) {
if ( storedMap.contains( GEOM::propertyName( (GEOM::Property)prop ) ) )
{
if( SUIT_ViewManager* aViewManager = *vmIt )
{
- const ObjMap anObjects = aStudy->getObjectMap( aViewManager->getGlobalId() );
+ const ObjMap& anObjects = aStudy->getObjectProperties( aViewManager->getGlobalId() );
for( ObjMap::ConstIterator objIt = anObjects.begin(); objIt != anObjects.end(); objIt++ )
{
_PTR(SObject) aSObj( aStudyDS->FindObjectID( objIt.key().toLatin1().constData() ) );
const bool theUpdateViewer,
SALOME_View* theViewFrame );
+ /* Update visibility state */
+ void UpdateVisibility( SALOME_View*, const SALOME_Prs*, bool );
+
/* build presentation accordint to the current viewer type*/
SALOME_Prs* BuildPrs ( GEOM::GEOM_Object_ptr );
SALOME_Prs* BuildPrs ( const TopoDS_Shape& );
// saving VTK actors properties
QVector<SUIT_ViewWindow*> views = vman->getViews();
for (int i = 0, iEnd = vman->getViewsCount(); i < iEnd; i++) {
- const ObjMap anObjects = appStudy->getObjectMap(aMgrId);
+ const ObjMap& anObjects = appStudy->getObjectProperties(aMgrId);
ObjMap::ConstIterator o_it = anObjects.begin();
for (; o_it != anObjects.end(); o_it++) {
- const PropMap aProps = o_it.value();
+ const PropMap& aProps = o_it.value();
//Check that object exists in the study
_PTR(SObject) obj( studyDS->FindObjectID( o_it.key().toLatin1().data() ) );
QList<SUIT_ViewManager*> lst = getApp()->viewManagers();
for (int index = 0; index < aListOfMap.count(); index++) {
-
- appStudy->setObjectPropMap(index, entry, aListOfMap[index]);
+ appStudy->setObjectProperties(index, entry, aListOfMap[index]);
//Get Visibility property of the current PropMap
if (aListOfMap[index].value(GEOM::propertyName( GEOM::Visibility )) == 1) {
if (!CORBA::is_nil(geomObj)) {
//Remove visual properties of the object
- appStudy->removeObjectFromAll(obj->GetID().c_str());
+ appStudy->removeObjectProperties(obj->GetID().c_str());
// Erase graphical object
QListIterator<SALOME_View*> it( views );
SUIT_ViewWindow* window = app->desktop()->activeWindow();
if ( window ) {
int mgrId = window->getViewManager()->getGlobalId();
- PropMap propMap = study->getObjectPropMap( mgrId, io->getEntry() );
+ PropMap propMap = study->getObjectProperties( mgrId, io->getEntry() );
QString matProp = propMap.value(GEOM::propertyName( GEOM::Material )).toString();
if ( !matProp.isEmpty() )
myCurrentModel.fromProperties( matProp );
_PTR(SObject) obj ( myStudy->FindObjectID( theStudyEntry.c_str() ) );
if ( obj ) {
// remove visual properties of the object
- appStudy->removeObjectFromAll(obj->GetID().c_str());
+ appStudy->removeObjectProperties(obj->GetID().c_str());
// remove references to this object
appStudy->deleteReferencesTo( obj );
// remove objects from study