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

Markus Mohrhard markus.mohrhard at googlemail.com
Mon Feb 25 23:23:21 PST 2013


 sc/inc/conditio.hxx              |    2 +-
 sc/source/core/data/conditio.cxx |   10 +++++-----
 sc/source/core/data/table2.cxx   |    2 +-
 3 files changed, 7 insertions(+), 7 deletions(-)

New commits:
commit a9ce4176d274587de755147cf52bbec91b53fa2b
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Sat Feb 23 00:22:27 2013 +0100

    use URM_COPY when copying cond formats, fdo#60306, fdo#60311
    
    Change-Id: I7a232c27dd0c1eee6f389d30f46658500aaded47
    Reviewed-on: https://gerrit.libreoffice.org/2414
    Reviewed-by: Fridrich Strba <fridrich at documentfoundation.org>
    Tested-by: Fridrich Strba <fridrich at documentfoundation.org>

diff --git a/sc/inc/conditio.hxx b/sc/inc/conditio.hxx
index 245fb66..810d3be 100644
--- a/sc/inc/conditio.hxx
+++ b/sc/inc/conditio.hxx
@@ -411,7 +411,7 @@ public:
     void            CompileAll();
     void            CompileXML();
     void            UpdateReference( UpdateRefMode eUpdateRefMode,
-                                const ScRange& rRange, SCsCOL nDx, SCsROW nDy, SCsTAB nDz );
+                                const ScRange& rRange, SCsCOL nDx, SCsROW nDy, SCsTAB nDz, bool bCopyAsMove = false );
     void            DeleteArea( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 );
     void            UpdateMoveTab( SCTAB nOldPos, SCTAB nNewPos );
     void            RenameCellStyle( const rtl::OUString& rOld, const rtl::OUString& rNew );
diff --git a/sc/source/core/data/conditio.cxx b/sc/source/core/data/conditio.cxx
index 843eda5..a6ba736 100644
--- a/sc/source/core/data/conditio.cxx
+++ b/sc/source/core/data/conditio.cxx
@@ -1999,15 +1999,15 @@ void ScConditionalFormat::CompileXML()
 }
 
 void ScConditionalFormat::UpdateReference( UpdateRefMode eUpdateRefMode,
-                                const ScRange& rRange, SCsCOL nDx, SCsROW nDy, SCsTAB nDz )
+                                const ScRange& rRange, SCsCOL nDx, SCsROW nDy, SCsTAB nDz, bool bCopyAsMove )
 {
-    if( eUpdateRefMode == URM_COPY && nDz != 0 )
+    for(CondFormatContainer::iterator itr = maEntries.begin(); itr != maEntries.end(); ++itr)
+        itr->UpdateReference(eUpdateRefMode, rRange, nDx, nDy, nDz);
+
+    if( eUpdateRefMode == URM_COPY && bCopyAsMove )
         maRanges.UpdateReference( URM_MOVE, pDoc, rRange, nDx, nDy, nDz );
     else
         maRanges.UpdateReference( eUpdateRefMode, pDoc, rRange, nDx, nDy, nDz );
-
-    for(CondFormatContainer::iterator itr = maEntries.begin(); itr != maEntries.end(); ++itr)
-        itr->UpdateReference(eUpdateRefMode, rRange, nDx, nDy, nDz);
 }
 
 void ScConditionalFormat::DeleteArea( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 )
diff --git a/sc/source/core/data/table2.cxx b/sc/source/core/data/table2.cxx
index 918a602..9631116 100644
--- a/sc/source/core/data/table2.cxx
+++ b/sc/source/core/data/table2.cxx
@@ -684,7 +684,7 @@ void ScTable::CopyConditionalFormat( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCRO
         ScConditionalFormat* pNewFormat = itr->Clone(pDocument);
 
         pNewFormat->AddRange(aIntersectedRange);
-        pNewFormat->UpdateReference(URM_MOVE, aNewRange, nDx, nDy, pTable->nTab - nTab);
+        pNewFormat->UpdateReference(URM_COPY, aNewRange, nDx, nDy, pTable->nTab - nTab, true);
 
         sal_uLong nMax = 0;
         for(ScConditionalFormatList::const_iterator itrCond = mpCondFormatList->begin();


More information about the Libreoffice-commits mailing list