]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Now opertaion() method can create opertaion if it does not exist
authorsln <sln@opencascade.com>
Thu, 7 Jul 2011 09:52:04 +0000 (09:52 +0000)
committersln <sln@opencascade.com>
Thu, 7 Jul 2011 09:52:04 +0000 (09:52 +0000)
src/LightApp/LightApp_Module.cxx
src/LightApp/LightApp_Module.h

index 25d3796b2dadf7cac3bf9721886fa68f9308e4c2..332e4a70ace82ecee7d0d4b2e13484c962724d74 100644 (file)
@@ -628,11 +628,23 @@ void LightApp_Module::onViewManagerRemoved( SUIT_ViewManager* )
   \brief Returns instance of operation by its id; if there is no operation
   corresponding to this id, null pointer is returned
   \param id - operation id 
+  \param toCreate - specify whether operation has to be created if it dos not exist
   \return operation instance
 */
-LightApp_Operation* LightApp_Module::operation( const int id ) const
+LightApp_Operation* LightApp_Module::operation( const int id, const bool toCreate ) const
 {
-  return myOperations.contains( id ) ? myOperations[id] : 0;
+  LightApp_Operation* op = 0;
+  
+  if ( myOperations.contains( id ) )
+    op = myOperations[ id ];
+  else if ( toCreate )
+  {
+    op = createOperation( id );
+    if ( op )
+      ((LightApp_Module*)this)->myOperations.insert( id, op );
+  }
+  
+  return op;
 }
 
 /*!
index e7891b8d29f430441714a7c4a875c2964a79bbfc..95206ec468176a51f54e1176dfa13d8f00760974 100644 (file)
@@ -137,7 +137,7 @@ protected:
 
   virtual bool                        isSelectionCompatible();
 
-  LightApp_Operation*                 operation( const int ) const;
+  LightApp_Operation*                 operation( const int, const bool toCreate = false ) const;
 
 private:
   typedef QMap<int,LightApp_Operation*> MapOfOperation;