]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Not defined min / max limits if it not specified in XML file.
authorstv <stv@opencascade.com>
Tue, 17 Jan 2006 11:20:09 +0000 (11:20 +0000)
committerstv <stv@opencascade.com>
Tue, 17 Jan 2006 11:20:09 +0000 (11:20 +0000)
src/DDS/DDS_DicItem.cxx
src/DDS/DDS_DicItem.h
src/QDS/QDS_Datum.cxx
src/QDS/QDS_SpinBoxDbl.cxx

index fd59f3cd683a039dbc8493f9bff9508d5a2d0b3b..bbf38881407a4f4f06fdeb86f5e93a09fdf895d1 100644 (file)
@@ -305,6 +305,14 @@ Standard_Real DDS_DicItem::FromSI( const Standard_Real theVal, const UnitSystem&
   return aRes;
 }
 
+/*!
+  Returns 'true' if specified data exist.
+*/
+Standard_Boolean DDS_DicItem::HasData( const Standard_Integer flag ) const
+{
+  return ( myData & flag ) == flag;
+}
+
 /*!
   Parse record in XML file and retrieve information relevant for this data dic item
 */
@@ -436,15 +444,22 @@ void DDS_DicItem::FillDataMap( TCollection_AsciiString theID, const LDOM_Element
       else if ( aType.IsEqual( "Integer" ) )
         aEnumType = Integer;
 
+      if ( !aValueDescr.getAttributeNode( DDS_Dictionary::KeyWord( "VD_MAXV" ) ).isNull() )
+        myData |= MinValue;
       aMinV = aValueDescr.getAttribute( DDS_Dictionary::KeyWord( "VD_MINV" ) );
       aMinV.RemoveAll( ' ' );
       if ( aMinV.IsRealValue() )
         aRealMinV = aMinV.RealValue();
+      if ( !aValueDescr.getAttributeNode( DDS_Dictionary::KeyWord( "VD_MAXV" ) ).isNull() )
+        myData |= MaxValue;
       aMaxV = aValueDescr.getAttribute( DDS_Dictionary::KeyWord( "VD_MAXV" ) );
       aMaxV.RemoveAll( ' ' );
       if ( aMaxV.IsRealValue() )
         aRealMaxV = aMaxV.RealValue();
       aDefV = aValueDescr.getAttribute( DDS_Dictionary::KeyWord( "VD_DEFV" ) );
+      if ( !aValueDescr.getAttributeNode( DDS_Dictionary::KeyWord( "VD_DEFV" ) ).isNull() )
+        myData |= DefaultValue;
+
       aDefV.RemoveAll( ' ' );
       if ( aDefV.IsRealValue() )
         aRealDefV = aDefV.RealValue();
index 871149407e34cb3a8b1f8a8b4b32c1cab43704bf..dbbedc0a7c126e6386bb7694b1e8ed43be4f041a 100644 (file)
@@ -30,6 +30,7 @@ class DDS_DicItem : public MMgt_TShared
 {
 public:
   enum Type { String, Float, Integer, List, Unknown };
+  enum Data { MinValue = 0x01, MaxValue = 0x02, DefaultValue = 0x04 };
 
   // This struct is intended for map of Format, Units, Precision and Scale
   struct UnitData
@@ -134,6 +135,8 @@ public:
   Standard_EXPORT Standard_Real FromSI( const Standard_Real, const UnitSystem& ) const;
   // convert value to and from default SI units according to current units
 
+  Standard_EXPORT Standard_Boolean           HasData( const Standard_Integer ) const;
+
 private:
   DDS_DicItem( const DDS_DicItem& );
   // Copy constructor
@@ -200,6 +203,8 @@ private:
   Standard_Real                              myDefValue;
   TCollection_ExtendedString                 myDefString;
 
+  Standard_Integer                           myData;
+
   // valueList
   TCollection_ExtendedString                 myListName;
 
index b2458195578dfe9882f94340e268fa8987981e27..3b6eb58e41af1c860876b72bcb81ee0553270845 100644 (file)
@@ -248,8 +248,8 @@ QString QDS_Datum::minimumValue() const
   initDatum();
 
   QString min;
-  if ( !myDicItem.IsNull() )
-    min = format( format(), type(), myDicItem->GetMinValue() );
+  if ( !myDicItem.IsNull() && myDicItem->HasData( DDS_DicItem::MinValue ) )
+      min = format( format(), type(), myDicItem->GetMinValue() );
   return min;
 }
 
@@ -258,7 +258,7 @@ QString QDS_Datum::maximumValue() const
   initDatum();
 
   QString max;
-  if ( !myDicItem.IsNull() )
+  if ( !myDicItem.IsNull() && myDicItem->HasData( DDS_DicItem::MaxValue ) )
     max = format( format(), type(), myDicItem->GetMaxValue() );
   return max;
 }
index 92ffe65c8a606bc696c067a73d8804a3c066b8ee..8a4160e70108a7fd0192315498af426f2556fd8f 100644 (file)
@@ -134,6 +134,6 @@ void QDS_SpinBoxDbl::unitSystemChanged( const QString& system )
   sb->setPrecision( aPreci );
 
   sb->setLineStep( .1 );
-  sb->setMinValue( minValue().toDouble() );
-  sb->setMaxValue( maxValue().toDouble() );
+  sb->setMinValue( minValue().isEmpty() ? -DBL_MAX : minValue().toDouble() );
+  sb->setMaxValue( maxValue().isEmpty() ? DBL_MAX : maxValue().toDouble() );
 }