xref: /aoo4110/main/sw/source/core/undo/SwUndoFmt.cxx (revision b1cdbd2c)
1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski 
24*b1cdbd2cSJim Jagielski // MARKER(update_precomp.py): autogen include statement, do not remove
25*b1cdbd2cSJim Jagielski #include "precompiled_sw.hxx"
26*b1cdbd2cSJim Jagielski 
27*b1cdbd2cSJim Jagielski #include <tools/resid.hxx>
28*b1cdbd2cSJim Jagielski #include <tools/string.hxx>
29*b1cdbd2cSJim Jagielski 
30*b1cdbd2cSJim Jagielski #include <poolfmt.hxx>
31*b1cdbd2cSJim Jagielski #include <charfmt.hxx>
32*b1cdbd2cSJim Jagielski #include <frmfmt.hxx>
33*b1cdbd2cSJim Jagielski #include <SwUndoFmt.hxx>
34*b1cdbd2cSJim Jagielski #include <SwRewriter.hxx>
35*b1cdbd2cSJim Jagielski #include <swundo.hxx>
36*b1cdbd2cSJim Jagielski #include <undobj.hxx>
37*b1cdbd2cSJim Jagielski #include <fmtcol.hxx>
38*b1cdbd2cSJim Jagielski #include <doc.hxx>
39*b1cdbd2cSJim Jagielski #include <IDocumentUndoRedo.hxx>
40*b1cdbd2cSJim Jagielski #include <comcore.hrc>
41*b1cdbd2cSJim Jagielski 
SwUndoFmtCreate(SwUndoId nUndoId,SwFmt * _pNew,SwFmt * _pDerivedFrom,SwDoc * _pDoc)42*b1cdbd2cSJim Jagielski SwUndoFmtCreate::SwUndoFmtCreate
43*b1cdbd2cSJim Jagielski (SwUndoId nUndoId, SwFmt * _pNew, SwFmt * _pDerivedFrom, SwDoc * _pDoc)
44*b1cdbd2cSJim Jagielski     : SwUndo(nUndoId), pNew(_pNew),
45*b1cdbd2cSJim Jagielski       pDoc(_pDoc), pNewSet(NULL), nId(0), bAuto(sal_False)
46*b1cdbd2cSJim Jagielski {
47*b1cdbd2cSJim Jagielski     if (_pDerivedFrom)
48*b1cdbd2cSJim Jagielski         sDerivedFrom = _pDerivedFrom->GetName();
49*b1cdbd2cSJim Jagielski }
50*b1cdbd2cSJim Jagielski 
~SwUndoFmtCreate()51*b1cdbd2cSJim Jagielski SwUndoFmtCreate::~SwUndoFmtCreate()
52*b1cdbd2cSJim Jagielski {
53*b1cdbd2cSJim Jagielski }
54*b1cdbd2cSJim Jagielski 
UndoImpl(::sw::UndoRedoContext &)55*b1cdbd2cSJim Jagielski void SwUndoFmtCreate::UndoImpl(::sw::UndoRedoContext &)
56*b1cdbd2cSJim Jagielski {
57*b1cdbd2cSJim Jagielski     if (pNew)
58*b1cdbd2cSJim Jagielski     {
59*b1cdbd2cSJim Jagielski         if (sNewName.Len() == 0 && pNew)
60*b1cdbd2cSJim Jagielski             sNewName = pNew->GetName();
61*b1cdbd2cSJim Jagielski 
62*b1cdbd2cSJim Jagielski         if (sNewName.Len() > 0)
63*b1cdbd2cSJim Jagielski             pNew = Find(sNewName);
64*b1cdbd2cSJim Jagielski 
65*b1cdbd2cSJim Jagielski         if (pNew)
66*b1cdbd2cSJim Jagielski         {
67*b1cdbd2cSJim Jagielski             pNewSet = new SfxItemSet(pNew->GetAttrSet());
68*b1cdbd2cSJim Jagielski             nId = pNew->GetPoolFmtId() & COLL_GET_RANGE_BITS;
69*b1cdbd2cSJim Jagielski             bAuto = pNew->IsAuto();
70*b1cdbd2cSJim Jagielski 
71*b1cdbd2cSJim Jagielski             Delete();
72*b1cdbd2cSJim Jagielski         }
73*b1cdbd2cSJim Jagielski     }
74*b1cdbd2cSJim Jagielski }
75*b1cdbd2cSJim Jagielski 
RedoImpl(::sw::UndoRedoContext &)76*b1cdbd2cSJim Jagielski void SwUndoFmtCreate::RedoImpl(::sw::UndoRedoContext &)
77*b1cdbd2cSJim Jagielski {
78*b1cdbd2cSJim Jagielski     SwFmt * pDerivedFrom = Find(sDerivedFrom);
79*b1cdbd2cSJim Jagielski     SwFmt * pFmt = Create(pDerivedFrom);
80*b1cdbd2cSJim Jagielski 
81*b1cdbd2cSJim Jagielski     if (pFmt && pNewSet)
82*b1cdbd2cSJim Jagielski     {
83*b1cdbd2cSJim Jagielski         pFmt->SetAuto(bAuto);
84*b1cdbd2cSJim Jagielski         pDoc->ChgFmt(*pFmt, *pNewSet);
85*b1cdbd2cSJim Jagielski         pFmt->SetPoolFmtId((pFmt->GetPoolFmtId()
86*b1cdbd2cSJim Jagielski                             & ~COLL_GET_RANGE_BITS)
87*b1cdbd2cSJim Jagielski                            | nId);
88*b1cdbd2cSJim Jagielski 
89*b1cdbd2cSJim Jagielski         pNew = pFmt;
90*b1cdbd2cSJim Jagielski     }
91*b1cdbd2cSJim Jagielski     else
92*b1cdbd2cSJim Jagielski         pNew = NULL;
93*b1cdbd2cSJim Jagielski }
94*b1cdbd2cSJim Jagielski 
GetRewriter() const95*b1cdbd2cSJim Jagielski SwRewriter SwUndoFmtCreate::GetRewriter() const
96*b1cdbd2cSJim Jagielski {
97*b1cdbd2cSJim Jagielski     if (sNewName.Len() == 0 && pNew)
98*b1cdbd2cSJim Jagielski         sNewName = pNew->GetName();
99*b1cdbd2cSJim Jagielski 
100*b1cdbd2cSJim Jagielski     SwRewriter aRewriter;
101*b1cdbd2cSJim Jagielski 
102*b1cdbd2cSJim Jagielski     aRewriter.AddRule(UNDO_ARG1, sNewName);
103*b1cdbd2cSJim Jagielski 
104*b1cdbd2cSJim Jagielski     return aRewriter;
105*b1cdbd2cSJim Jagielski }
106*b1cdbd2cSJim Jagielski 
SwUndoFmtDelete(SwUndoId nUndoId,SwFmt * _pOld,SwDoc * _pDoc)107*b1cdbd2cSJim Jagielski SwUndoFmtDelete::SwUndoFmtDelete
108*b1cdbd2cSJim Jagielski (SwUndoId nUndoId, SwFmt * _pOld, SwDoc * _pDoc)
109*b1cdbd2cSJim Jagielski     : SwUndo(nUndoId),
110*b1cdbd2cSJim Jagielski       pDoc(_pDoc), sOldName(_pOld->GetName()),
111*b1cdbd2cSJim Jagielski       aOldSet(_pOld->GetAttrSet())
112*b1cdbd2cSJim Jagielski {
113*b1cdbd2cSJim Jagielski     sDerivedFrom = _pOld->DerivedFrom()->GetName();
114*b1cdbd2cSJim Jagielski     nId = _pOld->GetPoolFmtId() & COLL_GET_RANGE_BITS;
115*b1cdbd2cSJim Jagielski     bAuto = _pOld->IsAuto();
116*b1cdbd2cSJim Jagielski }
117*b1cdbd2cSJim Jagielski 
~SwUndoFmtDelete()118*b1cdbd2cSJim Jagielski SwUndoFmtDelete::~SwUndoFmtDelete()
119*b1cdbd2cSJim Jagielski {
120*b1cdbd2cSJim Jagielski }
121*b1cdbd2cSJim Jagielski 
UndoImpl(::sw::UndoRedoContext &)122*b1cdbd2cSJim Jagielski void SwUndoFmtDelete::UndoImpl(::sw::UndoRedoContext &)
123*b1cdbd2cSJim Jagielski {
124*b1cdbd2cSJim Jagielski     SwFmt * pDerivedFrom = Find(sDerivedFrom);
125*b1cdbd2cSJim Jagielski 
126*b1cdbd2cSJim Jagielski     SwFmt * pFmt = Create(pDerivedFrom);
127*b1cdbd2cSJim Jagielski 
128*b1cdbd2cSJim Jagielski     if (pFmt)
129*b1cdbd2cSJim Jagielski     {
130*b1cdbd2cSJim Jagielski         pDoc->ChgFmt(*pFmt, aOldSet);
131*b1cdbd2cSJim Jagielski         pFmt->SetAuto(bAuto);
132*b1cdbd2cSJim Jagielski         pFmt->SetPoolFmtId((pFmt->GetPoolFmtId() &
133*b1cdbd2cSJim Jagielski                                 ~COLL_GET_RANGE_BITS)
134*b1cdbd2cSJim Jagielski                                | nId);
135*b1cdbd2cSJim Jagielski     }
136*b1cdbd2cSJim Jagielski }
137*b1cdbd2cSJim Jagielski 
RedoImpl(::sw::UndoRedoContext &)138*b1cdbd2cSJim Jagielski void SwUndoFmtDelete::RedoImpl(::sw::UndoRedoContext &)
139*b1cdbd2cSJim Jagielski {
140*b1cdbd2cSJim Jagielski     SwFmt * pOld = Find(sOldName);
141*b1cdbd2cSJim Jagielski 
142*b1cdbd2cSJim Jagielski     if (pOld)
143*b1cdbd2cSJim Jagielski     {
144*b1cdbd2cSJim Jagielski         Delete(pOld);
145*b1cdbd2cSJim Jagielski     }
146*b1cdbd2cSJim Jagielski }
147*b1cdbd2cSJim Jagielski 
GetRewriter() const148*b1cdbd2cSJim Jagielski SwRewriter SwUndoFmtDelete::GetRewriter() const
149*b1cdbd2cSJim Jagielski {
150*b1cdbd2cSJim Jagielski     SwRewriter aRewriter;
151*b1cdbd2cSJim Jagielski 
152*b1cdbd2cSJim Jagielski     aRewriter.AddRule(UNDO_ARG1, sOldName);
153*b1cdbd2cSJim Jagielski 
154*b1cdbd2cSJim Jagielski     return aRewriter;
155*b1cdbd2cSJim Jagielski }
156*b1cdbd2cSJim Jagielski 
SwUndoRenameFmt(SwUndoId nUndoId,const String & _sOldName,const String & _sNewName,SwDoc * _pDoc)157*b1cdbd2cSJim Jagielski SwUndoRenameFmt::SwUndoRenameFmt(SwUndoId nUndoId,
158*b1cdbd2cSJim Jagielski                                  const String & _sOldName,
159*b1cdbd2cSJim Jagielski                                  const String & _sNewName,
160*b1cdbd2cSJim Jagielski                                  SwDoc * _pDoc)
161*b1cdbd2cSJim Jagielski     : SwUndo(nUndoId), sOldName(_sOldName),
162*b1cdbd2cSJim Jagielski       sNewName(_sNewName), pDoc(_pDoc)
163*b1cdbd2cSJim Jagielski {
164*b1cdbd2cSJim Jagielski }
165*b1cdbd2cSJim Jagielski 
166*b1cdbd2cSJim Jagielski 
~SwUndoRenameFmt()167*b1cdbd2cSJim Jagielski SwUndoRenameFmt::~SwUndoRenameFmt()
168*b1cdbd2cSJim Jagielski {
169*b1cdbd2cSJim Jagielski }
170*b1cdbd2cSJim Jagielski 
UndoImpl(::sw::UndoRedoContext &)171*b1cdbd2cSJim Jagielski void SwUndoRenameFmt::UndoImpl(::sw::UndoRedoContext &)
172*b1cdbd2cSJim Jagielski {
173*b1cdbd2cSJim Jagielski     SwFmt * pFmt = Find(sNewName);
174*b1cdbd2cSJim Jagielski 
175*b1cdbd2cSJim Jagielski     if (pFmt)
176*b1cdbd2cSJim Jagielski     {
177*b1cdbd2cSJim Jagielski         pDoc->RenameFmt(*pFmt, sOldName, sal_True);
178*b1cdbd2cSJim Jagielski     }
179*b1cdbd2cSJim Jagielski }
180*b1cdbd2cSJim Jagielski 
RedoImpl(::sw::UndoRedoContext &)181*b1cdbd2cSJim Jagielski void SwUndoRenameFmt::RedoImpl(::sw::UndoRedoContext &)
182*b1cdbd2cSJim Jagielski {
183*b1cdbd2cSJim Jagielski     SwFmt *  pFmt = Find(sOldName);
184*b1cdbd2cSJim Jagielski 
185*b1cdbd2cSJim Jagielski     if (pFmt)
186*b1cdbd2cSJim Jagielski     {
187*b1cdbd2cSJim Jagielski         pDoc->RenameFmt(*pFmt, sNewName, sal_True);
188*b1cdbd2cSJim Jagielski     }
189*b1cdbd2cSJim Jagielski }
190*b1cdbd2cSJim Jagielski 
GetRewriter() const191*b1cdbd2cSJim Jagielski SwRewriter SwUndoRenameFmt::GetRewriter() const
192*b1cdbd2cSJim Jagielski {
193*b1cdbd2cSJim Jagielski     SwRewriter aRewriter;
194*b1cdbd2cSJim Jagielski 
195*b1cdbd2cSJim Jagielski     aRewriter.AddRule(UNDO_ARG1, sOldName);
196*b1cdbd2cSJim Jagielski     aRewriter.AddRule(UNDO_ARG2, SW_RES(STR_YIELDS));
197*b1cdbd2cSJim Jagielski     aRewriter.AddRule(UNDO_ARG3, sNewName);
198*b1cdbd2cSJim Jagielski 
199*b1cdbd2cSJim Jagielski     return aRewriter;
200*b1cdbd2cSJim Jagielski }
201*b1cdbd2cSJim Jagielski 
SwUndoTxtFmtCollCreate(SwTxtFmtColl * _pNew,SwTxtFmtColl * _pDerivedFrom,SwDoc * _pDoc)202*b1cdbd2cSJim Jagielski SwUndoTxtFmtCollCreate::SwUndoTxtFmtCollCreate
203*b1cdbd2cSJim Jagielski (SwTxtFmtColl * _pNew, SwTxtFmtColl * _pDerivedFrom, SwDoc * _pDoc)
204*b1cdbd2cSJim Jagielski     : SwUndoFmtCreate(UNDO_TXTFMTCOL_CREATE, _pNew, _pDerivedFrom, _pDoc)
205*b1cdbd2cSJim Jagielski {
206*b1cdbd2cSJim Jagielski }
207*b1cdbd2cSJim Jagielski 
Create(SwFmt * pDerivedFrom)208*b1cdbd2cSJim Jagielski SwFmt * SwUndoTxtFmtCollCreate::Create(SwFmt * pDerivedFrom)
209*b1cdbd2cSJim Jagielski {
210*b1cdbd2cSJim Jagielski     return pDoc->MakeTxtFmtColl(sNewName, (SwTxtFmtColl *)pDerivedFrom, sal_True);
211*b1cdbd2cSJim Jagielski }
212*b1cdbd2cSJim Jagielski 
Delete()213*b1cdbd2cSJim Jagielski void SwUndoTxtFmtCollCreate::Delete()
214*b1cdbd2cSJim Jagielski {
215*b1cdbd2cSJim Jagielski     pDoc->DelTxtFmtColl((SwTxtFmtColl *) pNew, sal_True);
216*b1cdbd2cSJim Jagielski }
217*b1cdbd2cSJim Jagielski 
Find(const String & rName) const218*b1cdbd2cSJim Jagielski SwFmt * SwUndoTxtFmtCollCreate::Find(const String & rName) const
219*b1cdbd2cSJim Jagielski {
220*b1cdbd2cSJim Jagielski     return pDoc->FindTxtFmtCollByName(rName);
221*b1cdbd2cSJim Jagielski }
222*b1cdbd2cSJim Jagielski 
SwUndoTxtFmtCollDelete(SwTxtFmtColl * _pOld,SwDoc * _pDoc)223*b1cdbd2cSJim Jagielski SwUndoTxtFmtCollDelete::SwUndoTxtFmtCollDelete(SwTxtFmtColl * _pOld,
224*b1cdbd2cSJim Jagielski                                                SwDoc * _pDoc)
225*b1cdbd2cSJim Jagielski     : SwUndoFmtDelete(UNDO_TXTFMTCOL_DELETE, _pOld, _pDoc)
226*b1cdbd2cSJim Jagielski {
227*b1cdbd2cSJim Jagielski }
228*b1cdbd2cSJim Jagielski 
Create(SwFmt * pDerivedFrom)229*b1cdbd2cSJim Jagielski SwFmt * SwUndoTxtFmtCollDelete::Create(SwFmt * pDerivedFrom)
230*b1cdbd2cSJim Jagielski {
231*b1cdbd2cSJim Jagielski     return pDoc->MakeTxtFmtColl(sOldName, (SwTxtFmtColl *) pDerivedFrom, sal_True);
232*b1cdbd2cSJim Jagielski }
233*b1cdbd2cSJim Jagielski 
Delete(SwFmt * pOld)234*b1cdbd2cSJim Jagielski void SwUndoTxtFmtCollDelete::Delete(SwFmt * pOld)
235*b1cdbd2cSJim Jagielski {
236*b1cdbd2cSJim Jagielski     pDoc->DelTxtFmtColl((SwTxtFmtColl *) pOld, sal_True);
237*b1cdbd2cSJim Jagielski }
238*b1cdbd2cSJim Jagielski 
Find(const String & rName) const239*b1cdbd2cSJim Jagielski SwFmt * SwUndoTxtFmtCollDelete::Find(const String & rName) const
240*b1cdbd2cSJim Jagielski {
241*b1cdbd2cSJim Jagielski     return pDoc->FindTxtFmtCollByName(rName);
242*b1cdbd2cSJim Jagielski }
243*b1cdbd2cSJim Jagielski 
SwUndoRenameFmtColl(const String & sInitOldName,const String & sInitNewName,SwDoc * _pDoc)244*b1cdbd2cSJim Jagielski SwUndoRenameFmtColl::SwUndoRenameFmtColl(const String & sInitOldName,
245*b1cdbd2cSJim Jagielski                                          const String & sInitNewName,
246*b1cdbd2cSJim Jagielski                                          SwDoc * _pDoc)
247*b1cdbd2cSJim Jagielski     : SwUndoRenameFmt(UNDO_TXTFMTCOL_RENAME, sInitOldName, sInitNewName, _pDoc)
248*b1cdbd2cSJim Jagielski {
249*b1cdbd2cSJim Jagielski }
250*b1cdbd2cSJim Jagielski 
Find(const String & rName) const251*b1cdbd2cSJim Jagielski SwFmt * SwUndoRenameFmtColl::Find(const String & rName) const
252*b1cdbd2cSJim Jagielski {
253*b1cdbd2cSJim Jagielski     return pDoc->FindTxtFmtCollByName(rName);
254*b1cdbd2cSJim Jagielski }
255*b1cdbd2cSJim Jagielski 
SwUndoCharFmtCreate(SwCharFmt * pNewFmt,SwCharFmt * pDerivedFrom,SwDoc * pDocument)256*b1cdbd2cSJim Jagielski SwUndoCharFmtCreate::SwUndoCharFmtCreate(SwCharFmt * pNewFmt,
257*b1cdbd2cSJim Jagielski                                          SwCharFmt * pDerivedFrom,
258*b1cdbd2cSJim Jagielski                                          SwDoc * pDocument)
259*b1cdbd2cSJim Jagielski     : SwUndoFmtCreate(UNDO_CHARFMT_CREATE, pNewFmt, pDerivedFrom, pDocument)
260*b1cdbd2cSJim Jagielski {
261*b1cdbd2cSJim Jagielski }
262*b1cdbd2cSJim Jagielski 
Create(SwFmt * pDerivedFrom)263*b1cdbd2cSJim Jagielski SwFmt * SwUndoCharFmtCreate::Create(SwFmt * pDerivedFrom)
264*b1cdbd2cSJim Jagielski {
265*b1cdbd2cSJim Jagielski     return pDoc->MakeCharFmt(sNewName, (SwCharFmt *) pDerivedFrom, sal_True);
266*b1cdbd2cSJim Jagielski }
267*b1cdbd2cSJim Jagielski 
Delete()268*b1cdbd2cSJim Jagielski void SwUndoCharFmtCreate::Delete()
269*b1cdbd2cSJim Jagielski {
270*b1cdbd2cSJim Jagielski     pDoc->DelCharFmt((SwCharFmt *) pNew, sal_True);
271*b1cdbd2cSJim Jagielski }
272*b1cdbd2cSJim Jagielski 
Find(const String & rName) const273*b1cdbd2cSJim Jagielski SwFmt * SwUndoCharFmtCreate::Find(const String & rName) const
274*b1cdbd2cSJim Jagielski {
275*b1cdbd2cSJim Jagielski     return pDoc->FindCharFmtByName(rName);
276*b1cdbd2cSJim Jagielski }
277*b1cdbd2cSJim Jagielski 
SwUndoCharFmtDelete(SwCharFmt * pOld,SwDoc * pDocument)278*b1cdbd2cSJim Jagielski SwUndoCharFmtDelete::SwUndoCharFmtDelete(SwCharFmt * pOld, SwDoc * pDocument)
279*b1cdbd2cSJim Jagielski     : SwUndoFmtDelete(UNDO_CHARFMT_DELETE, pOld, pDocument)
280*b1cdbd2cSJim Jagielski {
281*b1cdbd2cSJim Jagielski }
282*b1cdbd2cSJim Jagielski 
Create(SwFmt * pDerivedFrom)283*b1cdbd2cSJim Jagielski SwFmt * SwUndoCharFmtDelete::Create(SwFmt * pDerivedFrom)
284*b1cdbd2cSJim Jagielski {
285*b1cdbd2cSJim Jagielski     return pDoc->MakeCharFmt(sOldName, (SwCharFmt *) pDerivedFrom, sal_True);
286*b1cdbd2cSJim Jagielski }
287*b1cdbd2cSJim Jagielski 
Delete(SwFmt * pFmt)288*b1cdbd2cSJim Jagielski void SwUndoCharFmtDelete::Delete(SwFmt * pFmt)
289*b1cdbd2cSJim Jagielski {
290*b1cdbd2cSJim Jagielski     pDoc->DelCharFmt((SwCharFmt *) pFmt, sal_True);
291*b1cdbd2cSJim Jagielski }
292*b1cdbd2cSJim Jagielski 
Find(const String & rName) const293*b1cdbd2cSJim Jagielski SwFmt * SwUndoCharFmtDelete::Find(const String & rName) const
294*b1cdbd2cSJim Jagielski {
295*b1cdbd2cSJim Jagielski     return pDoc->FindCharFmtByName(rName);
296*b1cdbd2cSJim Jagielski }
297*b1cdbd2cSJim Jagielski 
SwUndoRenameCharFmt(const String & sInitOldName,const String & sInitNewName,SwDoc * pDocument)298*b1cdbd2cSJim Jagielski SwUndoRenameCharFmt::SwUndoRenameCharFmt(const String & sInitOldName,
299*b1cdbd2cSJim Jagielski                                          const String & sInitNewName,
300*b1cdbd2cSJim Jagielski                                          SwDoc * pDocument)
301*b1cdbd2cSJim Jagielski     : SwUndoRenameFmt(UNDO_CHARFMT_RENAME, sInitOldName, sInitNewName, pDocument)
302*b1cdbd2cSJim Jagielski {
303*b1cdbd2cSJim Jagielski }
304*b1cdbd2cSJim Jagielski 
Find(const String & rName) const305*b1cdbd2cSJim Jagielski SwFmt * SwUndoRenameCharFmt::Find(const String & rName) const
306*b1cdbd2cSJim Jagielski {
307*b1cdbd2cSJim Jagielski     return pDoc->FindCharFmtByName(rName);
308*b1cdbd2cSJim Jagielski }
309*b1cdbd2cSJim Jagielski 
SwUndoFrmFmtCreate(SwFrmFmt * pNewFmt,SwFrmFmt * pDerivedFrom,SwDoc * pDocument)310*b1cdbd2cSJim Jagielski SwUndoFrmFmtCreate::SwUndoFrmFmtCreate(SwFrmFmt * pNewFmt,
311*b1cdbd2cSJim Jagielski                                        SwFrmFmt * pDerivedFrom,
312*b1cdbd2cSJim Jagielski                                        SwDoc * pDocument)
313*b1cdbd2cSJim Jagielski     : SwUndoFmtCreate(UNDO_FRMFMT_CREATE, pNewFmt, pDerivedFrom, pDocument),
314*b1cdbd2cSJim Jagielski       bAuto(pNewFmt->IsAuto())
315*b1cdbd2cSJim Jagielski {
316*b1cdbd2cSJim Jagielski }
317*b1cdbd2cSJim Jagielski 
Create(SwFmt * pDerivedFrom)318*b1cdbd2cSJim Jagielski SwFmt * SwUndoFrmFmtCreate::Create(SwFmt * pDerivedFrom)
319*b1cdbd2cSJim Jagielski {
320*b1cdbd2cSJim Jagielski     return pDoc->MakeFrmFmt(sNewName, (SwFrmFmt *) pDerivedFrom, sal_True, bAuto);
321*b1cdbd2cSJim Jagielski }
322*b1cdbd2cSJim Jagielski 
Delete()323*b1cdbd2cSJim Jagielski void SwUndoFrmFmtCreate::Delete()
324*b1cdbd2cSJim Jagielski {
325*b1cdbd2cSJim Jagielski     pDoc->DelFrmFmt((SwFrmFmt *) pNew, sal_True);
326*b1cdbd2cSJim Jagielski }
327*b1cdbd2cSJim Jagielski 
Find(const String & rName) const328*b1cdbd2cSJim Jagielski SwFmt * SwUndoFrmFmtCreate::Find(const String & rName) const
329*b1cdbd2cSJim Jagielski {
330*b1cdbd2cSJim Jagielski     return pDoc->FindFrmFmtByName(rName);
331*b1cdbd2cSJim Jagielski }
332*b1cdbd2cSJim Jagielski 
SwUndoFrmFmtDelete(SwFrmFmt * pOld,SwDoc * pDocument)333*b1cdbd2cSJim Jagielski SwUndoFrmFmtDelete::SwUndoFrmFmtDelete(SwFrmFmt * pOld, SwDoc * pDocument)
334*b1cdbd2cSJim Jagielski     : SwUndoFmtDelete(UNDO_FRMFMT_DELETE, pOld, pDocument)
335*b1cdbd2cSJim Jagielski {
336*b1cdbd2cSJim Jagielski }
337*b1cdbd2cSJim Jagielski 
Create(SwFmt * pDerivedFrom)338*b1cdbd2cSJim Jagielski SwFmt * SwUndoFrmFmtDelete::Create(SwFmt * pDerivedFrom)
339*b1cdbd2cSJim Jagielski {
340*b1cdbd2cSJim Jagielski     return pDoc->MakeFrmFmt(sOldName, (SwFrmFmt *) pDerivedFrom, sal_True);
341*b1cdbd2cSJim Jagielski }
342*b1cdbd2cSJim Jagielski 
Delete(SwFmt * pFmt)343*b1cdbd2cSJim Jagielski void SwUndoFrmFmtDelete::Delete(SwFmt * pFmt)
344*b1cdbd2cSJim Jagielski {
345*b1cdbd2cSJim Jagielski     pDoc->DelFrmFmt((SwFrmFmt *) pFmt, sal_True);
346*b1cdbd2cSJim Jagielski }
347*b1cdbd2cSJim Jagielski 
Find(const String & rName) const348*b1cdbd2cSJim Jagielski SwFmt * SwUndoFrmFmtDelete::Find(const String & rName) const
349*b1cdbd2cSJim Jagielski {
350*b1cdbd2cSJim Jagielski     return pDoc->FindFrmFmtByName(rName);
351*b1cdbd2cSJim Jagielski }
352*b1cdbd2cSJim Jagielski 
SwUndoRenameFrmFmt(const String & sInitOldName,const String & sInitNewName,SwDoc * pDocument)353*b1cdbd2cSJim Jagielski SwUndoRenameFrmFmt::SwUndoRenameFrmFmt(const String & sInitOldName,
354*b1cdbd2cSJim Jagielski                                        const String & sInitNewName,
355*b1cdbd2cSJim Jagielski                                        SwDoc * pDocument)
356*b1cdbd2cSJim Jagielski     : SwUndoRenameFmt(UNDO_FRMFMT_RENAME, sInitOldName, sInitNewName, pDocument)
357*b1cdbd2cSJim Jagielski {
358*b1cdbd2cSJim Jagielski }
359*b1cdbd2cSJim Jagielski 
Find(const String & rName) const360*b1cdbd2cSJim Jagielski SwFmt * SwUndoRenameFrmFmt::Find(const String & rName) const
361*b1cdbd2cSJim Jagielski {
362*b1cdbd2cSJim Jagielski     return pDoc->FindFrmFmtByName(rName);
363*b1cdbd2cSJim Jagielski }
364*b1cdbd2cSJim Jagielski 
SwUndoNumruleCreate(const SwNumRule * _pNew,SwDoc * _pDoc)365*b1cdbd2cSJim Jagielski SwUndoNumruleCreate::SwUndoNumruleCreate(const SwNumRule * _pNew,
366*b1cdbd2cSJim Jagielski                                          SwDoc * _pDoc)
367*b1cdbd2cSJim Jagielski     : SwUndo(UNDO_NUMRULE_CREATE), pNew(_pNew), aNew(*_pNew), pDoc(_pDoc),
368*b1cdbd2cSJim Jagielski       bInitialized(false)
369*b1cdbd2cSJim Jagielski {
370*b1cdbd2cSJim Jagielski }
371*b1cdbd2cSJim Jagielski 
UndoImpl(::sw::UndoRedoContext &)372*b1cdbd2cSJim Jagielski void SwUndoNumruleCreate::UndoImpl(::sw::UndoRedoContext &)
373*b1cdbd2cSJim Jagielski {
374*b1cdbd2cSJim Jagielski     if (! bInitialized)
375*b1cdbd2cSJim Jagielski     {
376*b1cdbd2cSJim Jagielski         aNew = *pNew;
377*b1cdbd2cSJim Jagielski         bInitialized = true;
378*b1cdbd2cSJim Jagielski     }
379*b1cdbd2cSJim Jagielski 
380*b1cdbd2cSJim Jagielski     pDoc->DelNumRule(aNew.GetName(), sal_True);
381*b1cdbd2cSJim Jagielski }
382*b1cdbd2cSJim Jagielski 
RedoImpl(::sw::UndoRedoContext &)383*b1cdbd2cSJim Jagielski void SwUndoNumruleCreate::RedoImpl(::sw::UndoRedoContext &)
384*b1cdbd2cSJim Jagielski {
385*b1cdbd2cSJim Jagielski     pDoc->MakeNumRule(aNew.GetName(), &aNew, sal_True);
386*b1cdbd2cSJim Jagielski }
387*b1cdbd2cSJim Jagielski 
GetRewriter() const388*b1cdbd2cSJim Jagielski SwRewriter SwUndoNumruleCreate::GetRewriter() const
389*b1cdbd2cSJim Jagielski {
390*b1cdbd2cSJim Jagielski     SwRewriter aResult;
391*b1cdbd2cSJim Jagielski 
392*b1cdbd2cSJim Jagielski     if (! bInitialized)
393*b1cdbd2cSJim Jagielski     {
394*b1cdbd2cSJim Jagielski         aNew = *pNew;
395*b1cdbd2cSJim Jagielski         bInitialized = true;
396*b1cdbd2cSJim Jagielski     }
397*b1cdbd2cSJim Jagielski 
398*b1cdbd2cSJim Jagielski     aResult.AddRule(UNDO_ARG1, aNew.GetName());
399*b1cdbd2cSJim Jagielski 
400*b1cdbd2cSJim Jagielski     return aResult;
401*b1cdbd2cSJim Jagielski }
402*b1cdbd2cSJim Jagielski 
SwUndoNumruleDelete(const SwNumRule & rRule,SwDoc * _pDoc)403*b1cdbd2cSJim Jagielski SwUndoNumruleDelete::SwUndoNumruleDelete(const SwNumRule & rRule,
404*b1cdbd2cSJim Jagielski                                          SwDoc * _pDoc)
405*b1cdbd2cSJim Jagielski     : SwUndo(UNDO_NUMRULE_DELETE), aOld(rRule), pDoc(_pDoc)
406*b1cdbd2cSJim Jagielski {
407*b1cdbd2cSJim Jagielski }
408*b1cdbd2cSJim Jagielski 
UndoImpl(::sw::UndoRedoContext &)409*b1cdbd2cSJim Jagielski void SwUndoNumruleDelete::UndoImpl(::sw::UndoRedoContext &)
410*b1cdbd2cSJim Jagielski {
411*b1cdbd2cSJim Jagielski     pDoc->MakeNumRule(aOld.GetName(), &aOld, sal_True);
412*b1cdbd2cSJim Jagielski }
413*b1cdbd2cSJim Jagielski 
RedoImpl(::sw::UndoRedoContext &)414*b1cdbd2cSJim Jagielski void SwUndoNumruleDelete::RedoImpl(::sw::UndoRedoContext &)
415*b1cdbd2cSJim Jagielski {
416*b1cdbd2cSJim Jagielski     pDoc->DelNumRule(aOld.GetName(), sal_True);
417*b1cdbd2cSJim Jagielski }
418*b1cdbd2cSJim Jagielski 
GetRewriter() const419*b1cdbd2cSJim Jagielski SwRewriter SwUndoNumruleDelete::GetRewriter() const
420*b1cdbd2cSJim Jagielski {
421*b1cdbd2cSJim Jagielski     SwRewriter aResult;
422*b1cdbd2cSJim Jagielski 
423*b1cdbd2cSJim Jagielski     aResult.AddRule(UNDO_ARG1, aOld.GetName());
424*b1cdbd2cSJim Jagielski 
425*b1cdbd2cSJim Jagielski     return aResult;
426*b1cdbd2cSJim Jagielski }
427*b1cdbd2cSJim Jagielski 
SwUndoNumruleRename(const String & _aOldName,const String & _aNewName,SwDoc * _pDoc)428*b1cdbd2cSJim Jagielski SwUndoNumruleRename::SwUndoNumruleRename(const String & _aOldName,
429*b1cdbd2cSJim Jagielski                                          const String & _aNewName,
430*b1cdbd2cSJim Jagielski                                          SwDoc * _pDoc)
431*b1cdbd2cSJim Jagielski     : SwUndo(UNDO_NUMRULE_RENAME), aOldName(_aOldName), aNewName(_aNewName),
432*b1cdbd2cSJim Jagielski       pDoc(_pDoc)
433*b1cdbd2cSJim Jagielski {
434*b1cdbd2cSJim Jagielski }
435*b1cdbd2cSJim Jagielski 
UndoImpl(::sw::UndoRedoContext &)436*b1cdbd2cSJim Jagielski void SwUndoNumruleRename::UndoImpl(::sw::UndoRedoContext &)
437*b1cdbd2cSJim Jagielski {
438*b1cdbd2cSJim Jagielski     pDoc->RenameNumRule(aNewName, aOldName, sal_True);
439*b1cdbd2cSJim Jagielski }
440*b1cdbd2cSJim Jagielski 
RedoImpl(::sw::UndoRedoContext &)441*b1cdbd2cSJim Jagielski void SwUndoNumruleRename::RedoImpl(::sw::UndoRedoContext &)
442*b1cdbd2cSJim Jagielski {
443*b1cdbd2cSJim Jagielski     pDoc->RenameNumRule(aOldName, aNewName, sal_True);
444*b1cdbd2cSJim Jagielski }
445*b1cdbd2cSJim Jagielski 
GetRewriter() const446*b1cdbd2cSJim Jagielski SwRewriter SwUndoNumruleRename::GetRewriter() const
447*b1cdbd2cSJim Jagielski {
448*b1cdbd2cSJim Jagielski     SwRewriter aRewriter;
449*b1cdbd2cSJim Jagielski 
450*b1cdbd2cSJim Jagielski     aRewriter.AddRule(UNDO_ARG1, aOldName);
451*b1cdbd2cSJim Jagielski     aRewriter.AddRule(UNDO_ARG2, SW_RES(STR_YIELDS));
452*b1cdbd2cSJim Jagielski     aRewriter.AddRule(UNDO_ARG3, aNewName);
453*b1cdbd2cSJim Jagielski 
454*b1cdbd2cSJim Jagielski     return aRewriter;
455*b1cdbd2cSJim Jagielski }
456