[Libreoffice-commits] .: sc/inc sc/source

Markus Mohrhard mmohrhard at kemper.freedesktop.org
Fri May 11 14:59:34 PDT 2012


 sc/inc/colorscale.hxx              |    2 ++
 sc/source/core/data/colorscale.cxx |   29 +++++++++++++++++++++++++++++
 sc/source/core/data/documen2.cxx   |    2 ++
 sc/source/core/data/documen3.cxx   |    3 +++
 sc/source/core/data/document.cxx   |    9 +++++++++
 5 files changed, 45 insertions(+)

New commits:
commit 03ca37a3034027e9ef4cf80814994007fd595a95
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Fri May 11 23:43:43 2012 +0200

    update references in color scales
    
    Change-Id: Ie86cbd173a21e79d802a03fd112ea01c0cf44116

diff --git a/sc/inc/colorscale.hxx b/sc/inc/colorscale.hxx
index 2d5839f..54f0c59 100644
--- a/sc/inc/colorscale.hxx
+++ b/sc/inc/colorscale.hxx
@@ -56,6 +56,8 @@ public:
     double GetValue() const;
     void SetFormula(const rtl::OUString& rFormula, ScDocument* pDoc, const ScAddress& rAddr, formula::FormulaGrammar::Grammar eGrammar = formula::FormulaGrammar::GRAM_DEFAULT);
     void UpdateMoveTab(SCTAB nOldTab, SCTAB nNewTab, SCTAB nTabNo);
+    void UpdateReference( UpdateRefMode eUpdateRefMode,
+            const ScRange& rRange, SCsCOL nDx, SCsROW nDy, SCsTAB nDz );
 
     bool GetMin() const;
     bool GetMax() const;
diff --git a/sc/source/core/data/colorscale.cxx b/sc/source/core/data/colorscale.cxx
index 728d23e..6a249ff 100644
--- a/sc/source/core/data/colorscale.cxx
+++ b/sc/source/core/data/colorscale.cxx
@@ -82,6 +82,15 @@ void ScColorScaleEntry::UpdateMoveTab( SCTAB nOldTab, SCTAB nNewTab, SCTAB nTabN
     }
 }
 
+void ScColorScaleEntry::UpdateReference( UpdateRefMode eUpdateRefMode,
+            const ScRange& rRange, SCsCOL nDx, SCsROW nDy, SCsTAB nDz )
+{
+    if(mpCell)
+    {
+        mpCell->UpdateReference( eUpdateRefMode, rRange, nDx, nDy, nDz );
+    }
+}
+
 const Color& ScColorScaleEntry::GetColor() const
 {
     return maColor;
@@ -390,6 +399,17 @@ void ScColorScaleFormat::UpdateMoveTab(SCTAB nOldTab, SCTAB nNewTab)
     }
 }
 
+void ScColorScaleFormat::UpdateReference( UpdateRefMode eUpdateRefMode,
+            const ScRange& rRange, SCsCOL nDx, SCsROW nDy, SCsTAB nDz )
+{
+    maRanges.UpdateReference( eUpdateRefMode, mpDoc, rRange, nDx, nDy, nDz );
+
+    for(iterator itr = begin(); itr != end(); ++itr)
+    {
+        itr->UpdateReference(eUpdateRefMode, rRange, nDx, nDy, nDz);
+    }
+}
+
 bool ScColorScaleFormat::CheckEntriesForRel(const ScRange& rRange) const
 {
     bool bNeedUpdate = false;
@@ -500,4 +520,13 @@ void ScColorScaleFormatList::UpdateMoveTab(SCTAB nOldTab, SCTAB nNewTab)
     }
 }
 
+void ScColorScaleFormatList::UpdateReference( UpdateRefMode eUpdateRefMode,
+            const ScRange& rRange, SCsCOL nDx, SCsROW nDy, SCsTAB nDz )
+{
+    for(iterator itr = begin(); itr != end(); ++itr)
+    {
+        itr->UpdateReference( eUpdateRefMode, rRange, nDx, nDy, nDz );
+    }
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/core/data/documen2.cxx b/sc/source/core/data/documen2.cxx
index 605f9cd..1120f05 100644
--- a/sc/source/core/data/documen2.cxx
+++ b/sc/source/core/data/documen2.cxx
@@ -866,6 +866,8 @@ bool ScDocument::CopyTab( SCTAB nOldPos, SCTAB nNewPos, const ScMarkData* pOnlyM
                 //  update conditional formats after table is inserted
                 if ( pCondFormList )
                     pCondFormList->UpdateReference( URM_INSDEL, aRange, 0,0,1 );
+                if ( mpColorScaleList )
+                    mpColorScaleList->UpdateReference( URM_INSDEL, aRange, 0,0,1 );
                 if ( pValidationList )
                     pValidationList->UpdateReference( URM_INSDEL, aRange, 0,0,1 );
                 // sheet names of references may not be valid until sheet is copied
diff --git a/sc/source/core/data/documen3.cxx b/sc/source/core/data/documen3.cxx
index f016df5..f1bce7b 100644
--- a/sc/source/core/data/documen3.cxx
+++ b/sc/source/core/data/documen3.cxx
@@ -79,6 +79,7 @@
 #include "formulaparserpool.hxx"
 #include "clipparam.hxx"
 #include "sheetevents.hxx"
+#include "colorscale.hxx"
 #include "queryentry.hxx"
 
 #include "globalnames.hxx"
@@ -1006,6 +1007,8 @@ void ScDocument::UpdateReference( UpdateRefMode eUpdateRefMode,
                 pDPCollection->UpdateReference( eUpdateRefMode, aRange, nDx, nDy, nDz );
             UpdateChartRef( eUpdateRefMode, nCol1, nRow1, nTab1, nCol2, nRow2, nTab2, nDx, nDy, nDz );
             UpdateRefAreaLinks( eUpdateRefMode, aRange, nDx, nDy, nDz );
+            if ( mpColorScaleList )
+                mpColorScaleList->UpdateReference( eUpdateRefMode, aRange, nDx, nDy, nDz );
             if ( pCondFormList )
                 pCondFormList->UpdateReference( eUpdateRefMode, aRange, nDx, nDy, nDz );
             if ( pValidationList )
diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx
index 52a8d7d..d24cb7f 100644
--- a/sc/source/core/data/document.cxx
+++ b/sc/source/core/data/document.cxx
@@ -75,6 +75,7 @@
 #include "markdata.hxx"
 #include "drwlayer.hxx"
 #include "conditio.hxx"
+#include "colorscale.hxx"
 #include "validat.hxx"
 #include "prnsave.hxx"
 #include "chgtrack.hxx"
@@ -477,6 +478,8 @@ bool ScDocument::InsertTab( SCTAB nPos, const rtl::OUString& rName,
                 //  update conditional formats after table is inserted
                 if ( pCondFormList )
                     pCondFormList->UpdateReference( URM_INSDEL, aRange, 0,0,1 );
+                if ( mpColorScaleList )
+                    mpColorScaleList->UpdateReference( URM_INSDEL, aRange, 0,0,1 );
                 if ( pValidationList )
                     pValidationList->UpdateReference( URM_INSDEL, aRange, 0,0,1 );
                 // sheet names of references are not valid until sheet is inserted
@@ -565,6 +568,8 @@ bool ScDocument::InsertTabs( SCTAB nPos, const std::vector<rtl::OUString>& rName
                 //    update conditional formats after table is inserted
                 if ( pCondFormList )
                     pCondFormList->UpdateReference( URM_INSDEL, aRange, 0,0,nNewSheets);
+                if ( mpColorScaleList )
+                    mpColorScaleList->UpdateReference( URM_INSDEL, aRange, 0,0,nNewSheets);
                 if ( pValidationList )
                     pValidationList->UpdateReference( URM_INSDEL, aRange, 0,0,nNewSheets );
                 // sheet names of references are not valid until sheet is inserted
@@ -629,6 +634,8 @@ bool ScDocument::DeleteTab( SCTAB nTab, ScDocument* pRefUndoDoc )
                 UpdateRefAreaLinks( URM_INSDEL, aRange, 0,0,-1 );
                 if ( pCondFormList )
                     pCondFormList->UpdateReference( URM_INSDEL, aRange, 0,0,-1 );
+                if ( mpColorScaleList )
+                    mpColorScaleList->UpdateReference( URM_INSDEL, aRange, 0,0,-1 );
                 if ( pValidationList )
                     pValidationList->UpdateReference( URM_INSDEL, aRange, 0,0,-1 );
                 if ( pUnoBroadcaster )
@@ -718,6 +725,8 @@ bool ScDocument::DeleteTabs( SCTAB nTab, SCTAB nSheets, ScDocument* pRefUndoDoc
                 UpdateRefAreaLinks( URM_INSDEL, aRange, 0,0,-1*nSheets );
                 if ( pCondFormList )
                     pCondFormList->UpdateReference( URM_INSDEL, aRange, 0,0,-1*nSheets );
+                if ( mpColorScaleList )
+                    mpColorScaleList->UpdateReference( URM_INSDEL, aRange, 0,0,-1*nSheets );
                 if ( pValidationList )
                     pValidationList->UpdateReference( URM_INSDEL, aRange, 0,0,-1*nSheets );
                 if ( pUnoBroadcaster )


More information about the Libreoffice-commits mailing list