[Libreoffice-commits] .: Branch 'libreoffice-3-6' - sc/inc sc/source

Markus Mohrhard mmohrhard at kemper.freedesktop.org
Mon Jun 18 03:14:52 PDT 2012


 sc/inc/scabstdlg.hxx                      |    2 
 sc/source/ui/attrdlg/scdlgfact.cxx        |    4 -
 sc/source/ui/attrdlg/scdlgfact.hxx        |    2 
 sc/source/ui/condformat/colorformat.cxx   |   81 +++++++-----------------------
 sc/source/ui/condformat/condformatdlg.cxx |   13 ++--
 sc/source/ui/inc/colorformat.hxx          |    7 +-
 sc/source/ui/view/cellsh1.cxx             |    8 +-
 7 files changed, 41 insertions(+), 76 deletions(-)

New commits:
commit a756aff8c6f7964784d5c09e70f192013be7ca7b
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Fri Jun 15 06:32:33 2012 +0200

    use correct localization aware string to double
    
    Change-Id: Ied254ef0dc8f7dcf444738da193122a733089b5a

diff --git a/sc/inc/scabstdlg.hxx b/sc/inc/scabstdlg.hxx
index 496ab89..921773a 100644
--- a/sc/inc/scabstdlg.hxx
+++ b/sc/inc/scabstdlg.hxx
@@ -362,7 +362,7 @@ public:
     virtual AbstractScCondFormatDlg* CreateScCondFormatDlg (Window* pParent, ScDocument* pDoc, const ScConditionalFormat* pFormat,
                                                                 const ScRangeList& rList, const ScAddress& rPos, int nId ) = 0; //add for ScCondFormatDlg
 
-    virtual AbstractScDataBarSettingsDlg* CreateScDataBarSetttingsDlg (Window* pParent ,int nId ) = 0; //add for ScDataBarSettingsDlg
+    virtual AbstractScDataBarSettingsDlg* CreateScDataBarSetttingsDlg (Window* pParent, ScDocument* pDoc, int nId ) = 0; //add for ScDataBarSettingsDlg
 
     virtual AbstractScDataPilotDatabaseDlg * CreateScDataPilotDatabaseDlg (Window* pParent ,int nId ) = 0; //add for ScDataPilotDatabaseDlg
 
diff --git a/sc/source/ui/attrdlg/scdlgfact.cxx b/sc/source/ui/attrdlg/scdlgfact.cxx
index ee142d3..01c3b08 100644
--- a/sc/source/ui/attrdlg/scdlgfact.cxx
+++ b/sc/source/ui/attrdlg/scdlgfact.cxx
@@ -794,13 +794,13 @@ AbstractScCondFormatDlg* ScAbstractDialogFactory_Impl::CreateScCondFormatDlg(Win
     return NULL;
 }
 
-AbstractScDataBarSettingsDlg* ScAbstractDialogFactory_Impl::CreateScDataBarSetttingsDlg(Window* pParent, int nId)
+AbstractScDataBarSettingsDlg* ScAbstractDialogFactory_Impl::CreateScDataBarSetttingsDlg(Window* pParent, ScDocument* pDoc, int nId)
 {
     ScDataBarSettingsDlg* pDlg = NULL;
     switch( nId )
     {
         case RID_SCDLG_DATABAR:
-            pDlg = new ScDataBarSettingsDlg( pParent );
+            pDlg = new ScDataBarSettingsDlg( pParent, pDoc );
             break;
         default:
             break;
diff --git a/sc/source/ui/attrdlg/scdlgfact.hxx b/sc/source/ui/attrdlg/scdlgfact.hxx
index 8667db4..5fb36e1 100644
--- a/sc/source/ui/attrdlg/scdlgfact.hxx
+++ b/sc/source/ui/attrdlg/scdlgfact.hxx
@@ -432,7 +432,7 @@ public:
     virtual AbstractScCondFormatDlg* CreateScCondFormatDlg(Window* pParent, ScDocument* pDoc, const ScConditionalFormat* pFormat,
                                                                 const ScRangeList& rRange, const ScAddress& rPos, int nId ); //add for ScDataBarSettingsDlg
 
-    virtual AbstractScDataBarSettingsDlg* CreateScDataBarSetttingsDlg (Window* pParent ,int nId ); //add for ScDataBarSettingsDlg
+    virtual AbstractScDataBarSettingsDlg* CreateScDataBarSetttingsDlg (Window* pParent, ScDocument* pDoc, int nId ); //add for ScDataBarSettingsDlg
 
     virtual AbstractScDataPilotDatabaseDlg * CreateScDataPilotDatabaseDlg (Window* pParent ,int nId ); //add for ScDataPilotDatabaseDlg
 
diff --git a/sc/source/ui/condformat/colorformat.cxx b/sc/source/ui/condformat/colorformat.cxx
index 2483364..7093bb1 100644
--- a/sc/source/ui/condformat/colorformat.cxx
+++ b/sc/source/ui/condformat/colorformat.cxx
@@ -30,12 +30,13 @@
 #include "colorscale.hxx"
 
 #include "colorformat.hrc"
+#include "document.hxx"
 
 #include <svx/xtable.hxx>
 #include <svx/drawitem.hxx>
 #include <vcl/msgbox.hxx>
 
-ScDataBarSettingsDlg::ScDataBarSettingsDlg(Window* pWindow):
+ScDataBarSettingsDlg::ScDataBarSettingsDlg(Window* pWindow, ScDocument* pDoc):
     ModalDialog( pWindow, ScResId( RID_SCDLG_DATABAR ) ),
     maBtnOk( this, ScResId( BTN_OK ) ),
     maBtnCancel( this, ScResId( BTN_CANCEL ) ),
@@ -55,7 +56,8 @@ ScDataBarSettingsDlg::ScDataBarSettingsDlg(Window* pWindow):
     maLbTypeMax( this, ScResId( LB_TYPE ) ),
     maLbAxisPos( this, ScResId( LB_AXIS_POSITION ) ),
     maEdMin( this, ScResId( ED_MIN ) ),
-    maEdMax( this, ScResId( ED_MAX ) )
+    maEdMax( this, ScResId( ED_MAX ) ),
+    mpNumberFormatter( pDoc->GetFormatTable() )
 {
     Init();
     FreeResource();
@@ -83,9 +85,10 @@ void SetType(const ScColorScaleEntry* pEntry, ListBox& aLstBox)
         aLstBox.SelectEntryPos(4);
 }
 
-void GetType(const ListBox& rLstBox, const Edit& rEd, ScColorScaleEntry* pEntry )
+void GetType(const ListBox& rLstBox, const Edit& rEd, ScColorScaleEntry* pEntry, SvNumberFormatter* pNumberFormatter )
 {
     double nVal = 0;
+    sal_uInt32 nIndex = 0;
     switch(rLstBox.GetSelectEntryPos())
     {
         case 0:
@@ -96,16 +99,16 @@ void GetType(const ListBox& rLstBox, const Edit& rEd, ScColorScaleEntry* pEntry
             break;
         case 2:
             pEntry->SetPercentile(true);
-            nVal = rtl::math::stringToDouble(rEd.GetText(), '.', ',');
+            pNumberFormatter->IsNumberFormat( rEd.GetText(), nIndex, nVal );
             pEntry->SetValue(nVal);
             break;
         case 3:
-            nVal = rtl::math::stringToDouble(rEd.GetText(), '.', ',');
             pEntry->SetPercent(true);
+            pNumberFormatter->IsNumberFormat( rEd.GetText(), nIndex, nVal );
             pEntry->SetValue(nVal);
             break;
         case 4:
-            nVal = rtl::math::stringToDouble(rEd.GetText(), '.', ',');
+            pNumberFormatter->IsNumberFormat( rEd.GetText(), nIndex, nVal );
             pEntry->SetHasValue();
             pEntry->SetValue(nVal);
             break;
@@ -126,7 +129,7 @@ void SetValue( ScColorScaleEntry* pEntry, Edit& aEdit)
 
 }
 
-ScDataBarSettingsDlg::ScDataBarSettingsDlg(Window* pWindow, const ScDataBarFormatData& rData):
+ScDataBarSettingsDlg::ScDataBarSettingsDlg(Window* pWindow, const ScDataBarFormatData& rData, ScDocument* pDoc):
     ModalDialog( pWindow, ScResId( RID_SCDLG_DATABAR ) ),
     maBtnOk( this, ScResId( BTN_OK ) ),
     maBtnCancel( this, ScResId( BTN_CANCEL ) ),
@@ -147,7 +150,8 @@ ScDataBarSettingsDlg::ScDataBarSettingsDlg(Window* pWindow, const ScDataBarForma
     maLbAxisPos( this, ScResId( LB_AXIS_POSITION ) ),
     maEdMin( this, ScResId( ED_MIN ) ),
     maEdMax( this, ScResId( ED_MAX ) ),
-    maStrWarnSameValue( SC_RESSTR( STR_WARN_SAME_VALUE ) )
+    maStrWarnSameValue( SC_RESSTR( STR_WARN_SAME_VALUE ) ),
+    mpNumberFormatter( pDoc->GetFormatTable() )
 {
     Init();
     FreeResource();
@@ -176,55 +180,6 @@ ScDataBarSettingsDlg::ScDataBarSettingsDlg(Window* pWindow, const ScDataBarForma
     TypeSelectHdl(NULL);
 }
 
-ScDataBarSettingsDlg::ScDataBarSettingsDlg(Window* pWindow, ScDataBarFormat* pFormat):
-    ModalDialog( pWindow, ScResId( RID_SCDLG_DATABAR ) ),
-    maBtnOk( this, ScResId( BTN_OK ) ),
-    maBtnCancel( this, ScResId( BTN_CANCEL ) ),
-    maFlBarColors( this, ScResId( FL_BAR_COLORS ) ),
-    maFlAxes( this, ScResId( FL_AXIS ) ),
-    maFlValues( this, ScResId( FL_VALUES ) ),
-    maFtMin( this, ScResId( FT_MINIMUM ) ),
-    maFtMax( this, ScResId( FT_MAXIMUM ) ),
-    maFtPositive( this, ScResId( FT_POSITIVE ) ),
-    maFtNegative( this, ScResId( FT_NEGATIVE ) ),
-    maFtPosition( this, ScResId( FT_POSITION ) ),
-    maFtAxisColor( this, ScResId( FT_COLOR_AXIS ) ),
-    maLbPos( this, ScResId( LB_POS ) ),
-    maLbNeg( this, ScResId( LB_NEG ) ),
-    maLbAxisCol( this, ScResId( LB_COL_AXIS ) ),
-    maLbTypeMin( this, ScResId( LB_TYPE ) ),
-    maLbTypeMax( this, ScResId( LB_TYPE ) ),
-    maLbAxisPos( this, ScResId( LB_AXIS_POSITION ) ),
-    maEdMin( this, ScResId( ED_MIN ) ),
-    maEdMax( this, ScResId( ED_MAX ) ),
-    maStrWarnSameValue( SC_RESSTR( STR_WARN_SAME_VALUE ) )
-{
-    Init();
-    FreeResource();
-
-    const ScDataBarFormatData* pData = pFormat->GetDataBarData();
-    maLbPos.SelectEntry( pData->maPositiveColor );
-    if(pData->mpNegativeColor)
-        maLbNeg.SelectEntry( *pData->mpNegativeColor );
-
-    switch (pData->meAxisPosition)
-    {
-        case databar::NONE:
-            maLbAxisPos.SelectEntryPos(2);
-            break;
-        case databar::AUTOMATIC:
-            maLbAxisPos.SelectEntryPos(0);
-            break;
-        case databar::MIDDLE:
-            maLbAxisPos.SelectEntryPos(1);
-            break;
-    }
-    ::SetType(pData->mpLowerLimit.get(), maLbTypeMin);
-    ::SetType(pData->mpUpperLimit.get(), maLbTypeMax);
-    SetValue(pData->mpLowerLimit.get(), maEdMin);
-    SetValue(pData->mpUpperLimit.get(), maEdMax);
-}
-
 void ScDataBarSettingsDlg::Init()
 {
     SfxObjectShell*     pDocSh      = SfxObjectShell::Current();
@@ -305,8 +260,8 @@ ScDataBarFormatData* ScDataBarSettingsDlg::GetData()
     pData->mpUpperLimit.reset(new ScColorScaleEntry());
     pData->mpLowerLimit.reset(new ScColorScaleEntry());
 
-    ::GetType(maLbTypeMin, maEdMin, pData->mpLowerLimit.get());
-    ::GetType(maLbTypeMax, maEdMax, pData->mpUpperLimit.get());
+    ::GetType(maLbTypeMin, maEdMin, pData->mpLowerLimit.get(), mpNumberFormatter);
+    ::GetType(maLbTypeMax, maEdMax, pData->mpUpperLimit.get(), mpNumberFormatter);
     GetAxesPosition(pData, maLbAxisPos);
 
     return pData;
@@ -327,8 +282,12 @@ IMPL_LINK_NOARG( ScDataBarSettingsDlg, OkBtnHdl )
         {
             rtl::OUString aMinString = maEdMin.GetText();
             rtl::OUString aMaxString = maEdMax.GetText();
-            double nMinValue = rtl::math::stringToDouble(aMinString, '.', ',');
-            double nMaxValue = rtl::math::stringToDouble(aMaxString, '.', ',');
+            double nMinValue = 0;
+            sal_uInt32 nIndex = 0;
+            mpNumberFormatter->IsNumberFormat(aMinString, nIndex, nMinValue);
+            nIndex = 0;
+            double nMaxValue = 0;
+            mpNumberFormatter->IsNumberFormat(aMaxString, nIndex, nMinValue);
             if(rtl::math::approxEqual(nMinValue, nMaxValue) || nMinValue > nMaxValue)
                 bWarn = true;
         }
diff --git a/sc/source/ui/condformat/condformatdlg.cxx b/sc/source/ui/condformat/condformatdlg.cxx
index b0930bb..91966fe 100644
--- a/sc/source/ui/condformat/condformatdlg.cxx
+++ b/sc/source/ui/condformat/condformatdlg.cxx
@@ -47,8 +47,6 @@
 #include "colorscale.hxx"
 #include "colorformat.hxx"
 
-#include <rtl/math.hxx>
-
 #include "globstr.hrc"
 
 #include <cassert>
@@ -687,7 +685,10 @@ namespace {
 
 void SetColorScaleEntry( ScColorScaleEntry* pEntry, const ListBox& rType, const Edit& rValue, ScDocument* pDoc, const ScAddress& rPos )
 {
-    double nVal = rtl::math::stringToDouble(rValue.GetText(), '.', ',');
+    sal_uInt32 nIndex = 0;
+    double nVal = 0;
+    SvNumberFormatter* pNumberFormatter = pDoc->GetFormatTable();
+    pNumberFormatter->IsNumberFormat(rValue.GetText(), nIndex, nVal);
     switch(rType.GetSelectEntryPos())
     {
         case 0:
@@ -893,7 +894,7 @@ IMPL_LINK_NOARG( ScCondFrmtEntry, OptionBtnHdl )
 {
     SetColorScaleEntry(mpDataBarData->mpLowerLimit.get(), maLbDataBarMinType, maEdDataBarMin, mpDoc, maPos);
     SetColorScaleEntry(mpDataBarData->mpUpperLimit.get(), maLbDataBarMaxType, maEdDataBarMax, mpDoc, maPos);
-    ScDataBarSettingsDlg* pDlg = new ScDataBarSettingsDlg(this, *mpDataBarData);
+    ScDataBarSettingsDlg* pDlg = new ScDataBarSettingsDlg(this, *mpDataBarData, mpDoc);
     if( pDlg->Execute() == RET_OK)
     {
         mpDataBarData.reset(pDlg->GetData());
@@ -1056,7 +1057,9 @@ ScConditionalFormat* ScCondFormatDlg::GetConditionalFormat() const
 
 IMPL_LINK_NOARG( ScCondFormatList, AddBtnHdl )
 {
-    maEntries.push_back( new ScCondFrmtEntry(this, mpDoc) );
+    ScCondFrmtEntry* pNewEntry = new ScCondFrmtEntry(this, mpDoc);
+    maEntries.push_back( pNewEntry );
+    pNewEntry->Select();
     RecalcAll();
     return 0;
 }
diff --git a/sc/source/ui/inc/colorformat.hxx b/sc/source/ui/inc/colorformat.hxx
index c85eec5..0811c4c 100644
--- a/sc/source/ui/inc/colorformat.hxx
+++ b/sc/source/ui/inc/colorformat.hxx
@@ -30,6 +30,7 @@
 #include <vcl/dialog.hxx>
 #include <vcl/fixed.hxx>
 #include <svtools/ctrlbox.hxx>
+#include <svl/zforlist.hxx>
 #include "anyrefdg.hxx"
 
 class ScDataBarFormat;
@@ -63,6 +64,7 @@ private:
     Edit maEdMax;
 
     rtl::OUString maStrWarnSameValue;
+    SvNumberFormatter* mpNumberFormatter;
 
     DECL_LINK(OkBtnHdl, void*);
     DECL_LINK(TypeSelectHdl, void*);
@@ -70,9 +72,8 @@ private:
     void Init();
 
 public:
-    ScDataBarSettingsDlg(Window* pParent);
-    ScDataBarSettingsDlg(Window* pParent, const ScDataBarFormatData& rData);
-    ScDataBarSettingsDlg(Window* pParent, ScDataBarFormat* pFormat);
+    ScDataBarSettingsDlg(Window* pParent, ScDocument* pDoc);
+    ScDataBarSettingsDlg(Window* pParent, const ScDataBarFormatData& rData, ScDocument* pDoc);
 
     ScDataBarFormatData* GetData();
 };
diff --git a/sc/source/ui/view/cellsh1.cxx b/sc/source/ui/view/cellsh1.cxx
index c0a59a9..ca84b2b 100644
--- a/sc/source/ui/view/cellsh1.cxx
+++ b/sc/source/ui/view/cellsh1.cxx
@@ -2058,7 +2058,7 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
                 ScRangeList aRangeList;
                 ScViewData* pData = GetViewData();
                 pData->GetMarkData().FillRangeListWithMarks(&aRangeList, false);
-                ScDocument* pDoc = GetViewData()->GetDocument();
+                ScDocument* pDoc = pData->GetDocument();
 
                 ScAddress aPos(pData->GetCurX(), pData->GetCurY(), pData->GetTabNo());
                 AbstractScCondFormatDlg* pDlg = NULL;
@@ -2089,7 +2089,8 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
                 ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
                 OSL_ENSURE(pFact, "ScAbstractFactory create fail!");
 
-                AbstractScDataBarSettingsDlg* pDlg = pFact->CreateScDataBarSetttingsDlg( pTabViewShell->GetDialogParent(), RID_SCDLG_DATABAR );
+                ScDocument* pDoc = GetViewData()->GetDocument();
+                AbstractScDataBarSettingsDlg* pDlg = pFact->CreateScDataBarSetttingsDlg( pTabViewShell->GetDialogParent(), pDoc, RID_SCDLG_DATABAR );
                 OSL_ENSURE(pDlg, "Dialog create fail!");
                 pDlg->Execute();
                 delete pDlg;
@@ -2101,7 +2102,8 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
                 ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
                 OSL_ENSURE(pFact, "ScAbstractFactory create fail!");
 
-                AbstractScDataBarSettingsDlg* pDlg = pFact->CreateScDataBarSetttingsDlg( pTabViewShell->GetDialogParent(), RID_SCDLG_DATABAR );
+                ScDocument* pDoc = GetViewData()->GetDocument();
+                AbstractScDataBarSettingsDlg* pDlg = pFact->CreateScDataBarSetttingsDlg( pTabViewShell->GetDialogParent(), pDoc, RID_SCDLG_DATABAR );
                 OSL_ENSURE(pDlg, "Dialog create fail!");
                 if(pDlg->Execute() == RET_OK)
                 {


More information about the Libreoffice-commits mailing list