summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKatarina Behrens <bubli@bubli.org>2014-07-17 22:35:46 +0200
committerCaolán McNamara <caolanm@redhat.com>2014-10-09 10:37:01 +0000
commit38f6065b0272ae4bc80f5f35866012b4ea0bc38b (patch)
treee49243e43e5f4747977082715a6f83c2aa7e0fec
parentc3f4ece4ca8fff2c67504e76bddf89252d75daee (diff)
fdo#77319: set spinbox value AFTER adjusting no. of decimal places
Doing it the other way round truncates the values Change-Id: Ieb14c9d1b9dde496eac24737aced7c8da8ce1346 Reviewed-on: https://gerrit.libreoffice.org/11865 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r--chart2/source/controller/dialogs/res_ErrorBar.cxx20
-rw-r--r--chart2/source/controller/inc/res_ErrorBar.hxx2
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 785141844705..95706bc77ead 100644
--- a/chart2/source/controller/inc/res_ErrorBar.hxx
+++ b/chart2/source/controller/inc/res_ErrorBar.hxx
@@ -114,6 +114,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;