sc/source/ui/StatisticsDialogs/AnalysisOfVarianceDialog.cxx | 2 sc/source/ui/StatisticsDialogs/DescriptiveStatisticsDialog.cxx | 7 ++- sc/source/ui/StatisticsDialogs/ExponentialSmoothingDialog.cxx | 2 sc/source/ui/StatisticsDialogs/MatrixComparisonGenerator.cxx | 2 sc/source/ui/StatisticsDialogs/MovingAverageDialog.cxx | 2 sc/source/ui/StatisticsDialogs/TableFillingAndNavigationTools.cxx | 22 +++++----- sc/source/ui/inc/TableFillingAndNavigationTools.hxx | 14 +++--- 7 files changed, 27 insertions(+), 24 deletions(-)
New commits: commit bdf33526442f4a601e6d2a80a4ec3c690b12c3fa Author: Kohei Yoshida <kohei.yosh...@collabora.com> Date: Fri May 30 14:47:49 2014 -0400 fdo#79174: Use 3D address when the input and output are on different sheets. Also some cleanup, mostly to avoid storing separate address convention object, which is not really necessary. (cherry picked from commit 0ab538885d818a7b3706df48a625e2523a8ebbdf) Conflicts: sc/source/ui/StatisticsDialogs/AnalysisOfVarianceDialog.cxx sc/source/ui/StatisticsDialogs/FTestDialog.cxx sc/source/ui/StatisticsDialogs/TTestDialog.cxx sc/source/ui/StatisticsDialogs/TableFillingAndNavigationTools.cxx sc/source/ui/inc/TableFillingAndNavigationTools.hxx Change-Id: Id3e104043f08b6786de2e91d69361557b83890f9 Reviewed-on: https://gerrit.libreoffice.org/9578 Tested-by: Markus Mohrhard <markus.mohrh...@googlemail.com> Reviewed-by: Markus Mohrhard <markus.mohrh...@googlemail.com> diff --git a/sc/source/ui/StatisticsDialogs/AnalysisOfVarianceDialog.cxx b/sc/source/ui/StatisticsDialogs/AnalysisOfVarianceDialog.cxx index 0dc9971..920ca3c 100644 --- a/sc/source/ui/StatisticsDialogs/AnalysisOfVarianceDialog.cxx +++ b/sc/source/ui/StatisticsDialogs/AnalysisOfVarianceDialog.cxx @@ -106,7 +106,7 @@ ScRange ScAnalysisOfVarianceDialog::ApplyOutput(ScDocShell* pDocShell) { AddressWalkerWriter output(mOutputAddress, pDocShell, mDocument, formula::FormulaGrammar::mergeToGrammar( formula::FormulaGrammar::GRAM_ENGLISH, mAddressDetails.eConv)); - FormulaTemplate aTemplate(mDocument, mAddressDetails); + FormulaTemplate aTemplate(mDocument); output.writeBoldString(SC_STRLOAD(RID_STATISTICS_DLGS, STR_ANOVA_SINGLE_FACTOR_LABEL)); output.nextRow(); diff --git a/sc/source/ui/StatisticsDialogs/DescriptiveStatisticsDialog.cxx b/sc/source/ui/StatisticsDialogs/DescriptiveStatisticsDialog.cxx index 1687773..e81d06b 100644 --- a/sc/source/ui/StatisticsDialogs/DescriptiveStatisticsDialog.cxx +++ b/sc/source/ui/StatisticsDialogs/DescriptiveStatisticsDialog.cxx @@ -85,7 +85,7 @@ ScRange ScDescriptiveStatisticsDialog::ApplyOutput(ScDocShell* pDocShell) { AddressWalkerWriter aOutput(mOutputAddress, pDocShell, mDocument, formula::FormulaGrammar::mergeToGrammar( formula::FormulaGrammar::GRAM_ENGLISH, mAddressDetails.eConv)); - FormulaTemplate aTemplate(mDocument, mAddressDetails); + FormulaTemplate aTemplate(mDocument); boost::scoped_ptr<DataRangeIterator> pIterator; if (mGroupedBy == BY_COLUMN) @@ -95,6 +95,9 @@ ScRange ScDescriptiveStatisticsDialog::ApplyOutput(ScDocShell* pDocShell) aOutput.nextColumn(); + // Use explicit sheet name in case the input and output are on different sheets. + bool b3DAddress = mInputRange.aStart.Tab() != mOutputAddress.Tab(); + // Write column/row labels for( ; pIterator->hasNext(); pIterator->next() ) { @@ -129,7 +132,7 @@ ScRange ScDescriptiveStatisticsDialog::ApplyOutput(ScDocShell* pDocShell) for(sal_Int32 i = 0; lclCalcDefinitions[i].aFormula != NULL; i++) { aTemplate.setTemplate(lclCalcDefinitions[i].aFormula); - aTemplate.applyRange(strWildcardRange, pIterator->get()); + aTemplate.applyRange(strWildcardRange, pIterator->get(), b3DAddress); aOutput.writeFormula(aTemplate.getTemplate()); aOutput.nextRow(); } diff --git a/sc/source/ui/StatisticsDialogs/ExponentialSmoothingDialog.cxx b/sc/source/ui/StatisticsDialogs/ExponentialSmoothingDialog.cxx index 6b20afd..37eadfb 100644 --- a/sc/source/ui/StatisticsDialogs/ExponentialSmoothingDialog.cxx +++ b/sc/source/ui/StatisticsDialogs/ExponentialSmoothingDialog.cxx @@ -54,7 +54,7 @@ ScRange ScExponentialSmoothingDialog::ApplyOutput(ScDocShell* pDocShell) { AddressWalkerWriter output(mOutputAddress, pDocShell, mDocument, formula::FormulaGrammar::mergeToGrammar( formula::FormulaGrammar::GRAM_ENGLISH, mAddressDetails.eConv)); - FormulaTemplate aTemplate(mDocument, mAddressDetails); + FormulaTemplate aTemplate(mDocument); // Smoothing factor double aSmoothingFactor = mpSmoothingFactor->GetValue() / 100.0; diff --git a/sc/source/ui/StatisticsDialogs/MatrixComparisonGenerator.cxx b/sc/source/ui/StatisticsDialogs/MatrixComparisonGenerator.cxx index a5e5001..b02856f 100644 --- a/sc/source/ui/StatisticsDialogs/MatrixComparisonGenerator.cxx +++ b/sc/source/ui/StatisticsDialogs/MatrixComparisonGenerator.cxx @@ -76,7 +76,7 @@ ScRange ScMatrixComparisonGenerator::ApplyOutput(ScDocShell* pDocShell) { AddressWalkerWriter output(mOutputAddress, pDocShell, mDocument, formula::FormulaGrammar::mergeToGrammar( formula::FormulaGrammar::GRAM_ENGLISH, mAddressDetails.eConv)); - FormulaTemplate aTemplate(mDocument, mAddressDetails); + FormulaTemplate aTemplate(mDocument); SCTAB inTab = mInputRange.aStart.Tab(); diff --git a/sc/source/ui/StatisticsDialogs/MovingAverageDialog.cxx b/sc/source/ui/StatisticsDialogs/MovingAverageDialog.cxx index 85466de..759e42e 100644 --- a/sc/source/ui/StatisticsDialogs/MovingAverageDialog.cxx +++ b/sc/source/ui/StatisticsDialogs/MovingAverageDialog.cxx @@ -54,7 +54,7 @@ ScRange ScMovingAverageDialog::ApplyOutput(ScDocShell* pDocShell) { AddressWalkerWriter output(mOutputAddress, pDocShell, mDocument, formula::FormulaGrammar::mergeToGrammar( formula::FormulaGrammar::GRAM_ENGLISH, mAddressDetails.eConv)); - FormulaTemplate aTemplate(mDocument, mAddressDetails); + FormulaTemplate aTemplate(mDocument); boost::scoped_ptr<DataRangeIterator> pIterator; if (mGroupedBy == BY_COLUMN) diff --git a/sc/source/ui/StatisticsDialogs/TableFillingAndNavigationTools.cxx b/sc/source/ui/StatisticsDialogs/TableFillingAndNavigationTools.cxx index c6935fe..31e7240 100644 --- a/sc/source/ui/StatisticsDialogs/TableFillingAndNavigationTools.cxx +++ b/sc/source/ui/StatisticsDialogs/TableFillingAndNavigationTools.cxx @@ -18,10 +18,7 @@ #include "TableFillingAndNavigationTools.hxx" -FormulaTemplate::FormulaTemplate(ScDocument* aDocument, ScAddress::Details aAddressDetails) : - mDocument(aDocument), - mAddressDetails(aAddressDetails) -{} +FormulaTemplate::FormulaTemplate(ScDocument* pDoc) : mpDoc(pDoc) {} void FormulaTemplate::setTemplate(OUString aTemplate) { @@ -33,27 +30,30 @@ void FormulaTemplate::setTemplate(const char* aTemplate) mTemplate = OUString::createFromAscii(aTemplate); } -OUString& FormulaTemplate::getTemplate() +const OUString& FormulaTemplate::getTemplate() { return mTemplate; } -void FormulaTemplate::applyRange(OUString aVariable, ScRange aRange) +void FormulaTemplate::applyRange(const OUString& aVariable, const ScRange& aRange, bool b3D) { - OUString aString = aRange.Format(SCR_ABS, mDocument, mAddressDetails); + sal_uInt16 nFlag = b3D ? SCR_ABS_3D : SCR_ABS; + OUString aString = aRange.Format(nFlag, mpDoc, mpDoc->GetAddressConvention()); mTemplate = mTemplate.replaceAll(aVariable, aString); } -void FormulaTemplate::applyRangeList(OUString aVariable, ScRangeList aRangeList) +void FormulaTemplate::applyRangeList(const OUString& aVariable, const ScRangeList& aRangeList, bool b3D) { + sal_uInt16 nFlag = b3D ? SCR_ABS_3D : SCR_ABS; OUString aString; - aRangeList.Format(aString, SCR_ABS, mDocument); + aRangeList.Format(aString, nFlag, mpDoc, mpDoc->GetAddressConvention()); mTemplate = mTemplate.replaceAll(aVariable, aString); } -void FormulaTemplate::applyAddress(OUString aVariable, ScAddress aAddress) +void FormulaTemplate::applyAddress(const OUString& aVariable, const ScAddress& aAddress, bool b3D) { - OUString aString = aAddress.Format(SCR_ABS, mDocument, mAddressDetails); + sal_uInt16 nFlag = b3D ? SCA_ABS_3D : SCA_ABS; + OUString aString = aAddress.Format(nFlag, mpDoc, mpDoc->GetAddressConvention()); mTemplate = mTemplate.replaceAll(aVariable, aString); } diff --git a/sc/source/ui/inc/TableFillingAndNavigationTools.hxx b/sc/source/ui/inc/TableFillingAndNavigationTools.hxx index ea9a309..d4bac06 100644 --- a/sc/source/ui/inc/TableFillingAndNavigationTools.hxx +++ b/sc/source/ui/inc/TableFillingAndNavigationTools.hxx @@ -25,17 +25,17 @@ class FormulaTemplate { private: OUString mTemplate; - ScDocument* mDocument; - ScAddress::Details mAddressDetails; + ScDocument* mpDoc; + public: - FormulaTemplate(ScDocument* aDocument, ScAddress::Details aAddressDetails); + FormulaTemplate(ScDocument* pDoc); void setTemplate(OUString aTemplate); void setTemplate(const char* aTemplate); - OUString& getTemplate(); - void applyRange(OUString aVariable, ScRange aRange); - void applyRangeList(OUString aVariable, ScRangeList aRangeList); - void applyAddress(OUString aVariable, ScAddress aAddress); + const OUString& getTemplate(); + void applyRange(const OUString& aVariable, const ScRange& aRange, bool b3D = true); + void applyRangeList(const OUString& aVariable, const ScRangeList& aRangeList, bool b3D = true); + void applyAddress(const OUString& aVariable, const ScAddress& aAddress, bool b3D = true); void applyString(OUString aVariable, OUString aValue); void applyNumber(OUString aVariable, sal_Int32 aValue); }; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits