diff options
author | Katarina Behrens <bubli@bubli.org> | 2014-07-17 22:35:46 +0200 |
---|---|---|
committer | Katarina Behrens <bubli@bubli.org> | 2014-07-17 22:54:16 +0200 |
commit | 1e2107e76b9dbd1213b811960c86f8eae57457e5 (patch) | |
tree | 8d38a3d20f4e678f6f2a2fabe13d3b9b31c9bec9 /chart2 | |
parent | 3bce16799c34d0b28704c43eae77501c0f6aec1e (diff) |
fdo#77319: set spinbox value AFTER adjusting no. of decimal places
Doing it the other way round truncates the values
Change-Id: Ieb14c9d1b9dde496eac24737aced7c8da8ce1346
Diffstat (limited to 'chart2')
-rw-r--r-- | chart2/source/controller/dialogs/res_ErrorBar.cxx | 20 | ||||
-rw-r--r-- | chart2/source/controller/inc/res_ErrorBar.hxx | 2 |
2 files changed, 14 insertions, 8 deletions
diff --git a/chart2/source/controller/dialogs/res_ErrorBar.cxx b/chart2/source/controller/dialogs/res_ErrorBar.cxx index 60b49879521e..81573013d266 100644 --- a/chart2/source/controller/dialogs/res_ErrorBar.cxx +++ b/chart2/source/controller/dialogs/res_ErrorBar.cxx @@ -93,6 +93,8 @@ ErrorBarResources::ErrorBarResources( VclBuilderContainer* pParent, Dialog * pPa m_eErrorBarType( eType ), m_nConstDecimalDigits( 1 ), m_nConstSpinSize( 1 ), + m_fPlusValue(0.0), + m_fMinusValue(0.0), m_pParentDialog( pParentDialog ), m_pCurrentRangeChoosingField( 0 ), m_bHasInternalDataProvider( true ), @@ -271,6 +273,13 @@ void ErrorBarResources::UpdateControlStates() m_pMfNegative->SetDecimalDigits( m_nConstDecimalDigits ); m_pMfNegative->SetSpinSize( m_nConstSpinSize ); } + + sal_Int32 nPlusValue = static_cast< sal_Int32 >( m_fPlusValue * pow(10.0,m_pMfPositive->GetDecimalDigits()) ); + sal_Int32 nMinusValue = static_cast< sal_Int32 >( m_fMinusValue * pow(10.0,m_pMfNegative->GetDecimalDigits()) ); + + m_pMfPositive->SetValue( nPlusValue ); + m_pMfNegative->SetValue( nMinusValue ); + m_pMfPositive->SetCustomUnitText( aCustomUnit ); m_pMfNegative->SetCustomUnitText( aCustomUnit ); @@ -530,24 +539,19 @@ void ErrorBarResources::Reset(const SfxItemSet& rInAttrs) // parameters aState = rInAttrs.GetItemState( SCHATTR_STAT_CONSTPLUS, true, &pPoolItem ); m_bPlusUnique = ( aState != SFX_ITEM_DONTCARE ); - double fPlusValue = 0.0; if( aState == SFX_ITEM_SET ) { - fPlusValue = ((const SvxDoubleItem*) pPoolItem)->GetValue(); - sal_Int32 nPlusValue = static_cast< sal_Int32 >( fPlusValue * pow(10.0,m_pMfPositive->GetDecimalDigits()) ); - m_pMfPositive->SetValue( nPlusValue ); + m_fPlusValue = ((const SvxDoubleItem*) pPoolItem)->GetValue(); } aState = rInAttrs.GetItemState( SCHATTR_STAT_CONSTMINUS, true, &pPoolItem ); m_bMinusUnique = ( aState != SFX_ITEM_DONTCARE ); if( aState == SFX_ITEM_SET ) { - double fMinusValue = ((const SvxDoubleItem*) pPoolItem)->GetValue(); - sal_Int32 nMinusValue = static_cast< sal_Int32 >( fMinusValue * pow(10.0,m_pMfNegative->GetDecimalDigits()) ); - m_pMfNegative->SetValue( nMinusValue ); + m_fMinusValue = ((const SvxDoubleItem*) pPoolItem)->GetValue(); if( m_eErrorKind != CHERROR_RANGE && - fPlusValue == fMinusValue ) + m_fPlusValue == m_fMinusValue ) m_pCbSyncPosNeg->Check(); } diff --git a/chart2/source/controller/inc/res_ErrorBar.hxx b/chart2/source/controller/inc/res_ErrorBar.hxx index b69f766f80dc..0ad485c39990 100644 --- a/chart2/source/controller/inc/res_ErrorBar.hxx +++ b/chart2/source/controller/inc/res_ErrorBar.hxx @@ -113,6 +113,8 @@ private: tErrorBarType m_eErrorBarType; sal_uInt16 m_nConstDecimalDigits; sal_Int64 m_nConstSpinSize; + double m_fPlusValue; + double m_fMinusValue; Dialog * m_pParentDialog; boost::scoped_ptr< RangeSelectionHelper > m_apRangeSelectionHelper; |