[ooo-build-commit] .: vcl/inc vcl/source

Cédric Bosdonnat cbosdo at kemper.freedesktop.org
Tue Sep 14 06:38:56 PDT 2010


 vcl/inc/vcl/field.hxx        |    4 +++-
 vcl/source/control/field.cxx |   15 +++++++++++++++
 2 files changed, 18 insertions(+), 1 deletion(-)

New commits:
commit 202340c5a166188adf961168816966136d907b5a
Author: Cédric Bosdonnat <cedricbosdo at openoffice.org>
Date:   Tue Sep 14 15:33:59 2010 +0200

    metric-field-limits.diff: maximum values were wrong when changing unit

diff --git a/vcl/inc/vcl/field.hxx b/vcl/inc/vcl/field.hxx
index 0b2a49d..ceed224 100644
--- a/vcl/inc/vcl/field.hxx
+++ b/vcl/inc/vcl/field.hxx
@@ -255,7 +255,7 @@ public:
     virtual void            CustomConvert() = 0;
     virtual void            Reformat();
 
-    void                    SetUnit( FieldUnit meUnit );
+    virtual void            SetUnit( FieldUnit meUnit );
     FieldUnit               GetUnit() const { return meUnit; }
     void                    SetCustomUnitText( const XubString& rStr );
     const XubString&        GetCustomUnitText() const { return maCustomUnitText; }
@@ -569,6 +569,8 @@ public:
     virtual void            Last();
     virtual void            CustomConvert();
 
+    virtual void            SetUnit( FieldUnit meUnit );
+
     void                    SetFirst( sal_Int64 nNewFirst, FieldUnit eInUnit );
     inline void             SetFirst(sal_Int64 first) { SetFirst(first, FUNIT_NONE); }
     sal_Int64               GetFirst( FieldUnit eOutUnit ) const;
diff --git a/vcl/source/control/field.cxx b/vcl/source/control/field.cxx
index 88be56a..dff681f 100644
--- a/vcl/source/control/field.cxx
+++ b/vcl/source/control/field.cxx
@@ -1747,6 +1747,21 @@ MetricField::~MetricField()
 {
 }
 
+void MetricField::SetUnit( FieldUnit nNewUnit )
+{
+    sal_Int64 nMax = Denormalize( GetMax( nNewUnit ) );
+    sal_Int64 nMin = Denormalize( GetMin( nNewUnit ) );
+    sal_Int64 nFirst = Denormalize( GetFirst( nNewUnit ) );
+    sal_Int64 nLast = Denormalize( GetLast( nNewUnit ) );
+
+    MetricFormatter::SetUnit( nNewUnit );
+
+    SetMax( Normalize( nMax ), nNewUnit );
+    SetMin( Normalize( nMin ), nNewUnit );
+    SetFirst( Normalize( nFirst ), nNewUnit );
+    SetLast( Normalize( nLast ), nNewUnit );
+}
+
 // -----------------------------------------------------------------------
 
 void MetricField::SetFirst( sal_Int64 nNewFirst, FieldUnit eInUnit )


More information about the ooo-build-commit mailing list