[Libreoffice-commits] core.git: Branch 'libreoffice-4-3' - sc/source

Kohei Yoshida kohei.yoshida at collabora.com
Mon Nov 3 04:25:24 PST 2014


 sc/source/core/data/table3.cxx |   15 +++++++++++++++
 1 file changed, 15 insertions(+)

New commits:
commit fa08c98c485e0de34082f3d66c5e1b6609268be1
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date:   Mon Oct 27 08:52:38 2014 -0700

    fdo#85215: Ensure that formula broadcasting works after sort.
    
    When the reference update on sort is turned off.
    
    Change-Id: I547dd1525a638dd447fe331e22583af4a7947308
    (cherry picked from commit 1eb82c78a223d9a0b2bb5c3f5c129c1ee8bdf303)
    Reviewed-on: https://gerrit.libreoffice.org/12113
    Reviewed-by: Michael Meeks <michael.meeks at collabora.com>
    Tested-by: Michael Meeks <michael.meeks at collabora.com>

diff --git a/sc/source/core/data/table3.cxx b/sc/source/core/data/table3.cxx
index 05285d8..f7589dd 100644
--- a/sc/source/core/data/table3.cxx
+++ b/sc/source/core/data/table3.cxx
@@ -803,6 +803,15 @@ void ScTable::SortReorderByRow(
     ScSortInfoArray::RowsType* pRows = pArray->GetDataRows();
     assert(pRows); // In sort-by-row mode we must have data rows already populated.
 
+    if (!pArray->IsUpdateRefs())
+    {
+        // When the update ref mode is disabled, we need to detach all formula
+        // cells in the sorted range before reordering, and re-start them
+        // afterward.
+        sc::EndListeningContext aCxt(*pDocument);
+        DetachFormulaCells(aCxt, nCol1, nRow1, nCol2, nRow2);
+    }
+
     // Split formula groups at the sort range boundaries (if applicable).
     std::vector<SCROW> aRowBounds;
     aRowBounds.reserve(2);
@@ -1081,6 +1090,12 @@ void ScTable::SortReorderByRow(
     // Re-group columns in the sorted range too.
     for (SCCOL i = nCol1; i <= nCol2; ++i)
         aCol[i].RegroupFormulaCells();
+
+    if (!pArray->IsUpdateRefs())
+    {
+        sc::StartListeningContext aCxt(*pDocument);
+        AttachFormulaCells(aCxt, nCol1, nRow1, nCol2, nRow2);
+    }
 }
 
 short ScTable::CompareCell(


More information about the Libreoffice-commits mailing list