LCOV - code coverage report
Current view: top level - sc/source/ui/undo - undorangename.cxx (source / functions) Hit Total Coverage
Test: commit 10e77ab3ff6f4314137acd6e2702a6e5c1ce1fae Lines: 18 66 27.3 %
Date: 2014-11-03 Functions: 6 19 31.6 %
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 "undorangename.hxx"
      11             : #include "globstr.hrc"
      12             : #include "global.hxx"
      13             : #include "docfunc.hxx"
      14             : #include "sc.hrc"
      15             : 
      16             : #include <o3tl/ptr_container.hxx>
      17             : #include <sfx2/app.hxx>
      18             : 
      19             : #include <memory>
      20             : #include <utility>
      21             : 
      22             : using ::std::unique_ptr;
      23             : 
      24           2 : ScUndoAllRangeNames::ScUndoAllRangeNames(
      25             :     ScDocShell* pDocSh,
      26             :     const std::map<OUString, ScRangeName*>& rOldNames,
      27             :     const boost::ptr_map<OUString, ScRangeName>& rNewNames) :
      28           2 :     ScSimpleUndo(pDocSh)
      29             : {
      30           2 :     std::map<OUString, ScRangeName*>::const_iterator itr, itrEnd;
      31           6 :     for (itr = rOldNames.begin(), itrEnd = rOldNames.end(); itr != itrEnd; ++itr)
      32             :     {
      33           4 :         unique_ptr<ScRangeName> p(new ScRangeName(*itr->second));
      34           4 :         o3tl::ptr_container::insert(maOldNames, itr->first, std::move(p));
      35           4 :     }
      36             : 
      37           2 :     boost::ptr_map<OUString, ScRangeName>::const_iterator it, itEnd;
      38           4 :     for (it = rNewNames.begin(), itEnd = rNewNames.end(); it != itEnd; ++it)
      39             :     {
      40           2 :         unique_ptr<ScRangeName> p(new ScRangeName(*it->second));
      41           2 :         o3tl::ptr_container::insert(maNewNames, it->first, std::move(p));
      42           2 :     }
      43           2 : }
      44             : 
      45           4 : ScUndoAllRangeNames::~ScUndoAllRangeNames()
      46             : {
      47           4 : }
      48             : 
      49           0 : void ScUndoAllRangeNames::Undo()
      50             : {
      51           0 :     DoChange(maOldNames);
      52           0 : }
      53             : 
      54           0 : void ScUndoAllRangeNames::Redo()
      55             : {
      56           0 :     DoChange(maNewNames);
      57           0 : }
      58             : 
      59           0 : void ScUndoAllRangeNames::Repeat(SfxRepeatTarget& /*rTarget*/)
      60             : {
      61           0 : }
      62             : 
      63           0 : bool ScUndoAllRangeNames::CanRepeat(SfxRepeatTarget& /*rTarget*/) const
      64             : {
      65           0 :     return false;
      66             : }
      67             : 
      68           2 : OUString ScUndoAllRangeNames::GetComment() const
      69             : {
      70           2 :     return ScGlobal::GetRscString(STR_UNDO_RANGENAMES);
      71             : }
      72             : 
      73           0 : void ScUndoAllRangeNames::DoChange(const boost::ptr_map<OUString, ScRangeName>& rNames)
      74             : {
      75           0 :     ScDocument& rDoc = pDocShell->GetDocument();
      76             : 
      77           0 :     rDoc.PreprocessRangeNameUpdate();
      78           0 :     rDoc.SetAllRangeNames(rNames);
      79           0 :     rDoc.CompileHybridFormula();
      80             : 
      81           0 :     SfxGetpApp()->Broadcast(SfxSimpleHint(SC_HINT_AREAS_CHANGED));
      82           0 : }
      83             : 
      84           0 : ScUndoAddRangeData::ScUndoAddRangeData(ScDocShell* pDocSh, ScRangeData* pRangeData, SCTAB nTab) :
      85             :     ScSimpleUndo(pDocSh),
      86           0 :     mpRangeData(new ScRangeData(*pRangeData)),
      87           0 :     mnTab(nTab)
      88             : {
      89             : 
      90           0 : }
      91             : 
      92           0 : ScUndoAddRangeData::~ScUndoAddRangeData()
      93             : {
      94           0 :     delete mpRangeData;
      95           0 : }
      96             : 
      97           0 : void ScUndoAddRangeData::Undo()
      98             : {
      99           0 :     ScDocument& rDoc = pDocShell->GetDocument();
     100           0 :     ScRangeName* pRangeName = NULL;
     101           0 :     if (mnTab == -1)
     102             :     {
     103           0 :         pRangeName = rDoc.GetRangeName();
     104             :     }
     105             :     else
     106             :     {
     107           0 :         pRangeName = rDoc.GetRangeName( mnTab );
     108             :     }
     109           0 :     pRangeName->erase(*mpRangeData);
     110           0 :     SfxGetpApp()->Broadcast( SfxSimpleHint( SC_HINT_AREAS_CHANGED ) );
     111             : 
     112           0 : }
     113             : 
     114           0 : void ScUndoAddRangeData::Redo()
     115             : {
     116           0 :     ScDocument& rDoc = pDocShell->GetDocument();
     117           0 :     ScRangeName* pRangeName = NULL;
     118           0 :     if (mnTab == -1)
     119             :     {
     120           0 :         pRangeName = rDoc.GetRangeName();
     121             :     }
     122             :     else
     123             :     {
     124           0 :         pRangeName = rDoc.GetRangeName( mnTab );
     125             :     }
     126           0 :     pRangeName->insert(new ScRangeData(*mpRangeData));
     127           0 :     SfxGetpApp()->Broadcast( SfxSimpleHint( SC_HINT_AREAS_CHANGED ) );
     128           0 : }
     129             : 
     130           0 : void ScUndoAddRangeData::Repeat(SfxRepeatTarget& /*rTarget*/)
     131             : {
     132           0 : }
     133             : 
     134           0 : bool ScUndoAddRangeData::CanRepeat(SfxRepeatTarget& /*rTarget*/) const
     135             : {
     136           0 :     return false;
     137             : }
     138             : 
     139           0 : OUString ScUndoAddRangeData::GetComment() const
     140             : {
     141           0 :     return ScGlobal::GetRscString(STR_UNDO_RANGENAMES);
     142         228 : }
     143             : 
     144             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10