[Libreoffice-commits] core.git: sc/source

Noel Grandin noel.grandin at collabora.co.uk
Wed May 10 12:55:35 UTC 2017


 sc/source/ui/docshell/dbdocfun.cxx |    2 +-
 sc/source/ui/docshell/docsh5.cxx   |   11 ++++++-----
 sc/source/ui/inc/docsh.hxx         |    2 +-
 sc/source/ui/undo/undobase.cxx     |    4 ++--
 4 files changed, 10 insertions(+), 9 deletions(-)

New commits:
commit 015578db97bec8926441a9440de6067937f63143
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date:   Wed May 10 14:54:27 2017 +0200

    partial revert of "loplugin:checkunusedparams in sc(part4)"
    
    <erAck> noelgrandin: actually that "also fix bug in
    ScDocShell::DBAreaDeleted" with 4d047221945b34a9023d852bbd19a2a24a7f54c3
    wasn't a bug because the aDocument.RemoveFlagsTab() call with ScMF::Auto
    removes the AutoFilter which is in the first row of the DB-Area
    <erAck> noelgrandin: now it unnecessarily processes the entire range
    <noelgrandin> erAck, does that also apply to the PostPaint call?
    <erAck> noelgrandin: should so, as only the row with the AF-buttons
    needs to be repainted
    <noelgrandin> erAck, will revert that part
    
    Change-Id: I29b9ee4e1b6517a01bf67f8efc09217d9df453a5

diff --git a/sc/source/ui/docshell/dbdocfun.cxx b/sc/source/ui/docshell/dbdocfun.cxx
index 54de8108b568..cce0b5f4e6ad 100644
--- a/sc/source/ui/docshell/dbdocfun.cxx
+++ b/sc/source/ui/docshell/dbdocfun.cxx
@@ -256,7 +256,7 @@ void ScDBDocFunc::ModifyAllDBData( const ScDBCollection& rNewColl, const std::ve
         const ScAddress& rStart = iter->aStart;
         const ScAddress& rEnd   = iter->aEnd;
         rDocShell.DBAreaDeleted(
-            rStart.Tab(), rStart.Col(), rStart.Row(), rEnd.Col(), rEnd.Row());
+            rStart.Tab(), rStart.Col(), rStart.Row(), rEnd.Col());
     }
 
     if (bRecord)
diff --git a/sc/source/ui/docshell/docsh5.cxx b/sc/source/ui/docshell/docsh5.cxx
index f69cbeb66f5c..d247d39ab25d 100644
--- a/sc/source/ui/docshell/docsh5.cxx
+++ b/sc/source/ui/docshell/docsh5.cxx
@@ -96,11 +96,12 @@ bool ScDocShell::IsEditable() const
     return !IsReadOnly() || aDocument.IsImportingXML() || aDocument.IsChangeReadOnlyEnabled();
 }
 
-void ScDocShell::DBAreaDeleted( SCTAB nTab, SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2 )
+void ScDocShell::DBAreaDeleted( SCTAB nTab, SCCOL nX1, SCROW nY1, SCCOL nX2 )
 {
     ScDocShellModificator aModificator( *this );
-    aDocument.RemoveFlagsTab( nX1, nY1, nX2, nY2, nTab, ScMF::Auto );
-    PostPaint( nX1, nY1, nTab, nX2, nY2, nTab, PaintPartFlags::Grid );
+    // the auto-filter is in the first row of the area
+    aDocument.RemoveFlagsTab( nX1, nY1, nX2, nY1, nTab, ScMF::Auto );
+    PostPaint( nX1, nY1, nTab, nX2, nY1, nTab, PaintPartFlags::Grid );
     // No SetDocumentModified, as the unnamed database range might have to be restored later.
     // The UNO hint is broadcast directly instead, to keep UNO objects in valid state.
     aDocument.BroadcastUno( SfxHint( SfxHintId::DataChanged ) );
@@ -254,7 +255,7 @@ ScDBData* ScDocShell::GetDBData( const ScRange& rMarked, ScGetDBMode eMode, ScGe
                     nStartCol <= nOldY2 && nOldY1 <= nEndCol)
                 bHasHeader = true;
 
-            DBAreaDeleted( nOldTab, nOldX1, nOldY1, nOldX2, nOldY2 );
+            DBAreaDeleted( nOldTab, nOldX1, nOldY1, nOldX2 );
 
             pNoNameData->SetSortParam( ScSortParam() );             // reset parameter
             pNoNameData->SetQueryParam( ScQueryParam() );
@@ -365,7 +366,7 @@ void ScDocShell::CancelAutoDBRange()
             SCROW nRangeY2;
             SCTAB nRangeTab;
             pDBData->GetArea( nRangeTab, nRangeX1, nRangeY1, nRangeX2, nRangeY2 );
-            DBAreaDeleted( nRangeTab, nRangeX1, nRangeY1, nRangeX2, nRangeY2 );
+            DBAreaDeleted( nRangeTab, nRangeX1, nRangeY1, nRangeX2 );
 
             *pDBData = *pOldAutoDBRange;    // restore old settings
 
diff --git a/sc/source/ui/inc/docsh.hxx b/sc/source/ui/inc/docsh.hxx
index ca86aa8b2ac1..43204614e26d 100644
--- a/sc/source/ui/inc/docsh.hxx
+++ b/sc/source/ui/inc/docsh.hxx
@@ -282,7 +282,7 @@ public:
     void            UpdateOle( const ScViewData* pViewData, bool bSnapSize = false);
     bool            IsOle();
 
-    void            DBAreaDeleted( SCTAB nTab, SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2 );
+    void            DBAreaDeleted( SCTAB nTab, SCCOL nX1, SCROW nY1, SCCOL nX2 );
     ScDBData*       GetDBData( const ScRange& rMarked, ScGetDBMode eMode, ScGetDBSelection eSel );
     ScDBData*       GetAnonymousDBData(const ScRange& rRange);
     ScDBData*       GetOldAutoDBRange();    // has to be deleted by caller!
diff --git a/sc/source/ui/undo/undobase.cxx b/sc/source/ui/undo/undobase.cxx
index af9849a509a6..71b8751f396d 100644
--- a/sc/source/ui/undo/undobase.cxx
+++ b/sc/source/ui/undo/undobase.cxx
@@ -549,7 +549,7 @@ void ScDBFuncUndo::EndUndo()
             SCROW nRangeY2;
             SCTAB nRangeTab;
             pNoNameData->GetArea( nRangeTab, nRangeX1, nRangeY1, nRangeX2, nRangeY2 );
-            pDocShell->DBAreaDeleted( nRangeTab, nRangeX1, nRangeY1, nRangeX2, nRangeY2 );
+            pDocShell->DBAreaDeleted( nRangeTab, nRangeX1, nRangeY1, nRangeX2 );
 
             *pNoNameData = *pAutoDBRange;
 
@@ -582,7 +582,7 @@ void ScDBFuncUndo::BeginRedo()
             SCROW nRangeY2;
             SCTAB nRangeTab;
             pNoNameData->GetArea( nRangeTab, nRangeX1, nRangeY1, nRangeX2, nRangeY2 );
-            pDocShell->DBAreaDeleted( nRangeTab, nRangeX1, nRangeY1, nRangeX2, nRangeY2 );
+            pDocShell->DBAreaDeleted( nRangeTab, nRangeX1, nRangeY1, nRangeX2 );
 
             pNoNameData->SetSortParam( ScSortParam() );
             pNoNameData->SetQueryParam( ScQueryParam() );


More information about the Libreoffice-commits mailing list