]> SALOME platform Git repositories - modules/geom.git/commitdiff
Salome HOME
Issue 21000: EDF 1534 GEOM: Save operation unavailable after color changed
authorvsr <vsr@opencascade.com>
Fri, 24 Sep 2010 08:46:39 +0000 (08:46 +0000)
committervsr <vsr@opencascade.com>
Fri, 24 Sep 2010 08:46:39 +0000 (08:46 +0000)
src/DisplayGUI/DisplayGUI.cxx
src/GEOMGUI/GeometryGUI.cxx
src/GEOMGUI/GeometryGUI.h
src/GEOMToolsGUI/GEOMToolsGUI_1.cxx
src/GEOMToolsGUI/GEOMToolsGUI_TransparencyDlg.cxx

index 7d131f0ebae76a33ae69766fdfff701644b70194..d77481e8f77e0f8bd50c095804cb84c361655bee 100644 (file)
@@ -342,6 +342,7 @@ void DisplayGUI::SetDisplayMode( const int mode, SUIT_ViewWindow* viewWindow )
   if ( viewWindow->getViewManager()->getType() == SVTK_Viewer::Type() ) {
     SVTK_View* aView = ((SVTK_ViewWindow*)viewWindow)->getView();
     aView->SetDisplayMode( mode );
+    GeometryGUI::Modified();
   } 
   else if ( viewWindow->getViewManager()->getType() == OCCViewer_Viewer::Type() ) {
     OCCViewer_Viewer* v3d = ((OCCViewer_ViewManager*)(viewWindow->getViewManager()))->getOCCViewer();
@@ -363,6 +364,7 @@ void DisplayGUI::SetDisplayMode( const int mode, SUIT_ViewWindow* viewWindow )
     }
 
     ic->SetDisplayMode( newmode, Standard_False );
+    GeometryGUI::Modified();
   }
 }
 
@@ -413,6 +415,7 @@ void DisplayGUI::SetVectorMode( const bool mode, SUIT_ViewWindow* viewWindow )
         }
       }
     }
+    GeometryGUI::Modified();
   }
   else if ( viewWindow->getViewManager()->getType() == OCCViewer_Viewer::Type() ) {
     viewWindow->setCustomData( "VectorsMode", QVariant( mode ) );
@@ -433,6 +436,7 @@ void DisplayGUI::SetVectorMode( const bool mode, SUIT_ViewWindow* viewWindow )
       }
       ite.Next();
     }
+    GeometryGUI::Modified();
   }
 }
 
@@ -504,6 +508,7 @@ void DisplayGUI::ChangeDisplayMode( const int mode, SUIT_ViewWindow* viewWindow
       }
     }
     aView->Repaint();
+    GeometryGUI::Modified();
   }
   else if ( viewWindow->getViewManager()->getType() == OCCViewer_Viewer::Type() ) {
     OCCViewer_Viewer* v3d = ((OCCViewer_ViewManager*)(viewWindow->getViewManager()))->getOCCViewer();
@@ -534,6 +539,7 @@ void DisplayGUI::ChangeDisplayMode( const int mode, SUIT_ViewWindow* viewWindow
       }
     }
     ic->UpdateCurrentViewer();
+    GeometryGUI::Modified();
   }
 }
 
index 4cde5395fe9f817a52e2f585b2e93f92e3824689..740792c7b4f6c7f8ed58de511c2ddee5919ef781 100644 (file)
@@ -151,6 +151,17 @@ SALOMEDS::Study_var GeometryGUI::ClientStudyToStudy (_PTR(Study) theStudy)
   return aDSStudy._retn();
 }
 
+void GeometryGUI::Modified( bool theIsUpdateActions )
+{
+  if( SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>( SUIT_Session::session()->activeApplication() ) ) {
+    if( SalomeApp_Study* appStudy = dynamic_cast<SalomeApp_Study*>( app->activeStudy() ) ) {
+      appStudy->Modified();
+      if( theIsUpdateActions )
+        app->updateActions();
+    }
+  }
+}
+
 //=======================================================================
 // function : GeometryGUI::GeometryGUI()
 // purpose  : Constructor
index 23aabc8c6eb840390f52afe1f220d7453ea4f287..4e4dd392155b0a3b366671f115c8b5c7abf717d6 100644 (file)
@@ -87,6 +87,8 @@ public:
   static CORBA::Object_var    ClientSObjectToObject (_PTR(SObject) theSObject);
   static SALOMEDS::Study_var  ClientStudyToStudy (_PTR(Study) theStudy);
 
+  static void                 Modified( bool = true );
+
   GEOM_Client&                GetShapeReader()    { return myShapeReader; }
 
   // Get active dialog box
index ae395b43a69b6a82f7d0a362cd53bc68393ca613..7706ab3c9f154bc479b04ee80d9bfe63014ca482 100644 (file)
@@ -325,6 +325,7 @@ void GEOMToolsGUI::OnColor()
             for ( SALOME_ListIteratorOfListIO It( selected ); It.More(); It.Next() ) {
               aView->SetColor( It.Value(), c );
             }
+           GeometryGUI::Modified();
           }
         } // if ( isVTK )
         else if ( isOCC ) {
@@ -382,6 +383,7 @@ void GEOMToolsGUI::OnColor()
                   anObject->SetColor( aSColor );
                   anObject->SetAutoColor( false );
                 }
+               GeometryGUI::Modified();
               }
             } // if c.isValid()
           } // first IO is not null
@@ -444,6 +446,7 @@ void GEOMToolsGUI::OnChangeTransparency( bool increase )
       aView->SetTransparency( It.Value(), transp );
     }
     aView->Repaint();
+    GeometryGUI::Modified();
   } // if ( isVTK )
         
   else if ( isOCC ) {
@@ -475,6 +478,7 @@ void GEOMToolsGUI::OnChangeTransparency( bool increase )
       }
     } // for...
     ic->UpdateCurrentViewer();
+    GeometryGUI::Modified();
   } // if ( isOCC )
 }
 
@@ -538,6 +542,7 @@ void GEOMToolsGUI::OnNbIsos( ActionType actionType )
        ic->Redisplay(CurObject);
       }
     }
+    GeometryGUI::Modified();
   }
   else if(isVTK){ // if is VTKViewer
     //
@@ -627,6 +632,7 @@ void GEOMToolsGUI::OnNbIsos( ActionType actionType )
       anAct = aCollection->GetNextActor();
     }
     view->Repaint();
+    GeometryGUI::Modified();
   } // end vtkviewer
 }
 
@@ -673,6 +679,7 @@ void GEOMToolsGUI::OnDeflection()
         }
       }
     }
+    GeometryGUI::Modified();
   }
   else if (isVTK) { // if is VTKViewer
     SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>
@@ -737,6 +744,7 @@ void GEOMToolsGUI::OnDeflection()
         anAct = aCollection->GetNextActor();
       }
     }
+    GeometryGUI::Modified();
   } // end vtkviewer
 }
 
index 5856aa4e6423e7d6ecdbfeb0745dbe87e77e147c..33940d0a04fcc3a51e63b7cd62f5e47b970f5093 100644 (file)
@@ -269,6 +269,7 @@ void GEOMToolsGUI_TransparencyDlg::SetTransparency()
     for ( SALOME_ListIteratorOfListIO It( selected ); It.More(); It.Next() ) {
       aView->SetTransparency( It.Value(), newValue );
     }
+    GeometryGUI::Modified();
     aView->Repaint();
   } // if ( isVTK )
         
@@ -300,6 +301,7 @@ void GEOMToolsGUI_TransparencyDlg::SetTransparency()
       }
     } // for...
     ic->UpdateCurrentViewer();
+    GeometryGUI::Modified();
   } // if ( isOCC )
 
   ValueHasChanged();