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 <undoconvert.hxx>
11 #include <globstr.hrc>
12 #include <scresid.hxx>
13 #include <undoutil.hxx>
14 
15 namespace sc {
16 
UndoFormulaToValue(ScDocShell * pDocSh,TableValues & rUndoValues)17 UndoFormulaToValue::UndoFormulaToValue( ScDocShell* pDocSh, TableValues& rUndoValues ) :
18     ScSimpleUndo(pDocSh)
19 {
20     maUndoValues.swap(rUndoValues);
21 }
22 
GetComment() const23 OUString UndoFormulaToValue::GetComment() const
24 {
25     return ScResId(STR_UNDO_FORMULA_TO_VALUE);
26 }
27 
Undo()28 void UndoFormulaToValue::Undo()
29 {
30     Execute();
31 }
32 
Redo()33 void UndoFormulaToValue::Redo()
34 {
35     Execute();
36 }
37 
Execute()38 void UndoFormulaToValue::Execute()
39 {
40     ScDocument& rDoc = pDocShell->GetDocument();
41     rDoc.SwapNonEmpty(maUndoValues);
42 
43     ScUndoUtil::MarkSimpleBlock(pDocShell, maUndoValues.getRange());
44 
45     pDocShell->PostPaint(maUndoValues.getRange(), PaintPartFlags::Grid);
46     pDocShell->PostDataChanged();
47     rDoc.BroadcastCells(maUndoValues.getRange(), SfxHintId::ScDataChanged);
48 }
49 
50 }
51 
52 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
53