LibreOffice Module sc (master) 1
XclExpChangeTrack.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#pragma once
21
22#include <memory>
23#include <stack>
24#include <tools/datetime.hxx>
25#include <chgtrack.hxx>
26#include <document.hxx>
27#include "xelink.hxx"
28#include "xestring.hxx"
29#include "excrecds.hxx"
30#include "xlformula.hxx"
31#include "xllink.hxx"
32#include "xeformula.hxx"
33
34class ExcXmlRecord : public ExcRecord
35{
36public:
37 virtual std::size_t GetLen() const override;
38 virtual sal_uInt16 GetNum() const override;
39 virtual void Save( XclExpStream& rStrm ) override;
40};
41
42// XclExpUserBView - one UserBView record for each user
43
45{
46private:
49
50 virtual void SaveCont( XclExpStream& rStrm ) override;
51
52public:
53 XclExpUserBView( const OUString& rUsername, const sal_uInt8* pGUID );
54
55 const sal_uInt8* GetGUID() const { return aGUID; }
56
57 virtual sal_uInt16 GetNum() const override;
58 virtual std::size_t GetLen() const override;
59};
60
61// XclExpUserBViewList - list of UserBView records
62
64{
65private:
66 std::vector<XclExpUserBView> aViews;
67
68public:
69
70 typedef std::vector<XclExpUserBView>::const_iterator const_iterator;
71
72 XclExpUserBViewList( const ScChangeTrack& rChangeTrack );
73 virtual ~XclExpUserBViewList() override;
74
75 const_iterator cbegin () { return aViews.cbegin(); }
76 const_iterator cend () { return aViews.cend(); }
77
78 virtual void Save( XclExpStream& rStrm ) override;
79};
80
81// XclExpUsersViewBegin - begin of view block (one per sheet)
82
84{
85private:
87 sal_uInt32 nCurrTab;
88
89 virtual void SaveCont( XclExpStream& rStrm ) override;
90
91public:
92 XclExpUsersViewBegin( const sal_uInt8* pGUID, sal_uInt32 nTab );
93 virtual sal_uInt16 GetNum() const override;
94 virtual std::size_t GetLen() const override;
95};
96
97// XclExpUsersViewEnd - end of view block (one per sheet)
98
100{
101private:
102 virtual void SaveCont( XclExpStream& rStrm ) override;
103
104public:
105 virtual sal_uInt16 GetNum() const override;
106 virtual std::size_t GetLen() const override;
107};
108
109// dummy record for "User Names" stream
110
112{
113private:
114 virtual void SaveCont( XclExpStream& rStrm ) override;
115
116public:
117 virtual sal_uInt16 GetNum() const override;
118 virtual std::size_t GetLen() const override;
119};
120
121// dummy record for "User Names" stream
122
124{
125private:
126 virtual void SaveCont( XclExpStream& rStrm ) override;
127
128public:
129 virtual sal_uInt16 GetNum() const override;
130 virtual std::size_t GetLen() const override;
131};
132
133// dummy record for "User Names" stream
134
136{
137private:
138 virtual void SaveCont( XclExpStream& rStrm ) override;
139
140public:
141 virtual sal_uInt16 GetNum() const override;
142 virtual std::size_t GetLen() const override;
143};
144
145// dummy record for "User Names" stream
146
148{
149private:
150 virtual void SaveCont( XclExpStream& rStrm ) override;
151
152public:
153 virtual sal_uInt16 GetNum() const override;
154 virtual std::size_t GetLen() const override;
155};
156
157// dummy record without content
158
160{
161private:
162 sal_uInt16 nRecNum;
163
164public:
165 XclExpChTrEmpty( sal_uInt16 nNum ) : nRecNum( nNum ) {}
166 virtual ~XclExpChTrEmpty() override;
167
168 virtual sal_uInt16 GetNum() const override;
169 virtual std::size_t GetLen() const override;
170};
171
172// dummy record for "Revision Log" stream
173
175{
176private:
177 virtual void SaveCont( XclExpStream& rStrm ) override;
178
179public:
180 virtual ~XclExpChTr0x0195() override;
181
182 virtual sal_uInt16 GetNum() const override;
183 virtual std::size_t GetLen() const override;
184};
185
186// dummy record for "Revision Log" stream
187
189{
190private:
193
194 virtual void SaveCont( XclExpStream& rStrm ) override;
195
196public:
197 inline XclExpChTr0x0194( const ScChangeTrack& rChangeTrack );
198 virtual ~XclExpChTr0x0194() override;
199
200 virtual sal_uInt16 GetNum() const override;
201 virtual std::size_t GetLen() const override;
202};
203
205 sUsername( rChangeTrack.GetUser() ),
206 aDateTime( rChangeTrack.GetFixDateTime() )
207{
208}
209
210// XclExpChTrHeader - header record, includes action count
211
213{
214private:
216 sal_uInt32 nCount;
217
218 virtual void SaveCont( XclExpStream& rStrm ) override;
219
220public:
222 virtual ~XclExpChTrHeader() override;
223
224 void SetGUID( const sal_uInt8* pGUID ) { memcpy( aGUID, pGUID, 16 ); }
225 void SetCount( sal_uInt32 nNew ) { nCount = nNew; }
226
227 virtual sal_uInt16 GetNum() const override;
228 virtual std::size_t GetLen() const override;
229
230 virtual void SaveXml( XclExpXmlStream& rStrm ) override;
231};
232
234{
236public:
237 void SetGUID( const sal_uInt8* pGUID );
238
239 virtual void SaveXml( XclExpXmlStream& rStrm ) override;
240};
241
243class XclExpChTrAction;
244
246{
247 OUString maUserName;
250 sal_Int32 mnLogNumber;
251 sal_uInt32 mnMinAction;
252 sal_uInt32 mnMaxAction;
253
254 std::vector<sal_uInt16> maTabBuffer;
255 std::vector<std::unique_ptr<XclExpChTrAction>> maActions;
256
257public:
259 OUString aUserName, const DateTime& rDateTime, const sal_uInt8* pGUID,
260 sal_Int32 nLogNumber, const XclExpChTrTabIdBuffer& rBuf );
261
262 virtual void SaveXml( XclExpXmlStream& rStrm ) override;
263
264 void AppendAction( std::unique_ptr<XclExpChTrAction> pAction );
265};
266
267// XclExpChTrInfo - header of action group of a user
268
270{
271private:
275
276 virtual void SaveCont( XclExpStream& rStrm ) override;
277
278public:
279 XclExpChTrInfo( const OUString& rUsername, const DateTime& rDateTime,
280 const sal_uInt8* pGUID );
281
282 virtual ~XclExpChTrInfo() override;
283
284 virtual sal_uInt16 GetNum() const override;
285 virtual std::size_t GetLen() const override;
286};
287
288// XclExpChTrTabIdBuffer - buffer for tab id's
289
291{
292private:
293 std::unique_ptr<sal_uInt16[]>
295 sal_uInt16* pLast;
296 sal_uInt16 nBufSize;
297 sal_uInt16 nLastId;
298
299public:
300 XclExpChTrTabIdBuffer( sal_uInt16 nCount );
303
304 void InitFill( sal_uInt16 nIndex );
305 void InitFillup();
306
307 sal_uInt16 GetId( sal_uInt16 nIndex ) const;
308 bool HasId( sal_uInt16 nIndex ) const;
309 void Remove();
310
311 sal_uInt16 GetBufferCount() const
312 { return static_cast< sal_uInt16 >( (pLast - pBuffer.get()) + 1 ); }
313 void GetBufferCopy( sal_uInt16* pDest ) const
314 { memcpy( pDest, pBuffer.get(), sizeof(sal_uInt16) * GetBufferCount() ); }
315};
316
317// XclExpChTrTabId - tab id record
318
320{
321private:
322 std::unique_ptr<sal_uInt16[]> pBuffer;
323 sal_uInt16 nTabCount;
324
325 void Clear() { pBuffer.reset(); }
326
327 virtual void SaveCont( XclExpStream& rStrm ) override;
328
329public:
330 XclExpChTrTabId( sal_uInt16 nCount ) : nTabCount( nCount ) {}
331 XclExpChTrTabId( const XclExpChTrTabIdBuffer& rBuffer );
332 virtual ~XclExpChTrTabId() override;
333
334 void Copy( const XclExpChTrTabIdBuffer& rBuffer );
335
336 virtual sal_uInt16 GetNum() const override;
337 virtual std::size_t GetLen() const override;
338};
339
340// XclExpChTrAction - base class for action records
341
343{
344private:
345 OUString sUsername;
347 sal_uInt32 nIndex; // action number
348 std::unique_ptr<XclExpChTrAction>
349 pAddAction; // additional record for this action
351
352protected:
353 const XclExpTabInfo& rTabInfo; // for table num export (sc num -> xcl num)
354 const XclExpChTrTabIdBuffer& rIdBuffer; // for table num export (xcl num -> tab id)
355 sal_uInt32 nLength; // this is not the record size
356 sal_uInt16 nOpCode; // EXC_CHTR_OP_***
358
359 XclExpChTrAction( const XclExpChTrAction& rCopy );
360
361 void SetAddAction( XclExpChTrAction* pAction );
363 const ScChangeAction& rAction,
364 const XclExpRoot& rRoot,
365 const ScChangeTrack& rChangeTrack );
366
367 static inline void Write2DAddress( XclExpStream& rStrm, const ScAddress& rAddress );
368 static inline void Write2DRange( XclExpStream& rStrm, const ScRange& rRange );
369 inline sal_uInt16 GetTabId( SCTAB nTabId ) const;
370 inline bool IsDeletedTab( SCTAB nTab ) const;
371 inline void WriteTabId( XclExpStream& rStrm, SCTAB nTabId ) const;
372
373 // save header data, call SaveActionData()
374 virtual void SaveCont( XclExpStream& rStrm ) override;
375 static std::size_t GetHeaderByteCount() { return 12; }
376
377 // override to save action data without header, called by SaveCont()
378 virtual void SaveActionData( XclExpStream& rStrm ) const = 0;
379 // override to get action size without header, called by GetLen()
380 virtual std::size_t GetActionByteCount() const = 0;
381
382 // true if export would attempt to get the tab id of an unknown tab
383 virtual bool UsesDeletedTab() const = 0;
384
385 // do something before writing the record
386 virtual void PrepareSaveAction( XclExpStream& rStrm ) const;
387 // do something after writing the record
388 virtual void CompleteSaveAction( XclExpStream& rStrm ) const;
389
390 bool GetAccepted() const { return bAccepted; }
391
392public:
394 const ScChangeAction& rAction,
395 const XclExpRoot& rRoot,
396 const XclExpChTrTabIdBuffer& rTabIdBuffer,
397 sal_uInt16 nNewOpCode = EXC_CHTR_OP_UNKNOWN );
398 virtual ~XclExpChTrAction() override;
399
400 const OUString& GetUsername() const { return sUsername; }
401 const DateTime& GetDateTime() const { return aDateTime; }
403 bool ForceInfoRecord() const { return bForceInfo; }
404
405 // set own index & return new index
406 // could override to use more indexes per action
407 void SetIndex( sal_uInt32& rIndex );
408
409 virtual void Save( XclExpStream& rStrm ) override;
410 virtual std::size_t GetLen() const override;
411
413 sal_uInt32 GetActionNumber() const { return nIndex; }
414};
415
416inline void XclExpChTrAction::Write2DAddress( XclExpStream& rStrm, const ScAddress& rAddress )
417{
418 rStrm << static_cast<sal_uInt16>(rAddress.Row())
419 << static_cast<sal_uInt16>(rAddress.Col());
420}
421
422inline void XclExpChTrAction::Write2DRange( XclExpStream& rStrm, const ScRange& rRange )
423{
424 rStrm << static_cast<sal_uInt16>(rRange.aStart.Row())
425 << static_cast<sal_uInt16>(rRange.aEnd.Row())
426 << static_cast<sal_uInt16>(rRange.aStart.Col())
427 << static_cast<sal_uInt16>(rRange.aEnd.Col());
428}
429
431{
432 return rTabInfo.GetXclTab(nTab) == EXC_TAB_DELETED;
433}
434
435inline sal_uInt16 XclExpChTrAction::GetTabId( SCTAB nTab ) const
436{
437 return rIdBuffer.GetId( rTabInfo.GetXclTab( nTab ) );
438}
439
440inline void XclExpChTrAction::WriteTabId( XclExpStream& rStrm, SCTAB nTab ) const
441{
442 rStrm << GetTabId( nTab );
443}
444
445// XclExpChTrData - cell content itself
446
448{
449 std::unique_ptr<XclExpString> pString;
454 double fValue;
455 sal_Int32 nRKValue;
456 sal_uInt16 nType;
457 std::size_t nSize;
458
461 void Clear();
462
463 void WriteFormula(
464 XclExpStream& rStrm,
465 const XclExpChTrTabIdBuffer& rTabIdBuffer );
466 void Write(
467 XclExpStream& rStrm,
468 const XclExpChTrTabIdBuffer& rTabIdBuffer );
469
470 bool UsesDeletedTab(const XclExpChTrTabIdBuffer& rTabIdBuffer) const;
471};
472
473// XclExpChTrCellContent - changed cell content
474
475class XclExpChTrCellContent final : public XclExpChTrAction, protected XclExpRoot
476{
477 std::unique_ptr<XclExpChTrData> pOldData;
478 std::unique_ptr<XclExpChTrData> pNewData;
479 sal_uInt16 nOldLength; // this is not the record size
481
482 static void MakeEmptyChTrData( std::unique_ptr<XclExpChTrData>& rpData );
483
484 void GetCellData(
485 const XclExpRoot& rRoot, const ScCellValue& rScCell, std::unique_ptr<XclExpChTrData>& rpData,
486 sal_uInt32& rXclLength1, sal_uInt16& rXclLength2 );
487
488 virtual bool UsesDeletedTab() const override;
489
490 virtual void SaveActionData( XclExpStream& rStrm ) const override;
491
492public:
494 const ScChangeActionContent& rAction,
495 const XclExpRoot& rRoot,
496 const XclExpChTrTabIdBuffer& rTabIdBuffer );
497 virtual ~XclExpChTrCellContent() override;
498
499 virtual sal_uInt16 GetNum() const override;
500 virtual std::size_t GetActionByteCount() const override;
501
502 virtual void SaveXml( XclExpXmlStream& rStrm ) override;
503};
504
505// XclExpChTrInsert - insert/delete columns/rows
506
508{
510
511protected:
513
514 XclExpChTrInsert( const XclExpChTrInsert& rCopy );
515
516 virtual bool UsesDeletedTab() const override;
517
518 virtual void SaveActionData( XclExpStream& rStrm ) const override;
519 virtual void PrepareSaveAction( XclExpStream& rStrm ) const override;
520 virtual void CompleteSaveAction( XclExpStream& rStrm ) const override;
521
522public:
524 const ScChangeAction& rAction,
525 const XclExpRoot& rRoot,
526 const XclExpChTrTabIdBuffer& rTabIdBuffer,
527 const ScChangeTrack& rChangeTrack );
528 virtual ~XclExpChTrInsert() override;
529
530 virtual sal_uInt16 GetNum() const override;
531 virtual std::size_t GetActionByteCount() const override;
532
533 virtual void SaveXml( XclExpXmlStream& rStrm ) override;
534};
535
536// XclExpChTrInsertTab - insert table
537
539{
540private:
542
543protected:
544
545 virtual bool UsesDeletedTab() const override;
546
547 virtual void SaveActionData( XclExpStream& rStrm ) const override;
548
549public:
551 const ScChangeAction& rAction,
552 const XclExpRoot& rRoot,
553 const XclExpChTrTabIdBuffer& rTabIdBuffer );
554 virtual ~XclExpChTrInsertTab() override;
555
556 virtual sal_uInt16 GetNum() const override;
557 virtual std::size_t GetActionByteCount() const override;
558
559 virtual void SaveXml( XclExpXmlStream& rStrm ) override;
560};
561
562// XclExpChTrMoveRange - move cell range
563
565{
568
569 virtual bool UsesDeletedTab() const override;
570
571 virtual void SaveActionData( XclExpStream& rStrm ) const override;
572 virtual void PrepareSaveAction( XclExpStream& rStrm ) const override;
573 virtual void CompleteSaveAction( XclExpStream& rStrm ) const override;
574
575public:
577 const ScChangeActionMove& rAction,
578 const XclExpRoot& rRoot,
579 const XclExpChTrTabIdBuffer& rTabIdBuffer,
580 const ScChangeTrack& rChangeTrack );
581 virtual ~XclExpChTrMoveRange() override;
582
583 virtual sal_uInt16 GetNum() const override;
584 virtual std::size_t GetActionByteCount() const override;
585
586 virtual void SaveXml( XclExpXmlStream& rStrm ) override;
587};
588
589// XclExpChTr0x019A - additional data for delete action
590
592{
593protected:
594 virtual void SaveActionData( XclExpStream& rStrm ) const override;
595
596public:
597 XclExpChTr0x014A( const XclExpChTrInsert& rAction );
598 virtual ~XclExpChTr0x014A() override;
599
600 virtual sal_uInt16 GetNum() const override;
601 virtual std::size_t GetActionByteCount() const override;
602
603 virtual void SaveXml( XclExpXmlStream& rStrm ) override;
604};
605
606// XclExpChangeTrack - exports the "Revision Log" stream
607
609{
610 typedef std::vector<std::unique_ptr<ExcRecord>> RecListType;
611 RecListType maRecList; // list of "Revision Log" stream records
612 std::stack<XclExpChTrAction*> aActionStack;
614 std::vector<std::unique_ptr<XclExpChTrTabIdBuffer>>
616
617 ScDocumentUniquePtr xTempDoc; // empty document
618
620 void PushActionRecord( const ScChangeAction& rAction );
621
623
624public:
625 XclExpChangeTrack( const XclExpRoot& rRoot );
626 virtual ~XclExpChangeTrack() override;
627
628 void Write();
629 void WriteXml( XclExpXmlStream& rStrm );
630};
631
632/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
virtual sal_uInt16 GetNum() const override
virtual void Save(XclExpStream &rStrm) override
Writes the record header and calls WriteBody().
virtual std::size_t GetLen() const override
SCROW Row() const
Definition: address.hxx:274
SCCOL Col() const
Definition: address.hxx:279
ScAddress aEnd
Definition: address.hxx:498
ScAddress aStart
Definition: address.hxx:497
virtual ~XclExpChTr0x014A() override
virtual void SaveActionData(XclExpStream &rStrm) const override
virtual std::size_t GetActionByteCount() const override
XclExpChTr0x014A(const XclExpChTrInsert &rAction)
virtual void SaveXml(XclExpXmlStream &rStrm) override
virtual sal_uInt16 GetNum() const override
virtual sal_uInt16 GetNum() const override
virtual void SaveCont(XclExpStream &rStrm) override
virtual std::size_t GetLen() const override
virtual sal_uInt16 GetNum() const override
virtual void SaveCont(XclExpStream &rStrm) override
virtual std::size_t GetLen() const override
virtual std::size_t GetLen() const override
XclExpChTr0x0194(const ScChangeTrack &rChangeTrack)
virtual ~XclExpChTr0x0194() override
virtual sal_uInt16 GetNum() const override
virtual void SaveCont(XclExpStream &rStrm) override
virtual std::size_t GetLen() const override
virtual void SaveCont(XclExpStream &rStrm) override
virtual ~XclExpChTr0x0195() override
virtual sal_uInt16 GetNum() const override
virtual void SaveCont(XclExpStream &rStrm) override
virtual sal_uInt16 GetNum() const override
virtual std::size_t GetLen() const override
virtual void SaveCont(XclExpStream &rStrm) override
virtual std::size_t GetLen() const override
virtual sal_uInt16 GetNum() const override
virtual void PrepareSaveAction(XclExpStream &rStrm) const
bool GetAccepted() const
bool ForceInfoRecord() const
virtual ~XclExpChTrAction() override
const OUString & GetUsername() const
void SetIndex(sal_uInt32 &rIndex)
const XclExpChTrTabIdBuffer & GetTabIdBuffer() const
std::unique_ptr< XclExpChTrAction > pAddAction
void WriteTabId(XclExpStream &rStrm, SCTAB nTabId) const
sal_uInt16 GetTabId(SCTAB nTabId) const
virtual void SaveActionData(XclExpStream &rStrm) const =0
const XclExpTabInfo & rTabInfo
virtual std::size_t GetActionByteCount() const =0
void AddDependentContents(const ScChangeAction &rAction, const XclExpRoot &rRoot, const ScChangeTrack &rChangeTrack)
virtual bool UsesDeletedTab() const =0
virtual std::size_t GetLen() const override
static std::size_t GetHeaderByteCount()
void SetAddAction(XclExpChTrAction *pAction)
XclExpChTrAction(const XclExpChTrAction &rCopy)
virtual void CompleteSaveAction(XclExpStream &rStrm) const
const XclExpChTrTabIdBuffer & rIdBuffer
virtual void SaveCont(XclExpStream &rStrm) override
static void Write2DRange(XclExpStream &rStrm, const ScRange &rRange)
sal_uInt32 GetActionNumber() const
bool IsDeletedTab(SCTAB nTab) const
const DateTime & GetDateTime() const
virtual void Save(XclExpStream &rStrm) override
Writes the record header and calls WriteBody().
static void Write2DAddress(XclExpStream &rStrm, const ScAddress &rAddress)
XclExpChTrAction * GetAddAction()
void GetCellData(const XclExpRoot &rRoot, const ScCellValue &rScCell, std::unique_ptr< XclExpChTrData > &rpData, sal_uInt32 &rXclLength1, sal_uInt16 &rXclLength2)
std::unique_ptr< XclExpChTrData > pOldData
virtual ~XclExpChTrCellContent() override
virtual std::size_t GetActionByteCount() const override
virtual sal_uInt16 GetNum() const override
virtual void SaveActionData(XclExpStream &rStrm) const override
static void MakeEmptyChTrData(std::unique_ptr< XclExpChTrData > &rpData)
std::unique_ptr< XclExpChTrData > pNewData
XclExpChTrCellContent(const ScChangeActionContent &rAction, const XclExpRoot &rRoot, const XclExpChTrTabIdBuffer &rTabIdBuffer)
virtual bool UsesDeletedTab() const override
virtual void SaveXml(XclExpXmlStream &rStrm) override
virtual sal_uInt16 GetNum() const override
virtual std::size_t GetLen() const override
XclExpChTrEmpty(sal_uInt16 nNum)
virtual ~XclExpChTrEmpty() override
virtual sal_uInt16 GetNum() const override
void SetCount(sal_uInt32 nNew)
virtual std::size_t GetLen() const override
virtual void SaveXml(XclExpXmlStream &rStrm) override
virtual void SaveCont(XclExpStream &rStrm) override
virtual ~XclExpChTrHeader() override
void SetGUID(const sal_uInt8 *pGUID)
virtual std::size_t GetLen() const override
virtual sal_uInt16 GetNum() const override
XclExpChTrInfo(const OUString &rUsername, const DateTime &rDateTime, const sal_uInt8 *pGUID)
virtual ~XclExpChTrInfo() override
virtual void SaveCont(XclExpStream &rStrm) override
sal_uInt8 aGUID[16]
XclExpString sUsername
virtual bool UsesDeletedTab() const override
virtual void SaveActionData(XclExpStream &rStrm) const override
virtual ~XclExpChTrInsertTab() override
virtual sal_uInt16 GetNum() const override
virtual std::size_t GetActionByteCount() const override
virtual void SaveXml(XclExpXmlStream &rStrm) override
XclExpChTrInsertTab(const ScChangeAction &rAction, const XclExpRoot &rRoot, const XclExpChTrTabIdBuffer &rTabIdBuffer)
virtual void SaveActionData(XclExpStream &rStrm) const override
virtual void SaveXml(XclExpXmlStream &rStrm) override
virtual bool UsesDeletedTab() const override
XclExpChTrInsert(const XclExpChTrInsert &rCopy)
virtual ~XclExpChTrInsert() override
virtual sal_uInt16 GetNum() const override
virtual void CompleteSaveAction(XclExpStream &rStrm) const override
virtual void PrepareSaveAction(XclExpStream &rStrm) const override
virtual std::size_t GetActionByteCount() const override
virtual std::size_t GetActionByteCount() const override
virtual sal_uInt16 GetNum() const override
virtual void PrepareSaveAction(XclExpStream &rStrm) const override
XclExpChTrMoveRange(const ScChangeActionMove &rAction, const XclExpRoot &rRoot, const XclExpChTrTabIdBuffer &rTabIdBuffer, const ScChangeTrack &rChangeTrack)
virtual void CompleteSaveAction(XclExpStream &rStrm) const override
virtual void SaveActionData(XclExpStream &rStrm) const override
virtual bool UsesDeletedTab() const override
virtual void SaveXml(XclExpXmlStream &rStrm) override
virtual ~XclExpChTrMoveRange() override
XclExpChTrTabIdBuffer(sal_uInt16 nCount)
bool HasId(sal_uInt16 nIndex) const
sal_uInt16 GetBufferCount() const
void InitFill(sal_uInt16 nIndex)
void GetBufferCopy(sal_uInt16 *pDest) const
sal_uInt16 GetId(sal_uInt16 nIndex) const
std::unique_ptr< sal_uInt16[]> pBuffer
virtual void SaveCont(XclExpStream &rStrm) override
virtual ~XclExpChTrTabId() override
virtual sal_uInt16 GetNum() const override
virtual std::size_t GetLen() const override
void Copy(const XclExpChTrTabIdBuffer &rBuffer)
std::unique_ptr< sal_uInt16[]> pBuffer
XclExpChTrTabId(sal_uInt16 nCount)
void PushActionRecord(const ScChangeAction &rAction)
XclExpChTrTabIdBuffer * pTabIdBuffer
virtual ~XclExpChangeTrack() override
std::stack< XclExpChTrAction * > aActionStack
void WriteXml(XclExpXmlStream &rStrm)
XclExpChangeTrack(const XclExpRoot &rRoot)
ScDocumentUniquePtr xTempDoc
std::vector< std::unique_ptr< XclExpChTrTabIdBuffer > > maBuffers
ScChangeTrack * CreateTempChangeTrack()
std::vector< std::unique_ptr< ExcRecord > > RecListType
Access to global data from other classes.
Definition: xeroot.hxx:113
This class is used to export Excel record streams.
Definition: xestream.hxx:73
This class stores an unformatted or formatted string for Excel export.
Definition: xestring.hxx:48
Stores the correct Excel sheet index for each Calc sheet.
Definition: xelink.hxx:62
sal_uInt16 GetXclTab(SCTAB nScTab) const
Returns the Excel sheet index for a given Calc sheet.
Definition: xelink.cxx:814
const_iterator cbegin()
virtual ~XclExpUserBViewList() override
const_iterator cend()
XclExpUserBViewList(const ScChangeTrack &rChangeTrack)
virtual void Save(XclExpStream &rStrm) override
Writes the record header and calls WriteBody().
std::vector< XclExpUserBView >::const_iterator const_iterator
std::vector< XclExpUserBView > aViews
XclExpString sUsername
sal_uInt8 aGUID[16]
const sal_uInt8 * GetGUID() const
XclExpUserBView(const OUString &rUsername, const sal_uInt8 *pGUID)
virtual std::size_t GetLen() const override
virtual sal_uInt16 GetNum() const override
virtual void SaveCont(XclExpStream &rStrm) override
XclExpUsersViewBegin(const sal_uInt8 *pGUID, sal_uInt32 nTab)
virtual void SaveCont(XclExpStream &rStrm) override
virtual sal_uInt16 GetNum() const override
virtual std::size_t GetLen() const override
virtual void SaveCont(XclExpStream &rStrm) override
virtual sal_uInt16 GetNum() const override
virtual std::size_t GetLen() const override
std::vector< std::unique_ptr< XclExpChTrAction > > maActions
void AppendAction(std::unique_ptr< XclExpChTrAction > pAction)
std::vector< sal_uInt16 > maTabBuffer
virtual void SaveXml(XclExpXmlStream &rStrm) override
XclExpXmlChTrHeader(OUString aUserName, const DateTime &rDateTime, const sal_uInt8 *pGUID, sal_Int32 nLogNumber, const XclExpChTrTabIdBuffer &rBuf)
void SetGUID(const sal_uInt8 *pGUID)
virtual void SaveXml(XclExpXmlStream &rStrm) override
int nCount
std::unique_ptr< ScDocument, o3tl::default_delete< ScDocument > > ScDocumentUniquePtr
Definition: document.hxx:2720
#define EXC_CHTR_OP_UNKNOWN
Definition: excdefs.hxx:76
void SvStream & rStrm
Store arbitrary cell value of any kind.
Definition: cellvalue.hxx:32
XclTokenArrayRef mxTokArr
XclExpStringRef mpFormattedString
bool UsesDeletedTab(const XclExpChTrTabIdBuffer &rTabIdBuffer) const
void Write(XclExpStream &rStrm, const XclExpChTrTabIdBuffer &rTabIdBuffer)
std::unique_ptr< XclExpString > pString
void WriteFormula(XclExpStream &rStrm, const XclExpChTrTabIdBuffer &rTabIdBuffer)
XclExpRefLog maRefLog
const ScFormulaCell * mpFormulaCell
unsigned char sal_uInt8
sal_Int16 SCTAB
Definition: types.hxx:22
::std::vector< XclExpRefLogEntry > XclExpRefLog
Vector containing a log for all external references in a formula, used i.e.
Definition: xeformula.hxx:43
std::shared_ptr< XclExpString > XclExpStringRef
Definition: xeroot.hxx:35
std::shared_ptr< XclTokenArray > XclTokenArrayRef
Definition: xlformula.hxx:416