|
 |
f085be |
From 766d54154f5225c9dc91ed8e4863d3fca1bd2b90 Mon Sep 17 00:00:00 2001
|
|
 |
f085be |
From: Kohei Yoshida <kohei.yoshida@collabora.com>
|
|
 |
f085be |
Date: Thu, 17 Jul 2014 20:20:16 -0400
|
|
 |
f085be |
Subject: [PATCH 041/137] bnc#885548: Adjust xlsx export of revisions to get it
|
|
 |
f085be |
to work in Excel.
|
|
 |
f085be |
|
|
 |
f085be |
(cherry picked from commit fa44673e154ed4fb0b518b8850e2f6e4b9069531)
|
|
 |
f085be |
Signed-off-by: Andras Timar <andras.timar@collabora.com>
|
|
 |
f085be |
|
|
 |
f085be |
Conflicts:
|
|
 |
f085be |
sc/source/filter/inc/XclExpChangeTrack.hxx
|
|
 |
f085be |
sc/source/filter/xcl97/XclExpChangeTrack.cxx
|
|
 |
f085be |
sc/inc/cellvalue.hxx
|
|
 |
f085be |
sc/source/core/data/cellvalue.cxx
|
|
 |
f085be |
|
|
 |
f085be |
Change-Id: I0058d9ddfea545390e615a3030171a366e333c85
|
|
 |
f085be |
(cherry picked from commit ca20a53315eaea218c693e0de2026eb6f957331f)
|
|
 |
f085be |
Signed-off-by: Andras Timar <andras.timar@collabora.com>
|
|
 |
f085be |
---
|
|
 |
f085be |
sc/inc/cellvalue.hxx | 1 +
|
|
 |
f085be |
sc/source/core/data/cellvalue.cxx | 7 +
|
|
 |
f085be |
sc/source/filter/excel/xestream.cxx | 7 +
|
|
 |
f085be |
sc/source/filter/inc/XclExpChangeTrack.hxx | 84 ++++---
|
|
 |
f085be |
sc/source/filter/inc/xestream.hxx | 10 +
|
|
 |
f085be |
sc/source/filter/xcl97/XclExpChangeTrack.cxx | 346 +++++++++++++++++----------
|
|
 |
f085be |
6 files changed, 299 insertions(+), 156 deletions(-)
|
|
 |
f085be |
|
|
 |
f085be |
diff --git a/sc/inc/cellvalue.hxx b/sc/inc/cellvalue.hxx
|
|
 |
f085be |
index c2606b5..8e2e64a 100644
|
|
 |
f085be |
--- a/sc/inc/cellvalue.hxx
|
|
 |
f085be |
+++ b/sc/inc/cellvalue.hxx
|
|
 |
f085be |
@@ -53,6 +53,7 @@ struct SC_DLLPUBLIC ScCellValue
|
|
 |
f085be |
void set( double fValue );
|
|
 |
f085be |
void set( const svl::SharedString& rStr );
|
|
 |
f085be |
void set( const EditTextObject& rEditText );
|
|
 |
f085be |
+ void set( EditTextObject* pEditText );
|
|
 |
f085be |
void set( const ScFormulaCell& rFormula );
|
|
 |
f085be |
void set( ScFormulaCell* pFormula );
|
|
 |
f085be |
|
|
 |
f085be |
diff --git a/sc/source/core/data/cellvalue.cxx b/sc/source/core/data/cellvalue.cxx
|
|
 |
f085be |
index 12ef302..92298cf 100644
|
|
 |
f085be |
--- a/sc/source/core/data/cellvalue.cxx
|
|
 |
f085be |
+++ b/sc/source/core/data/cellvalue.cxx
|
|
 |
f085be |
@@ -248,6 +248,13 @@ void ScCellValue::set( const EditTextObject& rEditText )
|
|
 |
f085be |
mpEditText = rEditText.Clone();
|
|
 |
f085be |
}
|
|
 |
f085be |
|
|
 |
f085be |
+void ScCellValue::set( EditTextObject* pEditText )
|
|
 |
f085be |
+{
|
|
 |
f085be |
+ clear();
|
|
 |
f085be |
+ meType = CELLTYPE_EDIT;
|
|
 |
f085be |
+ mpEditText = pEditText;
|
|
 |
f085be |
+}
|
|
 |
f085be |
+
|
|
 |
f085be |
void ScCellValue::set( const ScFormulaCell& rFormula )
|
|
 |
f085be |
{
|
|
 |
f085be |
clear();
|
|
 |
f085be |
diff --git a/sc/source/filter/excel/xestream.cxx b/sc/source/filter/excel/xestream.cxx
|
|
 |
f085be |
index df08d2c..47dba9e 100644
|
|
 |
f085be |
--- a/sc/source/filter/excel/xestream.cxx
|
|
 |
f085be |
+++ b/sc/source/filter/excel/xestream.cxx
|
|
 |
f085be |
@@ -842,6 +842,13 @@ const char* XclXmlUtils::ToPsz( bool b )
|
|
 |
f085be |
return b ? "true" : "false";
|
|
 |
f085be |
}
|
|
 |
f085be |
|
|
 |
f085be |
+const char* XclXmlUtils::ToPsz10( bool b )
|
|
 |
f085be |
+{
|
|
 |
f085be |
+ // xlsx seems to use "1" or "0" for boolean values. I wonder it ever uses
|
|
 |
f085be |
+ // the "true" "false" variant.
|
|
 |
f085be |
+ return b ? "1" : "0";
|
|
 |
f085be |
+}
|
|
 |
f085be |
+
|
|
 |
f085be |
sax_fastparser::FSHelperPtr XclXmlUtils::WriteElement( sax_fastparser::FSHelperPtr pStream, sal_Int32 nElement, sal_Int32 nValue )
|
|
 |
f085be |
{
|
|
 |
f085be |
pStream->startElement( nElement, FSEND );
|
|
 |
f085be |
diff --git a/sc/source/filter/inc/XclExpChangeTrack.hxx b/sc/source/filter/inc/XclExpChangeTrack.hxx
|
|
 |
f085be |
index 6651a75..72b7066 100644
|
|
 |
f085be |
--- a/sc/source/filter/inc/XclExpChangeTrack.hxx
|
|
 |
f085be |
+++ b/sc/source/filter/inc/XclExpChangeTrack.hxx
|
|
 |
f085be |
@@ -29,7 +29,16 @@
|
|
 |
f085be |
#include "ftools.hxx"
|
|
 |
f085be |
#include "excrecds.hxx"
|
|
 |
f085be |
|
|
 |
f085be |
-//___________________________________________________________________
|
|
 |
f085be |
+#include <boost/ptr_container/ptr_vector.hpp>
|
|
 |
f085be |
+
|
|
 |
f085be |
+class ExcXmlRecord : public ExcRecord
|
|
 |
f085be |
+{
|
|
 |
f085be |
+public:
|
|
 |
f085be |
+ virtual sal_Size GetLen() const SAL_OVERRIDE;
|
|
 |
f085be |
+ virtual sal_uInt16 GetNum() const SAL_OVERRIDE;
|
|
 |
f085be |
+ virtual void Save( XclExpStream& rStrm ) SAL_OVERRIDE;
|
|
 |
f085be |
+};
|
|
 |
f085be |
+
|
|
 |
f085be |
// XclExpUserBView - one UserBView record for each user
|
|
 |
f085be |
|
|
 |
f085be |
class XclExpUserBView : public ExcRecord
|
|
 |
f085be |
@@ -238,42 +247,61 @@ public:
|
|
 |
f085be |
virtual void SaveXml( XclExpXmlStream& rStrm );
|
|
 |
f085be |
};
|
|
 |
f085be |
|
|
 |
f085be |
-//___________________________________________________________________
|
|
 |
f085be |
+class XclExpXmlChTrHeaders : public ExcXmlRecord
|
|
 |
f085be |
+{
|
|
 |
f085be |
+ sal_uInt8 maGUID[16];
|
|
 |
f085be |
+public:
|
|
 |
f085be |
+ void SetGUID( const sal_uInt8* pGUID );
|
|
 |
f085be |
+
|
|
 |
f085be |
+ virtual void SaveXml( XclExpXmlStream& rStrm ) SAL_OVERRIDE;
|
|
 |
f085be |
+};
|
|
 |
f085be |
+
|
|
 |
f085be |
+class XclExpChTrTabIdBuffer;
|
|
 |
f085be |
+class XclExpChTrAction;
|
|
 |
f085be |
+
|
|
 |
f085be |
+class XclExpXmlChTrHeader : public ExcXmlRecord
|
|
 |
f085be |
+{
|
|
 |
f085be |
+ OUString maUserName;
|
|
 |
f085be |
+ DateTime maDateTime;
|
|
 |
f085be |
+ sal_uInt8 maGUID[16];
|
|
 |
f085be |
+ sal_Int32 mnLogNumber;
|
|
 |
f085be |
+ sal_uInt32 mnMinAction;
|
|
 |
f085be |
+ sal_uInt32 mnMaxAction;
|
|
 |
f085be |
+
|
|
 |
f085be |
+ std::vector<sal_uInt16> maTabBuffer;
|
|
 |
f085be |
+ std::vector<XclExpChTrAction*> maActions;
|
|
 |
f085be |
+
|
|
 |
f085be |
+public:
|
|
 |
f085be |
+ XclExpXmlChTrHeader(
|
|
 |
f085be |
+ const OUString& rUserName, const DateTime& rDateTime, const sal_uInt8* pGUID,
|
|
 |
f085be |
+ sal_Int32 nLogNumber, const XclExpChTrTabIdBuffer& rBuf );
|
|
 |
f085be |
+
|
|
 |
f085be |
+ virtual void SaveXml( XclExpXmlStream& rStrm ) SAL_OVERRIDE;
|
|
 |
f085be |
+
|
|
 |
f085be |
+ void AppendAction( XclExpChTrAction* pAction );
|
|
 |
f085be |
+};
|
|
 |
f085be |
+
|
|
 |
f085be |
// XclExpChTrInfo - header of action group of a user
|
|
 |
f085be |
|
|
 |
f085be |
class XclExpChTrInfo : public ExcRecord
|
|
 |
f085be |
{
|
|
 |
f085be |
private:
|
|
 |
f085be |
XclExpString sUsername;
|
|
 |
f085be |
- sal_Int32 mnLogNumber;
|
|
 |
f085be |
DateTime aDateTime;
|
|
 |
f085be |
sal_uInt8 aGUID[ 16 ];
|
|
 |
f085be |
|
|
 |
f085be |
virtual void SaveCont( XclExpStream& rStrm );
|
|
 |
f085be |
|
|
 |
f085be |
public:
|
|
 |
f085be |
- inline XclExpChTrInfo(
|
|
 |
f085be |
- const OUString& rUsername,
|
|
 |
f085be |
- const DateTime& rDateTime,
|
|
 |
f085be |
- const sal_uInt8* pGUID,
|
|
 |
f085be |
- sal_Int32 nLogNumber );
|
|
 |
f085be |
+ XclExpChTrInfo( const OUString& rUsername, const DateTime& rDateTime,
|
|
 |
f085be |
+ const sal_uInt8* pGUID );
|
|
 |
f085be |
+
|
|
 |
f085be |
virtual ~XclExpChTrInfo();
|
|
 |
f085be |
|
|
 |
f085be |
virtual sal_uInt16 GetNum() const;
|
|
 |
f085be |
virtual sal_Size GetLen() const;
|
|
 |
f085be |
-
|
|
 |
f085be |
- virtual void SaveXml( XclExpXmlStream& rStrm );
|
|
 |
f085be |
};
|
|
 |
f085be |
|
|
 |
f085be |
-inline XclExpChTrInfo::XclExpChTrInfo( const OUString& rUsername, const DateTime& rDateTime, const sal_uInt8* pGUID, sal_Int32 nLogNumber ) :
|
|
 |
f085be |
- sUsername( rUsername ),
|
|
 |
f085be |
- mnLogNumber( nLogNumber ),
|
|
 |
f085be |
- aDateTime( rDateTime )
|
|
 |
f085be |
-{
|
|
 |
f085be |
- memcpy( aGUID, pGUID, 16 );
|
|
 |
f085be |
-}
|
|
 |
f085be |
-
|
|
 |
f085be |
-//___________________________________________________________________
|
|
 |
f085be |
// XclExpChTrTabIdBuffer - buffer for tab id's
|
|
 |
f085be |
|
|
 |
f085be |
class XclExpChTrTabIdBuffer
|
|
 |
f085be |
@@ -309,7 +337,6 @@ class XclExpChTrTabId : public ExcRecord
|
|
 |
f085be |
private:
|
|
 |
f085be |
sal_uInt16* pBuffer;
|
|
 |
f085be |
sal_uInt16 nTabCount;
|
|
 |
f085be |
- bool mbInRevisionHeaders;
|
|
 |
f085be |
|
|
 |
f085be |
inline void Clear() { if( pBuffer ) delete[] pBuffer; pBuffer = NULL; }
|
|
 |
f085be |
|
|
 |
f085be |
@@ -317,16 +344,14 @@ private:
|
|
 |
f085be |
|
|
 |
f085be |
public:
|
|
 |
f085be |
inline XclExpChTrTabId( sal_uInt16 nCount ) :
|
|
 |
f085be |
- pBuffer( NULL ), nTabCount( nCount ), mbInRevisionHeaders( false ) {}
|
|
 |
f085be |
- XclExpChTrTabId( const XclExpChTrTabIdBuffer& rBuffer, bool bInRevisionHeaders = false );
|
|
 |
f085be |
+ pBuffer( NULL ), nTabCount( nCount ) {}
|
|
 |
f085be |
+ XclExpChTrTabId( const XclExpChTrTabIdBuffer& rBuffer );
|
|
 |
f085be |
virtual ~XclExpChTrTabId();
|
|
 |
f085be |
|
|
 |
f085be |
void Copy( const XclExpChTrTabIdBuffer& rBuffer );
|
|
 |
f085be |
|
|
 |
f085be |
virtual sal_uInt16 GetNum() const;
|
|
 |
f085be |
virtual sal_Size GetLen() const;
|
|
 |
f085be |
-
|
|
 |
f085be |
- virtual void SaveXml( XclExpXmlStream& rStrm );
|
|
 |
f085be |
};
|
|
 |
f085be |
|
|
 |
f085be |
//___________________________________________________________________
|
|
 |
f085be |
@@ -375,8 +400,7 @@ protected:
|
|
 |
f085be |
// do something after writing the record
|
|
 |
f085be |
virtual void CompleteSaveAction( XclExpStream& rStrm ) const;
|
|
 |
f085be |
|
|
 |
f085be |
- inline sal_uInt32 GetActionNumber() const { return nIndex; }
|
|
 |
f085be |
- inline sal_Bool GetAccepted() const { return bAccepted; }
|
|
 |
f085be |
+ inline bool GetAccepted() const { return bAccepted; }
|
|
 |
f085be |
|
|
 |
f085be |
public:
|
|
 |
f085be |
XclExpChTrAction(
|
|
 |
f085be |
@@ -399,6 +423,7 @@ public:
|
|
 |
f085be |
virtual sal_Size GetLen() const;
|
|
 |
f085be |
|
|
 |
f085be |
inline XclExpChTrAction* GetAddAction() { return pAddAction; }
|
|
 |
f085be |
+ inline sal_uInt32 GetActionNumber() const { return nIndex; }
|
|
 |
f085be |
};
|
|
 |
f085be |
|
|
 |
f085be |
inline void XclExpChTrAction::Write2DAddress( XclExpStream& rStrm, const ScAddress& rAddress ) const
|
|
 |
f085be |
@@ -589,11 +614,12 @@ public:
|
|
 |
f085be |
|
|
 |
f085be |
class XclExpChangeTrack : protected XclExpRoot
|
|
 |
f085be |
{
|
|
 |
f085be |
-private:
|
|
 |
f085be |
- std::vector<ExcRecord*> aRecList; // list of "Revision Log" stream records
|
|
 |
f085be |
+ typedef boost::ptr_vector<ExcRecord> RecListType;
|
|
 |
f085be |
+ typedef boost::ptr_vector<XclExpChTrTabIdBuffer> TabIdBufferType;
|
|
 |
f085be |
+ RecListType maRecList; // list of "Revision Log" stream records
|
|
 |
f085be |
std::stack<XclExpChTrAction*> aActionStack;
|
|
 |
f085be |
XclExpChTrTabIdBuffer* pTabIdBuffer;
|
|
 |
f085be |
- std::vector<XclExpChTrTabIdBuffer*> maBuffers;
|
|
 |
f085be |
+ TabIdBufferType maBuffers;
|
|
 |
f085be |
|
|
 |
f085be |
ScDocument* pTempDoc; // empty document
|
|
 |
f085be |
|
|
 |
f085be |
diff --git a/sc/source/filter/inc/xestream.hxx b/sc/source/filter/inc/xestream.hxx
|
|
 |
f085be |
index e29ed1a..f33f0c0 100644
|
|
 |
f085be |
--- a/sc/source/filter/inc/xestream.hxx
|
|
 |
f085be |
+++ b/sc/source/filter/inc/xestream.hxx
|
|
 |
f085be |
@@ -286,8 +286,18 @@ public:
|
|
 |
f085be |
static OUString ToOUString( const ScfUInt16Vec& rBuffer, sal_Int32 nStart = 0, sal_Int32 nLength = -1 );
|
|
 |
f085be |
static OUString ToOUString( ScDocument& rDocument, const ScAddress& rAddress, const ScTokenArray* pTokenArray );
|
|
 |
f085be |
static OUString ToOUString( const XclExpString& s );
|
|
 |
f085be |
+
|
|
 |
f085be |
+ /**
|
|
 |
f085be |
+ * @return const char* literal "true" for true value, or literal "false"
|
|
 |
f085be |
+ * for false value.
|
|
 |
f085be |
+ */
|
|
 |
f085be |
static const char* ToPsz( bool b );
|
|
 |
f085be |
|
|
 |
f085be |
+ /**
|
|
 |
f085be |
+ * @return literal "1" for true value, or literal "0" for false value.
|
|
 |
f085be |
+ */
|
|
 |
f085be |
+ static const char* ToPsz10( bool b );
|
|
 |
f085be |
+
|
|
 |
f085be |
static sax_fastparser::FSHelperPtr WriteElement( sax_fastparser::FSHelperPtr pStream, sal_Int32 nElement, sal_Int32 nValue );
|
|
 |
f085be |
static sax_fastparser::FSHelperPtr WriteElement( sax_fastparser::FSHelperPtr pStream, sal_Int32 nElement, sal_Int64 nValue );
|
|
 |
f085be |
static sax_fastparser::FSHelperPtr WriteElement( sax_fastparser::FSHelperPtr pStream, sal_Int32 nElement, const char* sValue );
|
|
 |
f085be |
diff --git a/sc/source/filter/xcl97/XclExpChangeTrack.cxx b/sc/source/filter/xcl97/XclExpChangeTrack.cxx
|
|
 |
f085be |
index 4589aea..aed0322 100644
|
|
 |
f085be |
--- a/sc/source/filter/xcl97/XclExpChangeTrack.cxx
|
|
 |
f085be |
+++ b/sc/source/filter/xcl97/XclExpChangeTrack.cxx
|
|
 |
f085be |
@@ -40,7 +40,7 @@ static OString lcl_GuidToOString( sal_uInt8 aGuid[ 16 ] )
|
|
 |
f085be |
{
|
|
 |
f085be |
char sBuf[ 40 ];
|
|
 |
f085be |
snprintf( sBuf, sizeof( sBuf ),
|
|
 |
f085be |
- "{%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x}",
|
|
 |
f085be |
+ "{%02X%02X%02X%02X-%02X%02X-%02X%02X-%02X%02X-%02X%02X%02X%02X%02X%02X}",
|
|
 |
f085be |
aGuid[ 0 ], aGuid[ 1 ], aGuid[ 2 ], aGuid[ 3 ], aGuid[ 4 ], aGuid[ 5 ], aGuid[ 6 ], aGuid[ 7 ],
|
|
 |
f085be |
aGuid[ 8 ], aGuid[ 9 ], aGuid[ 10 ], aGuid[ 11 ], aGuid[ 12 ], aGuid[ 13 ], aGuid[ 14 ], aGuid[ 15 ] );
|
|
 |
f085be |
return OString( sBuf );
|
|
 |
f085be |
@@ -394,7 +394,149 @@ void XclExpChTrHeader::SaveXml( XclExpXmlStream& rRevisionHeadersStrm )
|
|
 |
f085be |
pHeaders->write( ">" );
|
|
 |
f085be |
}
|
|
 |
f085be |
|
|
 |
f085be |
-//___________________________________________________________________
|
|
 |
f085be |
+void XclExpXmlChTrHeaders::SetGUID( const sal_uInt8* pGUID )
|
|
 |
f085be |
+{
|
|
 |
f085be |
+ memcpy(maGUID, pGUID, 16);
|
|
 |
f085be |
+}
|
|
 |
f085be |
+
|
|
 |
f085be |
+void XclExpXmlChTrHeaders::SaveXml( XclExpXmlStream& rStrm )
|
|
 |
f085be |
+{
|
|
 |
f085be |
+ sax_fastparser::FSHelperPtr pHeaders = rStrm.GetCurrentStream();
|
|
 |
f085be |
+
|
|
 |
f085be |
+ pHeaders->write("<")->writeId(XML_headers);
|
|
 |
f085be |
+
|
|
 |
f085be |
+ rStrm.WriteAttributes(
|
|
 |
f085be |
+ XML_xmlns, "http://schemas.openxmlformats.org/spreadsheetml/2006/main",
|
|
 |
f085be |
+ FSNS(XML_xmlns, XML_r), "http://schemas.openxmlformats.org/officeDocument/2006/relationships",
|
|
 |
f085be |
+ XML_guid, lcl_GuidToOString(maGUID).getStr(),
|
|
 |
f085be |
+ XML_lastGuid, NULL, // OOXTODO
|
|
 |
f085be |
+ XML_shared, NULL, // OOXTODO
|
|
 |
f085be |
+ XML_diskRevisions, NULL, // OOXTODO
|
|
 |
f085be |
+ XML_history, NULL, // OOXTODO
|
|
 |
f085be |
+ XML_trackRevisions, NULL, // OOXTODO
|
|
 |
f085be |
+ XML_exclusive, NULL, // OOXTODO
|
|
 |
f085be |
+ XML_revisionId, NULL, // OOXTODO
|
|
 |
f085be |
+ XML_version, NULL, // OOXTODO
|
|
 |
f085be |
+ XML_keepChangeHistory, NULL, // OOXTODO
|
|
 |
f085be |
+ XML_protected, NULL, // OOXTODO
|
|
 |
f085be |
+ XML_preserveHistory, NULL, // OOXTODO
|
|
 |
f085be |
+ FSEND);
|
|
 |
f085be |
+
|
|
 |
f085be |
+ pHeaders->write(">");
|
|
 |
f085be |
+}
|
|
 |
f085be |
+
|
|
 |
f085be |
+XclExpXmlChTrHeader::XclExpXmlChTrHeader(
|
|
 |
f085be |
+ const OUString& rUserName, const DateTime& rDateTime, const sal_uInt8* pGUID,
|
|
 |
f085be |
+ sal_Int32 nLogNumber, const XclExpChTrTabIdBuffer& rBuf ) :
|
|
 |
f085be |
+ maUserName(rUserName), maDateTime(rDateTime), mnLogNumber(nLogNumber),
|
|
 |
f085be |
+ mnMinAction(0), mnMaxAction(0)
|
|
 |
f085be |
+{
|
|
 |
f085be |
+ memcpy(maGUID, pGUID, 16);
|
|
 |
f085be |
+ if (rBuf.GetBufferCount())
|
|
 |
f085be |
+ {
|
|
 |
f085be |
+ maTabBuffer.resize(rBuf.GetBufferCount());
|
|
 |
f085be |
+ rBuf.GetBufferCopy(&maTabBuffer[0]);
|
|
 |
f085be |
+ }
|
|
 |
f085be |
+}
|
|
 |
f085be |
+
|
|
 |
f085be |
+void XclExpXmlChTrHeader::SaveXml( XclExpXmlStream& rStrm )
|
|
 |
f085be |
+{
|
|
 |
f085be |
+ sax_fastparser::FSHelperPtr pHeader = rStrm.GetCurrentStream();
|
|
 |
f085be |
+
|
|
 |
f085be |
+ pHeader->write("<")->writeId(XML_header);
|
|
 |
f085be |
+
|
|
 |
f085be |
+ OUString aRelId;
|
|
 |
f085be |
+ sax_fastparser::FSHelperPtr pRevLogStrm = rStrm.CreateOutputStream(
|
|
 |
f085be |
+ XclXmlUtils::GetStreamName("xl/revisions/", "revisionLog", mnLogNumber),
|
|
 |
f085be |
+ XclXmlUtils::GetStreamName(NULL, "revisionLog", mnLogNumber),
|
|
 |
f085be |
+ rStrm.GetCurrentStream()->getOutputStream(),
|
|
 |
f085be |
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml",
|
|
 |
f085be |
+ CREATE_OFFICEDOC_RELATION_TYPE("revisionLog"),
|
|
 |
f085be |
+ &aRelId);
|
|
 |
f085be |
+
|
|
 |
f085be |
+ rStrm.WriteAttributes(
|
|
 |
f085be |
+ XML_guid, lcl_GuidToOString(maGUID).getStr(),
|
|
 |
f085be |
+ XML_dateTime, lcl_DateTimeToOString(maDateTime).getStr(),
|
|
 |
f085be |
+ XML_userName, XclXmlUtils::ToOString(maUserName).getStr(),
|
|
 |
f085be |
+ FSNS(XML_r, XML_id), XclXmlUtils::ToOString(aRelId).getStr(),
|
|
 |
f085be |
+ FSEND);
|
|
 |
f085be |
+
|
|
 |
f085be |
+ if (mnMinAction)
|
|
 |
f085be |
+ rStrm.WriteAttributes(XML_minRId, OString::number(mnMinAction).getStr(), FSEND);
|
|
 |
f085be |
+
|
|
 |
f085be |
+ if (mnMaxAction)
|
|
 |
f085be |
+ rStrm.WriteAttributes(XML_maxRId, OString::number(mnMaxAction).getStr(), FSEND);
|
|
 |
f085be |
+
|
|
 |
f085be |
+ if (!maTabBuffer.empty())
|
|
 |
f085be |
+ // next available sheet index.
|
|
 |
f085be |
+ rStrm.WriteAttributes(XML_maxSheetId, OString::number(maTabBuffer.back()+1).getStr(), FSEND);
|
|
 |
f085be |
+
|
|
 |
f085be |
+ pHeader->write(">");
|
|
 |
f085be |
+
|
|
 |
f085be |
+ if (!maTabBuffer.empty())
|
|
 |
f085be |
+ {
|
|
 |
f085be |
+ // Write sheet index map.
|
|
 |
f085be |
+ size_t n = maTabBuffer.size();
|
|
 |
f085be |
+ pHeader->startElement(
|
|
 |
f085be |
+ XML_sheetIdMap,
|
|
 |
f085be |
+ XML_count, OString::number(n).getStr(),
|
|
 |
f085be |
+ FSEND);
|
|
 |
f085be |
+
|
|
 |
f085be |
+ for (size_t i = 0; i < n; ++i)
|
|
 |
f085be |
+ {
|
|
 |
f085be |
+ pHeader->singleElement(
|
|
 |
f085be |
+ XML_sheetId,
|
|
 |
f085be |
+ XML_val, OString::number(maTabBuffer[i]).getStr(),
|
|
 |
f085be |
+ FSEND);
|
|
 |
f085be |
+ }
|
|
 |
f085be |
+ pHeader->endElement(XML_sheetIdMap);
|
|
 |
f085be |
+ }
|
|
 |
f085be |
+
|
|
 |
f085be |
+ // Write all revision logs in a separate stream.
|
|
 |
f085be |
+
|
|
 |
f085be |
+ rStrm.PushStream(pRevLogStrm);
|
|
 |
f085be |
+
|
|
 |
f085be |
+ pRevLogStrm->write("<")->writeId(XML_revisions);
|
|
 |
f085be |
+
|
|
 |
f085be |
+ rStrm.WriteAttributes(
|
|
 |
f085be |
+ XML_xmlns, "http://schemas.openxmlformats.org/spreadsheetml/2006/main",
|
|
 |
f085be |
+ FSNS(XML_xmlns, XML_r), "http://schemas.openxmlformats.org/officeDocument/2006/relationships",
|
|
 |
f085be |
+ FSEND);
|
|
 |
f085be |
+
|
|
 |
f085be |
+ pRevLogStrm->write(">");
|
|
 |
f085be |
+
|
|
 |
f085be |
+ std::vector<XclExpChTrAction*>::iterator it = maActions.begin(), itEnd = maActions.end();
|
|
 |
f085be |
+ for (; it != itEnd; ++it)
|
|
 |
f085be |
+ {
|
|
 |
f085be |
+ XclExpChTrAction* p = *it;
|
|
 |
f085be |
+ p->SaveXml(rStrm);
|
|
 |
f085be |
+ }
|
|
 |
f085be |
+
|
|
 |
f085be |
+ pRevLogStrm->write("</")->writeId(XML_revisions)->write(">");
|
|
 |
f085be |
+
|
|
 |
f085be |
+ rStrm.PopStream();
|
|
 |
f085be |
+
|
|
 |
f085be |
+ pHeader->write("</")->writeId(XML_header)->write(">");
|
|
 |
f085be |
+}
|
|
 |
f085be |
+
|
|
 |
f085be |
+void XclExpXmlChTrHeader::AppendAction( XclExpChTrAction* pAction )
|
|
 |
f085be |
+{
|
|
 |
f085be |
+ sal_uInt32 nActionNum = pAction->GetActionNumber();
|
|
 |
f085be |
+ if (!mnMinAction || mnMinAction > nActionNum)
|
|
 |
f085be |
+ mnMinAction = nActionNum;
|
|
 |
f085be |
+
|
|
 |
f085be |
+ if (!mnMaxAction || mnMaxAction < nActionNum)
|
|
 |
f085be |
+ mnMaxAction = nActionNum;
|
|
 |
f085be |
+
|
|
 |
f085be |
+ maActions.push_back(pAction);
|
|
 |
f085be |
+}
|
|
 |
f085be |
+
|
|
 |
f085be |
+XclExpChTrInfo::XclExpChTrInfo( const OUString& rUsername, const DateTime& rDateTime, const sal_uInt8* pGUID ) :
|
|
 |
f085be |
+ sUsername( rUsername ),
|
|
 |
f085be |
+ aDateTime( rDateTime )
|
|
 |
f085be |
+{
|
|
 |
f085be |
+ memcpy( aGUID, pGUID, 16 );
|
|
 |
f085be |
+}
|
|
 |
f085be |
|
|
 |
f085be |
XclExpChTrInfo::~XclExpChTrInfo()
|
|
 |
f085be |
{
|
|
 |
f085be |
@@ -424,35 +566,6 @@ sal_Size XclExpChTrInfo::GetLen() const
|
|
 |
f085be |
return 158;
|
|
 |
f085be |
}
|
|
 |
f085be |
|
|
 |
f085be |
-void XclExpChTrInfo::SaveXml( XclExpXmlStream& rRevisionHeadersStrm )
|
|
 |
f085be |
-{
|
|
 |
f085be |
- sax_fastparser::FSHelperPtr pHeader = rRevisionHeadersStrm.GetCurrentStream();
|
|
 |
f085be |
-
|
|
 |
f085be |
- OUString sRelationshipId;
|
|
 |
f085be |
- sax_fastparser::FSHelperPtr pRevisionLog = rRevisionHeadersStrm.CreateOutputStream(
|
|
 |
f085be |
- XclXmlUtils::GetStreamName( "xl/revisions/", "revisionLog", mnLogNumber ),
|
|
 |
f085be |
- XclXmlUtils::GetStreamName( NULL, "revisionLog", mnLogNumber ),
|
|
 |
f085be |
- rRevisionHeadersStrm.GetCurrentStream()->getOutputStream(),
|
|
 |
f085be |
- "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml",
|
|
 |
f085be |
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/revisionLog",
|
|
 |
f085be |
- &sRelationshipId );
|
|
 |
f085be |
-
|
|
 |
f085be |
- rRevisionHeadersStrm.WriteAttributes(
|
|
 |
f085be |
- XML_guid, lcl_GuidToOString( aGUID ).getStr(),
|
|
 |
f085be |
- XML_dateTime, lcl_DateTimeToOString( aDateTime ).getStr(),
|
|
 |
f085be |
- XML_maxSheetId, NULL, // OOXTODO
|
|
 |
f085be |
- XML_userName, XclXmlUtils::ToOString( sUsername ).getStr(),
|
|
 |
f085be |
- FSNS( XML_r, XML_id ), XclXmlUtils::ToOString( sRelationshipId ).getStr(),
|
|
 |
f085be |
- XML_minRId, NULL, // OOXTODO
|
|
 |
f085be |
- XML_maxRId, NULL, // OOXTODO
|
|
 |
f085be |
- FSEND );
|
|
 |
f085be |
- pHeader->write( ">" );
|
|
 |
f085be |
-
|
|
 |
f085be |
- rRevisionHeadersStrm.PushStream( pRevisionLog );
|
|
 |
f085be |
-}
|
|
 |
f085be |
-
|
|
 |
f085be |
-//___________________________________________________________________
|
|
 |
f085be |
-
|
|
 |
f085be |
XclExpChTrTabIdBuffer::XclExpChTrTabIdBuffer( sal_uInt16 nCount ) :
|
|
 |
f085be |
nBufSize( nCount ),
|
|
 |
f085be |
nLastId( nCount )
|
|
 |
f085be |
@@ -523,11 +636,8 @@ void XclExpChTrTabIdBuffer::Remove()
|
|
 |
f085be |
nLastId--;
|
|
 |
f085be |
}
|
|
 |
f085be |
|
|
 |
f085be |
-//___________________________________________________________________
|
|
 |
f085be |
-
|
|
 |
f085be |
-XclExpChTrTabId::XclExpChTrTabId( const XclExpChTrTabIdBuffer& rBuffer, bool bInRevisionHeaders )
|
|
 |
f085be |
+XclExpChTrTabId::XclExpChTrTabId( const XclExpChTrTabIdBuffer& rBuffer )
|
|
 |
f085be |
: nTabCount( rBuffer.GetBufferCount() )
|
|
 |
f085be |
- , mbInRevisionHeaders( bInRevisionHeaders )
|
|
 |
f085be |
{
|
|
 |
f085be |
pBuffer = new sal_uInt16[ nTabCount ];
|
|
 |
f085be |
rBuffer.GetBufferCopy( pBuffer );
|
|
 |
f085be |
@@ -567,31 +677,6 @@ sal_Size XclExpChTrTabId::GetLen() const
|
|
 |
f085be |
return nTabCount << 1;
|
|
 |
f085be |
}
|
|
 |
f085be |
|
|
 |
f085be |
-void XclExpChTrTabId::SaveXml( XclExpXmlStream& rRevisionLogStrm )
|
|
 |
f085be |
-{
|
|
 |
f085be |
- if( !mbInRevisionHeaders )
|
|
 |
f085be |
- return;
|
|
 |
f085be |
-
|
|
 |
f085be |
- sax_fastparser::FSHelperPtr pRevisionLog = rRevisionLogStrm.GetCurrentStream();
|
|
 |
f085be |
- rRevisionLogStrm.PopStream();
|
|
 |
f085be |
-
|
|
 |
f085be |
- sax_fastparser::FSHelperPtr pHeader = rRevisionLogStrm.GetCurrentStream();
|
|
 |
f085be |
- pHeader->startElement( XML_sheetIdMap,
|
|
 |
f085be |
- XML_count, OString::number( nTabCount ).getStr(),
|
|
 |
f085be |
- FSEND );
|
|
 |
f085be |
- for( int i = 0; i < nTabCount; ++i )
|
|
 |
f085be |
- {
|
|
 |
f085be |
- pHeader->singleElement( XML_sheetId,
|
|
 |
f085be |
- XML_val, OString::number( pBuffer[ i ] ).getStr(),
|
|
 |
f085be |
- FSEND );
|
|
 |
f085be |
- }
|
|
 |
f085be |
- pHeader->endElement( XML_sheetIdMap );
|
|
 |
f085be |
-
|
|
 |
f085be |
- rRevisionLogStrm.PushStream( pRevisionLog );
|
|
 |
f085be |
-}
|
|
 |
f085be |
-
|
|
 |
f085be |
-//___________________________________________________________________
|
|
 |
f085be |
-
|
|
 |
f085be |
// ! does not copy additional actions
|
|
 |
f085be |
XclExpChTrAction::XclExpChTrAction( const XclExpChTrAction& rCopy ) :
|
|
 |
f085be |
ExcRecord( rCopy ),
|
|
 |
f085be |
@@ -1126,11 +1211,12 @@ void XclExpChTrInsert::SaveXml( XclExpXmlStream& rRevisionLogStrm )
|
|
 |
f085be |
XML_ua, XclXmlUtils::ToPsz( GetAccepted () ), // OOXTODO? bAccepted == ua or ra; not sure.
|
|
 |
f085be |
XML_ra, NULL, // OOXTODO: RRD.fUndoAction? Or RRD.fAccepted?
|
|
 |
f085be |
XML_sId, OString::number( GetTabId( aRange.aStart.Tab() ) ).getStr(),
|
|
 |
f085be |
- XML_eol, NULL, // OOXTODO: not supported?
|
|
 |
f085be |
+ XML_eol, XclXmlUtils::ToPsz10(mbEndOfList),
|
|
 |
f085be |
XML_ref, XclXmlUtils::ToOString( aRange ).getStr(),
|
|
 |
f085be |
XML_action, lcl_GetAction( nOpCode ),
|
|
 |
f085be |
XML_edge, NULL, // OOXTODO: ???
|
|
 |
f085be |
FSEND );
|
|
 |
f085be |
+
|
|
 |
f085be |
// OOXTODO: does this handle XML_rfmt, XML_undo?
|
|
 |
f085be |
XclExpChTrAction* pAction = GetAddAction();
|
|
 |
f085be |
while( pAction != NULL )
|
|
 |
f085be |
@@ -1318,17 +1404,6 @@ void XclExpChTr0x014A::SaveXml( XclExpXmlStream& rStrm )
|
|
 |
f085be |
pStream->endElement( XML_rfmt );
|
|
 |
f085be |
}
|
|
 |
f085be |
|
|
 |
f085be |
-//___________________________________________________________________
|
|
 |
f085be |
-
|
|
 |
f085be |
-class ExcXmlRecord : public ExcRecord
|
|
 |
f085be |
-{
|
|
 |
f085be |
-public:
|
|
 |
f085be |
- virtual sal_Size GetLen() const;
|
|
 |
f085be |
- virtual sal_uInt16 GetNum() const;
|
|
 |
f085be |
- virtual void Save( XclExpStream& rStrm );
|
|
 |
f085be |
- virtual void SaveXml( XclExpXmlStream& rStrm ) = 0;
|
|
 |
f085be |
-};
|
|
 |
f085be |
-
|
|
 |
f085be |
sal_Size ExcXmlRecord::GetLen() const
|
|
 |
f085be |
{
|
|
 |
f085be |
return 0;
|
|
 |
f085be |
@@ -1447,66 +1522,83 @@ XclExpChangeTrack::XclExpChangeTrack( const XclExpRoot& rRoot ) :
|
|
 |
f085be |
}
|
|
 |
f085be |
|
|
 |
f085be |
// build record list
|
|
 |
f085be |
- pHeader = new XclExpChTrHeader;
|
|
 |
f085be |
- aRecList.push_back( new StartXmlElement( XML_headers, StartXmlElement::WRITE_NAMESPACES ) );
|
|
 |
f085be |
- aRecList.push_back( pHeader );
|
|
 |
f085be |
- aRecList.push_back( new XclExpChTr0x0195 );
|
|
 |
f085be |
- aRecList.push_back( new XclExpChTr0x0194( *pTempChangeTrack ) );
|
|
 |
f085be |
-
|
|
 |
f085be |
- OUString sLastUsername;
|
|
 |
f085be |
- DateTime aLastDateTime( DateTime::EMPTY );
|
|
 |
f085be |
- sal_uInt32 nIndex = 1;
|
|
 |
f085be |
- sal_Int32 nLogNumber = 1;
|
|
 |
f085be |
- while( !aActionStack.empty() )
|
|
 |
f085be |
+ if (GetOutput() == EXC_OUTPUT_BINARY)
|
|
 |
f085be |
{
|
|
 |
f085be |
- XclExpChTrAction* pAction = aActionStack.top();
|
|
 |
f085be |
- aActionStack.pop();
|
|
 |
f085be |
-
|
|
 |
f085be |
- if( (nIndex == 1) || pAction->ForceInfoRecord() ||
|
|
 |
f085be |
- (pAction->GetUsername() != sLastUsername) ||
|
|
 |
f085be |
- (pAction->GetDateTime() != aLastDateTime) )
|
|
 |
f085be |
+ pHeader = new XclExpChTrHeader;
|
|
 |
f085be |
+ maRecList.push_back( pHeader );
|
|
 |
f085be |
+ maRecList.push_back( new XclExpChTr0x0195 );
|
|
 |
f085be |
+ maRecList.push_back( new XclExpChTr0x0194( *pTempChangeTrack ) );
|
|
 |
f085be |
+
|
|
 |
f085be |
+ OUString sLastUsername;
|
|
 |
f085be |
+ DateTime aLastDateTime( DateTime::EMPTY );
|
|
 |
f085be |
+ sal_uInt32 nIndex = 1;
|
|
 |
f085be |
+ sal_Int32 nLogNumber = 1;
|
|
 |
f085be |
+ while( !aActionStack.empty() )
|
|
 |
f085be |
{
|
|
 |
f085be |
- if( nIndex != 1 )
|
|
 |
f085be |
+ XclExpChTrAction* pAction = aActionStack.top();
|
|
 |
f085be |
+ aActionStack.pop();
|
|
 |
f085be |
+
|
|
 |
f085be |
+ if( (nIndex == 1) || pAction->ForceInfoRecord() ||
|
|
 |
f085be |
+ (pAction->GetUsername() != sLastUsername) ||
|
|
 |
f085be |
+ (pAction->GetDateTime() != aLastDateTime) )
|
|
 |
f085be |
{
|
|
 |
f085be |
- aRecList.push_back( new EndXmlElement( XML_revisions ) );
|
|
 |
f085be |
- aRecList.push_back( new EndHeaderElement() );
|
|
 |
f085be |
+ lcl_GenerateGUID( aGUID, bValidGUID );
|
|
 |
f085be |
+ sLastUsername = pAction->GetUsername();
|
|
 |
f085be |
+ aLastDateTime = pAction->GetDateTime();
|
|
 |
f085be |
+
|
|
 |
f085be |
+ nLogNumber++;
|
|
 |
f085be |
+ maRecList.push_back( new XclExpChTrInfo(sLastUsername, aLastDateTime, aGUID) );
|
|
 |
f085be |
+ maRecList.push_back( new XclExpChTrTabId(pAction->GetTabIdBuffer()) );
|
|
 |
f085be |
+ pHeader->SetGUID( aGUID );
|
|
 |
f085be |
}
|
|
 |
f085be |
+ pAction->SetIndex( nIndex );
|
|
 |
f085be |
+ maRecList.push_back( pAction );
|
|
 |
f085be |
+ }
|
|
 |
f085be |
|
|
 |
f085be |
- lcl_GenerateGUID( aGUID, bValidGUID );
|
|
 |
f085be |
- sLastUsername = pAction->GetUsername();
|
|
 |
f085be |
- aLastDateTime = pAction->GetDateTime();
|
|
 |
f085be |
+ pHeader->SetGUID( aGUID );
|
|
 |
f085be |
+ pHeader->SetCount( nIndex - 1 );
|
|
 |
f085be |
+ maRecList.push_back( new ExcEof );
|
|
 |
f085be |
+ }
|
|
 |
f085be |
+ else
|
|
 |
f085be |
+ {
|
|
 |
f085be |
+ XclExpXmlChTrHeaders* pHeaders = new XclExpXmlChTrHeaders;
|
|
 |
f085be |
+ maRecList.push_back(pHeaders);
|
|
 |
f085be |
+
|
|
 |
f085be |
+ OUString sLastUsername;
|
|
 |
f085be |
+ DateTime aLastDateTime(DateTime::EMPTY);
|
|
 |
f085be |
+ sal_uInt32 nIndex = 1;
|
|
 |
f085be |
+ sal_Int32 nLogNumber = 1;
|
|
 |
f085be |
+ XclExpXmlChTrHeader* pCurHeader = NULL;
|
|
 |
f085be |
+
|
|
 |
f085be |
+ while (!aActionStack.empty())
|
|
 |
f085be |
+ {
|
|
 |
f085be |
+ XclExpChTrAction* pAction = aActionStack.top();
|
|
 |
f085be |
+ aActionStack.pop();
|
|
 |
f085be |
|
|
 |
f085be |
- aRecList.push_back( new StartXmlElement( XML_header, 0 ) );
|
|
 |
f085be |
- aRecList.push_back( new XclExpChTrInfo( sLastUsername, aLastDateTime, aGUID, nLogNumber++ ) );
|
|
 |
f085be |
- aRecList.push_back( new XclExpChTrTabId( pAction->GetTabIdBuffer(), true ) );
|
|
 |
f085be |
- aRecList.push_back( new StartXmlElement( XML_revisions, StartXmlElement::WRITE_NAMESPACES | StartXmlElement::CLOSE_ELEMENT ) );
|
|
 |
f085be |
- pHeader->SetGUID( aGUID );
|
|
 |
f085be |
+ if( (nIndex == 1) || pAction->ForceInfoRecord() ||
|
|
 |
f085be |
+ (pAction->GetUsername() != sLastUsername) ||
|
|
 |
f085be |
+ (pAction->GetDateTime() != aLastDateTime) )
|
|
 |
f085be |
+ {
|
|
 |
f085be |
+ lcl_GenerateGUID( aGUID, bValidGUID );
|
|
 |
f085be |
+ sLastUsername = pAction->GetUsername();
|
|
 |
f085be |
+ aLastDateTime = pAction->GetDateTime();
|
|
 |
f085be |
+
|
|
 |
f085be |
+ pCurHeader = new XclExpXmlChTrHeader(sLastUsername, aLastDateTime, aGUID, nLogNumber, pAction->GetTabIdBuffer());
|
|
 |
f085be |
+ maRecList.push_back(pCurHeader);
|
|
 |
f085be |
+ nLogNumber++;
|
|
 |
f085be |
+ pHeaders->SetGUID(aGUID);
|
|
 |
f085be |
+ }
|
|
 |
f085be |
+ pAction->SetIndex(nIndex);
|
|
 |
f085be |
+ pCurHeader->AppendAction(pAction);
|
|
 |
f085be |
}
|
|
 |
f085be |
- pAction->SetIndex( nIndex );
|
|
 |
f085be |
- aRecList.push_back( pAction );
|
|
 |
f085be |
- }
|
|
 |
f085be |
|
|
 |
f085be |
- pHeader->SetGUID( aGUID );
|
|
 |
f085be |
- pHeader->SetCount( nIndex - 1 );
|
|
 |
f085be |
- if( nLogNumber > 1 )
|
|
 |
f085be |
- {
|
|
 |
f085be |
- aRecList.push_back( new EndXmlElement( XML_revisions ) );
|
|
 |
f085be |
- aRecList.push_back( new EndHeaderElement() );
|
|
 |
f085be |
+ pHeaders->SetGUID(aGUID);
|
|
 |
f085be |
+ maRecList.push_back(new EndXmlElement(XML_headers));
|
|
 |
f085be |
}
|
|
 |
f085be |
- aRecList.push_back( new EndXmlElement( XML_headers ) );
|
|
 |
f085be |
- aRecList.push_back( new ExcEof );
|
|
 |
f085be |
}
|
|
 |
f085be |
|
|
 |
f085be |
XclExpChangeTrack::~XclExpChangeTrack()
|
|
 |
f085be |
{
|
|
 |
f085be |
- std::vector<ExcRecord*>::iterator prIter;
|
|
 |
f085be |
- for ( prIter = aRecList.begin(); prIter != aRecList.end(); ++prIter )
|
|
 |
f085be |
- delete *prIter;
|
|
 |
f085be |
-
|
|
 |
f085be |
- std::vector<XclExpChTrTabIdBuffer*>::iterator pIter;
|
|
 |
f085be |
- for ( pIter = maBuffers.begin(); pIter != maBuffers.end(); ++pIter )
|
|
 |
f085be |
- delete *pIter;
|
|
 |
f085be |
-
|
|
 |
f085be |
while( !aActionStack.empty() )
|
|
 |
f085be |
{
|
|
 |
f085be |
delete aActionStack.top();
|
|
 |
f085be |
@@ -1602,7 +1694,7 @@ sal_Bool XclExpChangeTrack::WriteUserNamesStream()
|
|
 |
f085be |
|
|
 |
f085be |
void XclExpChangeTrack::Write()
|
|
 |
f085be |
{
|
|
 |
f085be |
- if( aRecList.empty() )
|
|
 |
f085be |
+ if (maRecList.empty())
|
|
 |
f085be |
return;
|
|
 |
f085be |
|
|
 |
f085be |
if( WriteUserNamesStream() )
|
|
 |
f085be |
@@ -1613,9 +1705,9 @@ void XclExpChangeTrack::Write()
|
|
 |
f085be |
{
|
|
 |
f085be |
XclExpStream aXclStrm( *xSvStrm, GetRoot(), EXC_MAXRECSIZE_BIFF8 + 8 );
|
|
 |
f085be |
|
|
 |
f085be |
- std::vector<ExcRecord*>::iterator pIter;
|
|
 |
f085be |
- for ( pIter = aRecList.begin(); pIter != aRecList.end(); ++pIter )
|
|
 |
f085be |
- (*pIter)->Save(aXclStrm);
|
|
 |
f085be |
+ RecListType::iterator pIter;
|
|
 |
f085be |
+ for (pIter = maRecList.begin(); pIter != maRecList.end(); ++pIter)
|
|
 |
f085be |
+ pIter->Save(aXclStrm);
|
|
 |
f085be |
|
|
 |
f085be |
xSvStrm->Commit();
|
|
 |
f085be |
}
|
|
 |
f085be |
@@ -1643,7 +1735,7 @@ static void lcl_WriteUserNamesXml( XclExpXmlStream& rWorkbookStrm )
|
|
 |
f085be |
|
|
 |
f085be |
void XclExpChangeTrack::WriteXml( XclExpXmlStream& rWorkbookStrm )
|
|
 |
f085be |
{
|
|
 |
f085be |
- if( aRecList.empty() )
|
|
 |
f085be |
+ if (maRecList.empty())
|
|
 |
f085be |
return;
|
|
 |
f085be |
|
|
 |
f085be |
lcl_WriteUserNamesXml( rWorkbookStrm );
|
|
 |
f085be |
@@ -1659,9 +1751,9 @@ void XclExpChangeTrack::WriteXml( XclExpXmlStream& rWorkbookStrm )
|
|
 |
f085be |
// contents of XclExpChangeTrack::WriteUserNamesStream()).
|
|
 |
f085be |
rWorkbookStrm.PushStream( pRevisionHeaders );
|
|
 |
f085be |
|
|
 |
f085be |
- std::vector<ExcRecord*>::iterator pIter;
|
|
 |
f085be |
- for ( pIter = aRecList.begin(); pIter != aRecList.end(); ++pIter )
|
|
 |
f085be |
- (*pIter)->SaveXml(rWorkbookStrm);
|
|
 |
f085be |
+ RecListType::iterator pIter;
|
|
 |
f085be |
+ for (pIter = maRecList.begin(); pIter != maRecList.end(); ++pIter)
|
|
 |
f085be |
+ pIter->SaveXml(rWorkbookStrm);
|
|
 |
f085be |
|
|
 |
f085be |
rWorkbookStrm.PopStream();
|
|
 |
f085be |
}
|
|
 |
f085be |
--
|
|
 |
f085be |
1.9.3
|
|
 |
f085be |
|