LibreOffice Module svx (master)  1
tableundo.hxx
Go to the documentation of this file.
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  * This file incorporates work covered by the following license notice:
10  *
11  * Licensed to the Apache Software Foundation (ASF) under one or more
12  * contributor license agreements. See the NOTICE file distributed
13  * with this work for additional information regarding copyright
14  * ownership. The ASF licenses this file to you under the Apache
15  * License, Version 2.0 (the "License"); you may not use this file
16  * except in compliance with the License. You may obtain a copy of
17  * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18  */
19 
20 #ifndef INCLUDED_SVX_SOURCE_TABLE_TABLEUNDO_HXX
21 #define INCLUDED_SVX_SOURCE_TABLE_TABLEUNDO_HXX
22 
23 #include <com/sun/star/container/XIndexAccess.hpp>
24 
25 #include <svx/svdotable.hxx>
26 #include <svx/svdobj.hxx>
27 #include <svx/svdundo.hxx>
28 #include <svx/sdrobjectuser.hxx>
29 
30 #include <celltypes.hxx>
31 
32 namespace sdr::properties {
33  class TextProperties;
34 }
35 
36 class OutlinerParaObject;
37 
38 
39 namespace sdr::table {
40 
41 class CellUndo : public SdrUndoAction, public sdr::ObjectUser
42 {
43 public:
44  CellUndo( SdrObject* pObj, const CellRef& xCell );
45  virtual ~CellUndo() override;
46 
47  virtual void Undo() override;
48  virtual void Redo() override;
49  virtual bool Merge( SfxUndoAction *pNextAction ) override;
50 
51  void dispose();
52  virtual void ObjectInDestruction(const SdrObject& rObject) override;
53 
54 private:
55  struct Data
56  {
59 
60  OUString msFormula;
61  double mfValue;
62  ::sal_Int32 mnError;
63  bool mbMerged;
64  ::sal_Int32 mnRowSpan;
65  ::sal_Int32 mnColSpan;
66 
67  Data()
68  : mpProperties(nullptr)
69  , mfValue(0)
70  , mnError(0)
71  , mbMerged(false)
72  , mnRowSpan(0)
73  , mnColSpan(0)
74  {
75  }
76  };
77 
78  void setDataToCell( const Data& rData );
79  void getDataFromCell( Data& rData );
80 
85  bool mbUndo;
86 };
87 
88 
90 {
91 public:
92  InsertRowUndo( const TableModelRef& xTable, sal_Int32 nIndex, RowVector& aNewRows );
93  virtual ~InsertRowUndo() override;
94 
95  virtual void Undo() override;
96  virtual void Redo() override;
97 
98 private:
100  sal_Int32 mnIndex;
102  bool mbUndo;
103 };
104 
105 
107 {
108 public:
109  RemoveRowUndo( const TableModelRef& xTable, sal_Int32 nIndex, RowVector& aRemovedRows );
110  virtual ~RemoveRowUndo() override;
111 
112  virtual void Undo() override;
113  virtual void Redo() override;
114 
115 private:
117  sal_Int32 mnIndex;
119  bool mbUndo;
120 };
121 
122 
124 {
125 public:
126  InsertColUndo( const TableModelRef& xTable, sal_Int32 nIndex, ColumnVector& aNewCols, CellVector& aCells );
127  virtual ~InsertColUndo() override;
128 
129  virtual void Undo() override;
130  virtual void Redo() override;
131 
132 private:
134  sal_Int32 mnIndex;
137  bool mbUndo;
138 };
139 
140 
142 {
143 public:
144  RemoveColUndo( const TableModelRef& xTable, sal_Int32 nIndex, ColumnVector& aNewCols, CellVector& aCells );
145  virtual ~RemoveColUndo() override;
146 
147  virtual void Undo() override;
148  virtual void Redo() override;
149 
150 private:
152  sal_Int32 mnIndex;
155  bool mbUndo;
156 };
157 
158 
160 {
161 public:
162  explicit TableColumnUndo( const TableColumnRef& xCol );
163  virtual ~TableColumnUndo() override;
164 
165  virtual void Undo() override;
166  virtual void Redo() override;
167  virtual bool Merge( SfxUndoAction *pNextAction ) override;
168 
169 private:
170  struct Data
171  {
172  sal_Int32 mnColumn;
173  sal_Int32 mnWidth;
177  OUString maName;
178 
180  : mnColumn(0)
181  , mnWidth(0)
182  , mbOptimalWidth(false)
183  , mbIsVisible(false)
184  , mbIsStartOfNewPage(false)
185  {
186  }
187  };
188 
189  void setData( const Data& rData );
190  void getData( Data& rData );
191 
196 };
197 
198 
200 {
201 public:
202  explicit TableRowUndo( const TableRowRef& xRow );
203  virtual ~TableRowUndo() override;
204 
205  virtual void Undo() override;
206  virtual void Redo() override;
207  virtual bool Merge( SfxUndoAction *pNextAction ) override;
208 
209 private:
210  struct Data
211  {
212  sal_Int32 mnRow;
213  sal_Int32 mnHeight;
217  OUString maName;
218  };
219 
220  void setData( const Data& rData );
221  void getData( Data& rData );
222 
227 };
228 
230 {
231 public:
232  explicit TableStyleUndo( const SdrTableObj& rTableObj );
233 
234  virtual void Undo() override;
235  virtual void Redo() override;
236 
237 private:
239 
240  struct Data
241  {
243  css::uno::Reference< css::container::XIndexAccess > mxTableStyle;
244  };
245 
246  void setData( const Data& rData );
247  void getData( Data& rData );
248 
252 };
253 
254 }
255 
256 #endif
257 
258 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
virtual bool Merge(SfxUndoAction *pNextAction) override
Definition: tableundo.cxx:373
std::vector< CellRef > CellVector
Definition: celltypes.hxx:38
sal_Int32 nIndex
virtual ~RemoveColUndo() override
Definition: tableundo.cxx:309
InsertColUndo(const TableModelRef &xTable, sal_Int32 nIndex, ColumnVector &aNewCols, CellVector &aCells)
Definition: tableundo.cxx:254
RemoveColUndo(const TableModelRef &xTable, sal_Int32 nIndex, ColumnVector &aNewCols, CellVector &aCells)
Definition: tableundo.cxx:298
virtual bool Merge(SfxUndoAction *pNextAction) override
Definition: tableundo.cxx:439
TableStyleSettings maSettings
Definition: tableundo.hxx:242
Abstract base class (ABC) for all UndoActions of DrawingEngine.
Definition: svdundo.hxx:56
InsertRowUndo(const TableModelRef &xTable, sal_Int32 nIndex, RowVector &aNewRows)
Definition: tableundo.cxx:160
virtual ~InsertRowUndo() override
Definition: tableundo.cxx:170
virtual void Undo() override
Definition: tableundo.cxx:177
virtual void Redo() override
Definition: tableundo.cxx:329
virtual void Redo() override
Definition: tableundo.cxx:187
std::optional< OutlinerParaObject > mpOutlinerParaObject
Definition: tableundo.hxx:58
virtual void ObjectInDestruction(const SdrObject &rObject) override
Definition: tableundo.cxx:68
virtual void Redo() override
Definition: tableundo.cxx:85
TableStyleUndo(const SdrTableObj &rTableObj)
Definition: tableundo.cxx:471
RemoveRowUndo(const TableModelRef &xTable, sal_Int32 nIndex, RowVector &aRemovedRows)
Definition: tableundo.cxx:200
virtual void Undo() override
Definition: tableundo.cxx:217
void setData(const Data &rData)
Definition: tableundo.cxx:380
sdr::properties::TextProperties * mpProperties
Definition: tableundo.hxx:57
virtual void Undo() override
Definition: tableundo.cxx:73
virtual ~RemoveRowUndo() override
Definition: tableundo.cxx:210
std::vector< TableColumnRef > ColumnVector
Definition: celltypes.hxx:40
virtual void Redo() override
Definition: tableundo.cxx:285
virtual void Redo() override
Definition: tableundo.cxx:227
tools::WeakReference< SdrObject > mxObjRef
Definition: tableundo.hxx:81
std::vector< TableRowRef > RowVector
Definition: celltypes.hxx:39
uno::Reference< sdbc::XRow > xRow
tools::WeakReference< SdrTableObj > mxObjRef
Definition: tableundo.hxx:238
virtual void Undo() override
Definition: tableundo.cxx:319
virtual void Undo() override
Definition: tableundo.cxx:479
Abstract DrawObject.
Definition: svdobj.hxx:260
virtual void Undo() override
Definition: tableundo.cxx:275
virtual void Redo() override
Definition: tableundo.cxx:367
virtual ~TableRowUndo() override
Definition: tableundo.cxx:417
virtual void Undo() override
Definition: tableundo.cxx:422
void getData(Data &rData)
Definition: tableundo.cxx:394
TableColumnUndo(const TableColumnRef &xCol)
Definition: tableundo.cxx:342
virtual bool Merge(SfxUndoAction *pNextAction) override
Definition: tableundo.cxx:94
virtual void Redo() override
Definition: tableundo.cxx:433
void setDataToCell(const Data &rData)
Definition: tableundo.cxx:100
void getData(Data &rData)
Definition: tableundo.cxx:504
void setData(const Data &rData)
Definition: tableundo.cxx:494
TableRowUndo(const TableRowRef &xRow)
Definition: tableundo.cxx:408
void setData(const Data &rData)
Definition: tableundo.cxx:446
virtual ~CellUndo() override
Definition: tableundo.cxx:50
CellUndo(SdrObject *pObj, const CellRef &xCell)
Definition: tableundo.cxx:37
TableStyleSettings.
Definition: svdotable.hxx:74
void getData(Data &rData)
Definition: tableundo.cxx:460
void getDataFromCell(Data &rData)
Definition: tableundo.cxx:128
virtual void Undo() override
Definition: tableundo.cxx:356
css::uno::Reference< css::container::XIndexAccess > mxTableStyle
Definition: tableundo.hxx:243
virtual void Redo() override
Definition: tableundo.cxx:489
virtual ~InsertColUndo() override
Definition: tableundo.cxx:265
virtual ~TableColumnUndo() override
Definition: tableundo.cxx:351