]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
no message
authorstv <stv@opencascade.com>
Tue, 29 Nov 2005 10:11:34 +0000 (10:11 +0000)
committerstv <stv@opencascade.com>
Tue, 29 Nov 2005 10:11:34 +0000 (10:11 +0000)
src/Qtx/QtxDblSpinBox.cxx
src/Qtx/QtxDblSpinBox.h

index 971bef49f0f932dfee51bad50e7f818ff4735505..e00944da675f69148f34649aba0e513d8f64f60c 100755 (executable)
@@ -371,15 +371,15 @@ QString QtxDblSpinBox::currentValueText()
 QString QtxDblSpinBox::mapValueToText( double v )
 {
        QString s;
-  s.setNum( v, myPrecision < 0 ? 'f' : 'g', myPrecision == 0 ? 6 : QABS( myPrecision ) );
-  return s;
+  s.setNum( v, myPrecision >= 0 ? 'f' : 'g', myPrecision == 0 ? 6 : QABS( myPrecision ) );
+  return removeTrailingZeroes( s );
 }
 
 QString QtxDblSpinBox::mapValueToText( int )
 {
   QString s;
-  s.setNum( myValue, myPrecision < 0 ? 'f' : 'g', myPrecision == 0 ? 6 : QABS( myPrecision ) );
-  return s;
+  s.setNum( myValue, myPrecision >= 0 ? 'f' : 'g', myPrecision == 0 ? 6 : QABS( myPrecision ) );
+  return removeTrailingZeroes( s );
 }
 
 double QtxDblSpinBox::mapTextToDoubleValue( bool* ok )
@@ -424,3 +424,24 @@ void QtxDblSpinBox::onTextChanged( const QString& str )
   if ( !myBlocked )
     myCleared = false;
 }
+
+QString QtxDblSpinBox::removeTrailingZeroes( const QString& src ) const
+{
+  QString delim( "." );
+
+  int idx = src.findRev( delim );
+  if ( idx == -1 )
+    return src;
+
+  QString iPart = src.left( idx );
+  QString fPart = src.mid( idx + 1 );
+
+  while ( !fPart.isEmpty() && fPart.at( fPart.length() - 1 ) == '0' )
+    fPart.remove( fPart.length() - 1, 1 );
+
+  QString res = iPart;
+  if ( !fPart.isEmpty() )
+    res += delim + fPart;
+
+  return res;
+}
index eea959f7a140f0f69d961050cfb7c06d30cfcb24..9b7a0cf95823c8a3708f984a4a8263cf7b13148d 100755 (executable)
@@ -75,7 +75,9 @@ protected:
   virtual void       wheelEvent( QWheelEvent* );
   
   double             bound( double );
-  
+
+  QString            removeTrailingZeroes( const QString& ) const;
+
 private:
   double             myMin;
   double             myMax;