sc/source/ui/condformat/colorformat.cxx | 21 +++++++---- sc/source/ui/condformat/condformatdlg.cxx | 53 ++++++++++++++++++++++++------ sc/source/ui/inc/colorformat.hxx | 2 + sc/source/ui/inc/condformatdlg.hxx | 4 ++ 4 files changed, 63 insertions(+), 17 deletions(-)
New commits: commit 31058ad8f22480730651e7379fb0d7b9654739a0 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Fri Jun 15 06:43:32 2012 +0200 disable two ui elements for 3.6 Change-Id: I55c8932fb5561704626f73e044091fe7b5240229 diff --git a/sc/source/ui/condformat/condformatdlg.cxx b/sc/source/ui/condformat/condformatdlg.cxx index d230692..25ff9a5 100644 --- a/sc/source/ui/condformat/condformatdlg.cxx +++ b/sc/source/ui/condformat/condformatdlg.cxx @@ -548,7 +548,8 @@ void ScCondFrmtEntry::SetColorScaleType() { maEdMiddle.Hide(); maLbEntryTypeMiddle.Hide(); - maLbColScale2.Show(); + // TODO: enale for 3.7 again with good presets + //maLbColScale2.Show(); maLbColScale3.Hide(); maLbColMiddle.Hide(); } @@ -557,7 +558,8 @@ void ScCondFrmtEntry::SetColorScaleType() maEdMiddle.Show(); maLbEntryTypeMiddle.Show(); maLbColScale2.Hide(); - maLbColScale3.Show(); + // TODO: enale for 3.7 again with good presets + // maLbColScale3.Show(); maLbColMiddle.Show(); } maLbEntryTypeMin.Show(); commit 146cc7a3ad8b07889dff64cf6d3db21e2d6d2147 Author: Markus Mohrhard <markus.mohrh...@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/source/ui/condformat/colorformat.cxx b/sc/source/ui/condformat/colorformat.cxx index 2483364..ba54db2 100644 --- a/sc/source/ui/condformat/colorformat.cxx +++ b/sc/source/ui/condformat/colorformat.cxx @@ -83,9 +83,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 +97,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; @@ -305,8 +306,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 +328,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 51e68c2..d230692 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> @@ -685,7 +683,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: @@ -1054,7 +1055,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..fffbb34 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*); diff --git a/sc/source/ui/inc/condformatdlg.hxx b/sc/source/ui/inc/condformatdlg.hxx index 2794cfd..8b03c29 100644 --- a/sc/source/ui/inc/condformatdlg.hxx +++ b/sc/source/ui/inc/condformatdlg.hxx @@ -123,6 +123,7 @@ private: ScDocument* mpDoc; ScAddress maPos; + SvNumberFormatter* mpNumberFormatter; DECL_LINK( TypeListHdl, void*); DECL_LINK( ColFormatTypeHdl, void*); commit fb4302d489d542ce9afd54a377b3399e1c4cad00 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Thu Jun 14 09:03:22 2012 +0200 handle formula is in new conditional format dlg Change-Id: Ia492b8fb9ad1406800ba855370daafb40f254093 diff --git a/sc/source/ui/condformat/condformatdlg.cxx b/sc/source/ui/condformat/condformatdlg.cxx index 8434d53..51e68c2 100644 --- a/sc/source/ui/condformat/condformatdlg.cxx +++ b/sc/source/ui/condformat/condformatdlg.cxx @@ -219,6 +219,7 @@ ScCondFrmtEntry::ScCondFrmtEntry(Window* pParent, ScDocument* pDoc, const ScForm ScConditionMode eMode = pEntry->GetOperation(); maLbType.SelectEntryPos(1); maEdVal1.SetText(pEntry->GetExpression(maPos, 0)); + SetCondType(); switch(eMode) { case SC_COND_EQUAL: @@ -255,12 +256,11 @@ ScCondFrmtEntry::ScCondFrmtEntry(Window* pParent, ScDocument* pDoc, const ScForm break; case SC_COND_DIRECT: maLbType.SelectEntryPos(2); + SwitchToType(FORMULA); break; case SC_COND_NONE: break; } - SwitchToType(CONDITION); - SetCondType(); } else if( pFormatEntry && pFormatEntry->GetType() == condformat::COLORSCALE ) { @@ -400,6 +400,8 @@ rtl::OUString getTextForType(ScCondFormatEntryType eType) return rtl::OUString("Color scale"); case DATABAR: return rtl::OUString("Data Bar"); + case FORMULA: + return rtl::OUString("Formula is"); default: break; } @@ -517,6 +519,7 @@ void ScCondFrmtEntry::SetHeight() switch (meType) { case CONDITION: + case FORMULA: aSize.Height() = 120; break; case COLORSCALE: @@ -591,6 +594,18 @@ void ScCondFrmtEntry::SetDataBarType() maBtOptions.Show(); } +void ScCondFrmtEntry::SetFormulaType() +{ + SwitchToType(FORMULA); + HideColorScaleElements(); + HideDataBarElements(); + maEdVal1.Show(); + maEdVal2.Hide(); + maLbCondType.Hide(); + maLbStyle.Show(); + maWdPreview.Show(); +} + void ScCondFrmtEntry::Select() { SetControlForeground(Color(COL_RED)); @@ -730,6 +745,18 @@ ScFormatEntry* ScCondFrmtEntry::createDatabarEntry() const return pDataBar; } +ScFormatEntry* ScCondFrmtEntry::createFormulaEntry() const +{ + ScConditionMode eMode = SC_COND_DIRECT; + rtl::OUString aFormula = maEdVal1.GetText(); + if(aFormula.isEmpty()) + return NULL; + + rtl::OUString aExpr2; + ScFormatEntry* pEntry = new ScCondFormatEntry(eMode, aFormula, aExpr2, mpDoc, maPos, maLbStyle.GetSelectEntry()); + return pEntry; +} + ScFormatEntry* ScCondFrmtEntry::GetEntry() const { switch(meType) @@ -743,6 +770,9 @@ ScFormatEntry* ScCondFrmtEntry::GetEntry() const case DATABAR: return createDatabarEntry(); break; + case FORMULA: + return createFormulaEntry(); + break; default: break; } @@ -764,7 +794,7 @@ IMPL_LINK_NOARG(ScCondFrmtEntry, TypeListHdl) SetDataBarType(); break; case 2: - SetCondType(); + SetFormulaType(); break; default: break; diff --git a/sc/source/ui/inc/condformatdlg.hxx b/sc/source/ui/inc/condformatdlg.hxx index e66c090..2794cfd 100644 --- a/sc/source/ui/inc/condformatdlg.hxx +++ b/sc/source/ui/inc/condformatdlg.hxx @@ -51,6 +51,7 @@ enum ScCondFormatEntryType CONDITION, COLORSCALE, DATABAR, + FORMULA, COLLAPSED }; @@ -107,6 +108,7 @@ private: void SetCondType(); void SetColorScaleType(); void SetDataBarType(); + void SetFormulaType(); void HideCondElements(); void HideColorScaleElements(); void HideDataBarElements(); @@ -117,6 +119,7 @@ private: ScFormatEntry* createConditionEntry() const; ScFormatEntry* createColorscaleEntry() const; ScFormatEntry* createDatabarEntry() const; + ScFormatEntry* createFormulaEntry() const; ScDocument* mpDoc; ScAddress maPos; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits