LCOV - code coverage report
Current view: top level - sc/source/ui/undo - undosort.cxx (source / functions) Hit Total Coverage
Test: commit c8344322a7af75b84dd3ca8f78b05543a976dfd5 Lines: 36 36 100.0 %
Date: 2015-06-13 12:38:46 Functions: 7 7 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2             : /*
       3             :  * This file is part of the LibreOffice project.
       4             :  *
       5             :  * This Source Code Form is subject to the terms of the Mozilla Public
       6             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       7             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
       8             :  */
       9             : 
      10             : #include <undosort.hxx>
      11             : #include <globstr.hrc>
      12             : #include <global.hxx>
      13             : #include <undoutil.hxx>
      14             : 
      15             : namespace sc {
      16             : 
      17          28 : UndoSort::UndoSort( ScDocShell* pDocSh, const ReorderParam& rParam ) :
      18          28 :     ScSimpleUndo(pDocSh), maParam(rParam) {}
      19             : 
      20          50 : OUString UndoSort::GetComment() const
      21             : {
      22          50 :     return ScGlobal::GetRscString(STR_UNDO_SORT);
      23             : }
      24             : 
      25          13 : void UndoSort::Undo()
      26             : {
      27          13 :     BeginUndo();
      28          13 :     Execute(true);
      29          13 :     EndUndo();
      30          13 : }
      31             : 
      32           9 : void UndoSort::Redo()
      33             : {
      34           9 :     BeginRedo();
      35           9 :     Execute(false);
      36           9 :     EndRedo();
      37           9 : }
      38             : 
      39          22 : void UndoSort::Execute( bool bUndo )
      40             : {
      41          22 :     ScDocument& rDoc = pDocShell->GetDocument();
      42          22 :     sc::ReorderParam aParam = maParam;
      43          22 :     if (bUndo)
      44          13 :         aParam.reverse();
      45          22 :     rDoc.Reorder(aParam, NULL);
      46             : 
      47          22 :     if (maParam.mbHasHeaders)
      48             :     {
      49          20 :         ScRange aMarkRange( maParam.maSortRange);
      50          20 :         if (maParam.mbByRow)
      51             :         {
      52          18 :             if (aMarkRange.aStart.Row() > 0)
      53          18 :                 aMarkRange.aStart.IncRow(-1);
      54             :         }
      55             :         else
      56             :         {
      57           2 :             if (aMarkRange.aStart.Col() > 0)
      58           2 :                 aMarkRange.aStart.IncCol(-1);
      59             :         }
      60          20 :         ScUndoUtil::MarkSimpleBlock(pDocShell, aMarkRange);
      61             :     }
      62             :     else
      63             :     {
      64           2 :         ScUndoUtil::MarkSimpleBlock(pDocShell, maParam.maSortRange);
      65             :     }
      66             : 
      67          22 :     rDoc.SetDirty(maParam.maSortRange, true);
      68          22 :     if (!aParam.mbUpdateRefs)
      69           9 :         rDoc.BroadcastCells(aParam.maSortRange, SC_HINT_DATACHANGED);
      70             : 
      71          22 :     pDocShell->PostPaint(maParam.maSortRange, PAINT_GRID);
      72          22 :     pDocShell->PostDataChanged();
      73          22 : }
      74             : 
      75         156 : }
      76             : 
      77             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.11