From eeb6767aed6db48544d1307a49d3a2ade6198738 Mon Sep 17 00:00:00 2001 From: Eike Rathke Date: Fri, 11 Jul 2014 18:35:39 +0200 Subject: resolved fdo#79441 keep 3D references intact during sort Change-Id: I9e96d8e7cb99a3c280dd24495eefb9efd6d10888 (cherry picked from commit e463de2a56453a0d2cb0b5b58e96f7639f37cdd1) Reviewed-on: https://gerrit.libreoffice.org/10240 Reviewed-by: Kohei Yoshida Tested-by: Kohei Yoshida --- sc/inc/formulacell.hxx | 2 +- sc/source/core/data/formulacell.cxx | 4 ++-- sc/source/core/data/table3.cxx | 3 ++- 3 files changed, 5 insertions(+), 4 deletions(-) (limited to 'sc') diff --git a/sc/inc/formulacell.hxx b/sc/inc/formulacell.hxx index 326c4b8e9f11..2d25c9b576bb 100644 --- a/sc/inc/formulacell.hxx +++ b/sc/inc/formulacell.hxx @@ -160,7 +160,7 @@ public: ~ScFormulaCell(); ScFormulaCell* Clone() const; - ScFormulaCell* Clone( const ScAddress& rPos ) const; + ScFormulaCell* Clone( const ScAddress& rPos, int nCloneFlags ) const; ScFormulaCell( ScDocument* pDoc, const ScAddress& rPos ); diff --git a/sc/source/core/data/formulacell.cxx b/sc/source/core/data/formulacell.cxx index d4324a39f2c5..139737238784 100644 --- a/sc/source/core/data/formulacell.cxx +++ b/sc/source/core/data/formulacell.cxx @@ -837,9 +837,9 @@ ScFormulaCell* ScFormulaCell::Clone() const return new ScFormulaCell(*this, *pDocument, aPos); } -ScFormulaCell* ScFormulaCell::Clone( const ScAddress& rPos ) const +ScFormulaCell* ScFormulaCell::Clone( const ScAddress& rPos, int nCloneFlags ) const { - return new ScFormulaCell(*this, *pDocument, rPos); + return new ScFormulaCell(*this, *pDocument, rPos, nCloneFlags); } size_t ScFormulaCell::GetHash() const diff --git a/sc/source/core/data/table3.cxx b/sc/source/core/data/table3.cxx index 5fceab25c78c..6a169ef2e335 100644 --- a/sc/source/core/data/table3.cxx +++ b/sc/source/core/data/table3.cxx @@ -682,7 +682,8 @@ void ScTable::SortReorderByRow( ScSortInfoArray* pArray, ScProgress* pProgress ) { assert(rCell.mpAttr); size_t n = rCellStore.size(); - sc::CellStoreType::iterator itBlk = rCellStore.push_back(rCell.maCell.mpFormula->Clone(aCellPos)); + sc::CellStoreType::iterator itBlk = rCellStore.push_back( rCell.maCell.mpFormula->Clone( + aCellPos, SC_CLONECELL_DEFAULT | SC_CLONECELL_ADJUST3DREL)); // Join the formula cells as we fill the container. size_t nOffset = n - itBlk->position; -- cgit