]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
new methods calculate() - calculation of expressions using Notebook's parameters...
authorasl <asl@opencascade.com>
Tue, 24 Nov 2009 10:19:57 +0000 (10:19 +0000)
committerasl <asl@opencascade.com>
Tue, 24 Nov 2009 10:19:57 +0000 (10:19 +0000)
src/SalomeApp/SalomeApp_Notebook.cxx
src/SalomeApp/SalomeApp_Notebook.h

index f2681ea69194fe88ab4e317f11b842f1f88dbb50..bf53ab5af241adc241ce03a73aa61709e63ca5b4 100644 (file)
@@ -95,10 +95,31 @@ void SalomeApp_Notebook::set( const QString& theName, const QVariant& theValue )
 }
 
 QVariant SalomeApp_Notebook::get( const QString& theName ) const
+{
+  return convert( myNotebook->GetParameter( theName.toLatin1().constData() ) );
+}
+
+QVariant SalomeApp_Notebook::calculate( const QString& theExpr ) const
+{
+  if( CORBA::is_nil( myTmp ) )
+  {
+    static const char TMP_NAME[] = "__notebook__tmp__";
+    myTmp = myNotebook->GetParameter( TMP_NAME );
+    if( CORBA::is_nil( myTmp ) )
+    {
+      myNotebook->AddReal( TMP_NAME, 0 );
+      myTmp = myNotebook->GetParameter( TMP_NAME );
+    }
+  }
+  myTmp->SetExpression( theExpr );
+  myTmp->Update();
+  return convert( myTmp );
+}
+
+QVariant SalomeApp_Notebook::convert( SALOME::Parameter_ptr theParam ) const
 {
   QVariant aRes;
-  SALOME::Parameter_ptr aParam = myNotebook->GetParameter( theName.toLatin1().constData() );
-  if( !CORBA::is_nil( aParam ) )
+  if( !CORBA::is_nil( theParam ) )
     switch( aParam->GetType() )
     {
     case SALOME::TBoolean:
@@ -117,6 +138,10 @@ QVariant SalomeApp_Notebook::get( const QString& theName ) const
   return aRes;
 }
 
+QVariant SalomeApp_Notebook::calculate( const QString& theExpr ) const
+{
+}
+
 void SalomeApp_Notebook::update()
 {
   myNotebook->Update();
index 08a45ba18166381605338888feb14f13c6336f81..8ffc0f312d8eb7654067f83a936336319c446576 100644 (file)
@@ -49,6 +49,7 @@ public:
   bool isParameter( const QString& theName ) const;
   void set( const QString& theName, const QVariant& theValue );
   QVariant get( const QString& theName ) const;
+  QVariant calculate( const QString& theExpr ) const;
 
   void update();
 
@@ -59,9 +60,11 @@ public:
 
 protected:
   QStringList convert( SALOME::StringArray* theArray ) const;
+  QVariant convert( SALOME::Parameter_ptr theParam ) const;
 
 private:
   SALOME::Notebook_ptr myNotebook;
+  SALOME::Parameter_ptr myTmp;
 };
 
 #endif