]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
*** empty log message ***
authorvsr <vsr@opencascade.com>
Wed, 8 Aug 2007 11:37:23 +0000 (11:37 +0000)
committervsr <vsr@opencascade.com>
Wed, 8 Aug 2007 11:37:23 +0000 (11:37 +0000)
src/Qtx/QtxEvalExpr.cxx
src/Qtx/QtxEvalExpr.h

index 0864177d1536115248e1ca1102f71f0dcdc5902f..8cab55543134cdf04d5cf0dac60be43d60332588 100644 (file)
@@ -72,8 +72,8 @@ void QtxEvalExpr::intialize( const bool stdSets, const QString& expr )
   if ( stdSets )
   {
     myParser->setAutoDeleteOperationSets( true );
-    myParser->insertOperationSet( new QtxEvalSetArithmetic() );
     myParser->insertOperationSet( new QtxEvalSetLogic() );
+    myParser->insertOperationSet( new QtxEvalSetArithmetic() );
     myParser->insertOperationSet( new QtxEvalSetString() );
     myParser->insertOperationSet( new QtxEvalSetMath() );
     myParser->insertOperationSet( new QtxEvalSetSets() );
@@ -1181,7 +1181,7 @@ int QtxEvalParser::priority( const QString& op, bool isBin ) const
   for ( SetList::const_iterator it = mySets.begin(); it != mySets.end() && priority <= 0; ++it, i++ )
     priority = (*it)->priority( op, isBin );
 
-  return priority > 0 ? priority + i * 10 : 0;
+  return priority > 0 ? priority + i * 50 : 0;
 }
 
 /*!
@@ -1761,8 +1761,8 @@ int QtxEvalSetLogic::priority( const QString& op, bool isBin ) const
 QtxEvalExpr::Error QtxEvalSetLogic::calculate( const QString& op, QVariant& v1, QVariant& v2 ) const
 {
   QtxEvalExpr::Error err = QtxEvalExpr::OK;
-  bool val1 = booleanValue( v1 );
-  bool val2 = booleanValue( v2 );
+  int val1 = intValue( v1 );
+  int val2 = intValue( v2 );
   if ( v1.isValid() && v2.isValid() )
   {
     if ( op == "and" || op == "&&" )
@@ -1783,26 +1783,27 @@ QtxEvalExpr::Error QtxEvalSetLogic::calculate( const QString& op, QVariant& v1,
 }
 
 /*!
-  \brief Convert value to the boolean.
+  \brief Convert value to the integer.
+
+  Note: the value is converted to the integer (not boolean) in order
+  to compare integer numbers correctly.
+
   \param v value being converted
   \return converted value
 */
-bool QtxEvalSetLogic::booleanValue( const QVariant& v ) const
+int QtxEvalSetLogic::intValue( const QVariant& v ) const
 {
-  bool res = false;
+  int res = 0;
   switch ( v.type() )
   {
   case QVariant::Bool:
-    res = v.toBool();
+    res = v.toBool() ? 1 : 0;
     break;
   case QVariant::Int:
-    res = v.toInt() != 0;
-    break;
   case QVariant::UInt:
-    res = v.toUInt() != 0;
+    res = v.toInt();
     break;
   default:
-    res = false;
     break;
   }
   return res;
index 34acd474789d0f8615d236bbe8865406a82e372a..6679d7e8659380949e617a6e6bef90ab166c4979 100644 (file)
@@ -247,7 +247,7 @@ public:
   virtual QString            name() const;
 
 private:
-  bool                       booleanValue( const QVariant& v ) const;
+  int                        intValue( const QVariant& v ) const;
 };
 
 class QTX_EXPORT QtxEvalSetMath : public QtxEvalSetBase