You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by or...@apache.org on 2013/12/03 15:02:52 UTC
svn commit: r1547392 - in /openoffice/branches/ooxml-osba/main/writerfilter:
inc/ooxml/ inc/resourcemodel/ source/doctok/ source/ooxml/
Author: orw
Date: Tue Dec 3 14:02:51 2013
New Revision: 1547392
URL: http://svn.apache.org/r1547392
Log:
113059: *.docx import: correct handling of comment/annotation, footnote and endnote IDs for parsing the corresponding sub streams
Kudos to Pavel <pa...@apache.org> for his analysis and findings
Modified:
openoffice/branches/ooxml-osba/main/writerfilter/inc/ooxml/OOXMLDocument.hxx
openoffice/branches/ooxml-osba/main/writerfilter/inc/resourcemodel/WW8ResourceModel.hxx
openoffice/branches/ooxml-osba/main/writerfilter/source/doctok/WW8ResourceModelImpl.cxx
openoffice/branches/ooxml-osba/main/writerfilter/source/doctok/WW8ResourceModelImpl.hxx
openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/Handler.cxx
openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLDocumentImpl.cxx
openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLDocumentImpl.hxx
openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLFastContextHandler.cxx
openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLFastContextHandler.hxx
openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLFastDocumentHandler.cxx
openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLFastDocumentHandler.hxx
openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLParserState.cxx
openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLParserState.hxx
openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLPropertySetImpl.cxx
openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLPropertySetImpl.hxx
openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/model.xml
Modified: openoffice/branches/ooxml-osba/main/writerfilter/inc/ooxml/OOXMLDocument.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ooxml-osba/main/writerfilter/inc/ooxml/OOXMLDocument.hxx?rev=1547392&r1=1547391&r2=1547392&view=diff
==============================================================================
--- openoffice/branches/ooxml-osba/main/writerfilter/inc/ooxml/OOXMLDocument.hxx (original)
+++ openoffice/branches/ooxml-osba/main/writerfilter/inc/ooxml/OOXMLDocument.hxx Tue Dec 3 14:02:51 2013
@@ -156,11 +156,11 @@ public:
@param rStream stream handler to resolve to
@param rNoteType type of footnote to resolve
- @param rNoteId id of the footnote to resolve
+ @param nIDForXNoteStream id of the footnote to resolve
*/
virtual void resolveFootnote(Stream & rStream,
const Id & rNoteType,
- const rtl::OUString & rNoteId) = 0;
+ const sal_Int32 nIDForXNoteStream ) = 0;
/**
Resolves an endnote to a stream handler.
@@ -168,21 +168,21 @@ public:
note id matches.
@param rStream stream handler to resolve to
- @param rNoteType type of footnote to resolve
- @param rNoteId id of the endnote to resolve
+ @param rNoteType type of endnote to resolve
+ @param nIDForXNoteStream id of the endnote to resolve
*/
virtual void resolveEndnote(Stream & rStream,
const Id & rNoteType,
- const rtl::OUString & rNoteId) = 0;
+ const sal_Int32 nIDForXNoteStream ) = 0;
/**
Resolves a comment to a stream handler.
@param rStream stream handler to resolve to
- @param rComment id of the comment to resolve
+ @param nIDForXNoteStream id of the comment to resolve
*/
virtual void resolveComment(Stream & rStream,
- const rtl::OUString & rCommentId) = 0;
+ const sal_Int32 nIDForXNoteStream ) = 0;
/**
Resolves a picture to a stream handler.
@@ -239,12 +239,11 @@ public:
virtual uno::Reference<drawing::XDrawPage> getDrawPage() = 0;
virtual uno::Reference<io::XInputStream> getInputStream() = 0;
virtual uno::Reference<io::XInputStream> getStorageStream() = 0;
- virtual uno::Reference<io::XInputStream> getInputStreamForId
- (const ::rtl::OUString & rId) = 0;
- virtual void setXNoteId(const rtl::OUString & rId) = 0;
- virtual const ::rtl::OUString & getXNoteId() const = 0;
- virtual void setXNoteType(const Id & nId) = 0;
- virtual const Id & getXNoteType() const = 0;
+ virtual uno::Reference<io::XInputStream> getInputStreamForId( const ::rtl::OUString & rId ) = 0;
+
+ virtual void setIDForXNoteStream( const sal_Int32 nID ) = 0;
+ virtual const sal_Int32 getIDForXNoteStream() const = 0;
+
virtual const ::rtl::OUString & getTarget() const = 0;
};
Modified: openoffice/branches/ooxml-osba/main/writerfilter/inc/resourcemodel/WW8ResourceModel.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ooxml-osba/main/writerfilter/inc/resourcemodel/WW8ResourceModel.hxx?rev=1547392&r1=1547391&r2=1547392&view=diff
==============================================================================
--- openoffice/branches/ooxml-osba/main/writerfilter/inc/resourcemodel/WW8ResourceModel.hxx (original)
+++ openoffice/branches/ooxml-osba/main/writerfilter/inc/resourcemodel/WW8ResourceModel.hxx Tue Dec 3 14:02:51 2013
@@ -298,7 +298,7 @@ public:
/**
Returns integer representation of the value.
*/
- virtual int getInt() const = 0;
+ virtual sal_Int32 getInt() const = 0;
/**
Returns string representation of the value.
Modified: openoffice/branches/ooxml-osba/main/writerfilter/source/doctok/WW8ResourceModelImpl.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ooxml-osba/main/writerfilter/source/doctok/WW8ResourceModelImpl.cxx?rev=1547392&r1=1547391&r2=1547392&view=diff
==============================================================================
--- openoffice/branches/ooxml-osba/main/writerfilter/source/doctok/WW8ResourceModelImpl.cxx (original)
+++ openoffice/branches/ooxml-osba/main/writerfilter/source/doctok/WW8ResourceModelImpl.cxx Tue Dec 3 14:02:51 2013
@@ -316,7 +316,7 @@ string WW8Sprm::getName() const
return (*SprmIdToString::Instance())(getId());
}
-int WW8Value::getInt() const
+sal_Int32 WW8Value::getInt() const
{
return 0;
}
@@ -351,7 +351,7 @@ writerfilter::Reference<BinaryObj>::Poin
return writerfilter::Reference<BinaryObj>::Pointer_t();
}
-int WW8IntValue::getInt() const
+sal_Int32 WW8IntValue::getInt() const
{
return mValue;
}
@@ -389,7 +389,7 @@ WW8Value::Pointer_t createValue(WW8Value
return value;
}
-int WW8StringValue::getInt() const
+sal_Int32 WW8StringValue::getInt() const
{
return 0;
}
Modified: openoffice/branches/ooxml-osba/main/writerfilter/source/doctok/WW8ResourceModelImpl.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ooxml-osba/main/writerfilter/source/doctok/WW8ResourceModelImpl.hxx?rev=1547392&r1=1547391&r2=1547392&view=diff
==============================================================================
--- openoffice/branches/ooxml-osba/main/writerfilter/source/doctok/WW8ResourceModelImpl.hxx (original)
+++ openoffice/branches/ooxml-osba/main/writerfilter/source/doctok/WW8ResourceModelImpl.hxx Tue Dec 3 14:02:51 2013
@@ -158,7 +158,7 @@ public:
virtual ~WW8Value() {}
virtual string toString() const;
- virtual int getInt() const;
+ virtual sal_Int32 getInt() const;
virtual ::rtl::OUString getString() const;
virtual uno::Any getAny() const;
virtual writerfilter::Reference<Properties>::Pointer_t getProperties();
@@ -174,7 +174,7 @@ public:
WW8IntValue(int value) : mValue(value) {}
virtual ~WW8IntValue() {}
- virtual int getInt() const;
+ virtual sal_Int32 getInt() const;
virtual ::rtl::OUString getString() const;
virtual uno::Any getAny() const;
@@ -200,7 +200,7 @@ public:
WW8StringValue(::rtl::OUString string_) : mString(string_) {}
virtual ~WW8StringValue() {}
- virtual int getInt() const;
+ virtual sal_Int32 getInt() const;
virtual ::rtl::OUString getString() const;
virtual uno::Any getAny() const;
Modified: openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/Handler.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/Handler.cxx?rev=1547392&r1=1547391&r2=1547392&view=diff
==============================================================================
--- openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/Handler.cxx (original)
+++ openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/Handler.cxx Tue Dec 3 14:02:51 2013
@@ -46,7 +46,7 @@ void OOXMLFootnoteHandler::attribute(Id
switch (name)
{
case NS_ooxml::LN_CT_FtnEdnRef_id:
- mpFastContext->resolveFootnote(val.getString());
+ mpFastContext->resolveFootnote(val.getInt());
break;
default:
break;
@@ -74,7 +74,7 @@ void OOXMLEndnoteHandler::attribute(Id n
switch (name)
{
case NS_ooxml::LN_CT_FtnEdnRef_id:
- mpFastContext->resolveEndnote(val.getString());
+ mpFastContext->resolveEndnote(val.getInt());
break;
default:
break;
@@ -102,7 +102,7 @@ void OOXMLCommentHandler::attribute(Id n
switch (name)
{
case NS_ooxml::LN_CT_Markup_id:
- mpFastContext->resolveComment(val.getString());
+ mpFastContext->resolveComment(val.getInt());
break;
default:
;
Modified: openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLDocumentImpl.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLDocumentImpl.cxx?rev=1547392&r1=1547391&r2=1547392&view=diff
==============================================================================
--- openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLDocumentImpl.cxx (original)
+++ openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLDocumentImpl.cxx Tue Dec 3 14:02:51 2013
@@ -45,9 +45,37 @@ TagLogger::Pointer_t debug_logger(TagLog
using namespace ::std;
-OOXMLDocumentImpl::OOXMLDocumentImpl
-(OOXMLStream::Pointer_t pStream)
-: mpStream(pStream), mXNoteType(0), mbIsSubstream( false )
+OOXMLDocumentImpl::OOXMLDocumentImpl(
+ OOXMLStream::Pointer_t pStream )
+ : mpStream(pStream)
+ , mnIDForXNoteStream( -1 )
+ , mxModel()
+ , mxDrawPage()
+ , mbIsSubstream( false )
+{
+}
+
+OOXMLDocumentImpl::OOXMLDocumentImpl(
+ OOXMLStream::Pointer_t pStream,
+ uno::Reference<frame::XModel> xModel,
+ uno::Reference<drawing::XDrawPage> xDrawPage,
+ const bool bIsSubstream )
+ : mpStream(pStream)
+ , mnIDForXNoteStream( -1 )
+ , mxModel( xModel )
+ , mxDrawPage( xDrawPage )
+ , mbIsSubstream( bIsSubstream )
+{
+}
+
+OOXMLDocumentImpl::OOXMLDocumentImpl(
+ OOXMLStream::Pointer_t pStream,
+ const sal_Int32 nIDForXNoteStream )
+ : mpStream(pStream)
+ , mnIDForXNoteStream( nIDForXNoteStream )
+ , mxModel()
+ , mxDrawPage()
+ , mbIsSubstream( false )
{
}
@@ -68,8 +96,7 @@ void OOXMLDocumentImpl::resolveFastSubSt
{
uno::Reference<uno::XComponentContext> xContext(mpStream->getContext());
OOXMLFastDocumentHandler * pDocHandler =
- new OOXMLFastDocumentHandler(
- xContext, &rStreamHandler, this, msXNoteId );
+ new OOXMLFastDocumentHandler( xContext, &rStreamHandler, this );
uno::Reference < xml::sax::XFastDocumentHandler > xDocumentHandler
(pDocHandler);
@@ -100,25 +127,16 @@ void OOXMLDocumentImpl::resolveFastSubSt
rStream.substream(nId, pStream);
}
-void OOXMLDocumentImpl::setXNoteId(const rtl::OUString & rId)
-{
- msXNoteId = rId;
-}
-
-const rtl::OUString & OOXMLDocumentImpl::getXNoteId() const
+void OOXMLDocumentImpl::setIDForXNoteStream( const sal_Int32 nID )
{
- return msXNoteId;
+ mnIDForXNoteStream = nID;
}
-void OOXMLDocumentImpl::setXNoteType(const Id & nId)
+const sal_Int32 OOXMLDocumentImpl::getIDForXNoteStream() const
{
- mXNoteType = nId;
+ return mnIDForXNoteStream;
}
-const Id & OOXMLDocumentImpl::getXNoteType() const
-{
- return mXNoteType;
-}
const ::rtl::OUString & OOXMLDocumentImpl::getTarget() const
{
@@ -131,17 +149,19 @@ OOXMLDocumentImpl::getSubStream(const rt
OOXMLStream::Pointer_t pStream
(OOXMLDocumentFactory::createStream(mpStream, rId));
- OOXMLDocumentImpl * pTemp;
- writerfilter::Reference<Stream>::Pointer_t pRet( pTemp = new OOXMLDocumentImpl(pStream) );
- pTemp->setModel(mxModel);
- pTemp->setDrawPage(mxDrawPage);
- pTemp->setIsSubstream( true );
+ writerfilter::Reference<Stream>::Pointer_t pRet(
+ new OOXMLDocumentImpl(
+ pStream,
+ mxModel,
+ mxDrawPage,
+ true ) );
+
return pRet;
}
-writerfilter::Reference<Stream>::Pointer_t
-OOXMLDocumentImpl::getXNoteStream(OOXMLStream::StreamType_t nType, const Id & rType,
- const rtl::OUString & rId)
+writerfilter::Reference<Stream>::Pointer_t OOXMLDocumentImpl::getXNoteStream(
+ OOXMLStream::StreamType_t nType,
+ const sal_Int32 nIDForXNoteStream )
{
#ifdef DEBUG_ELEMENT
debug_logger->startElement("getXNoteStream");
@@ -151,19 +171,21 @@ OOXMLDocumentImpl::getXNoteStream(OOXMLS
OOXMLStream::Pointer_t pStream =
(OOXMLDocumentFactory::createStream(mpStream, nType));
- OOXMLDocumentImpl * pDocument = new OOXMLDocumentImpl(pStream);
- pDocument->setXNoteId(rId);
- pDocument->setXNoteType(rType);
+ OOXMLDocumentImpl * pDocument =
+ new OOXMLDocumentImpl(
+ pStream,
+ nIDForXNoteStream );
return writerfilter::Reference<Stream>::Pointer_t(pDocument);
}
-void OOXMLDocumentImpl::resolveFootnote(Stream & rStream,
- const Id & rType,
- const rtl::OUString & rNoteId)
+void OOXMLDocumentImpl::resolveFootnote(
+ Stream & rStream,
+ const Id & rType,
+ const sal_Int32 nIDForXNoteStream )
{
writerfilter::Reference<Stream>::Pointer_t pStream =
- getXNoteStream(OOXMLStream::FOOTNOTES, rType, rNoteId);
+ getXNoteStream( OOXMLStream::FOOTNOTES, nIDForXNoteStream );
Id nId;
switch (rType)
@@ -177,15 +199,16 @@ void OOXMLDocumentImpl::resolveFootnote(
break;
}
- resolveFastSubStreamWithId(rStream, pStream, nId);
+ resolveFastSubStreamWithId( rStream, pStream, nId );
}
-void OOXMLDocumentImpl::resolveEndnote(Stream & rStream,
- const Id & rType,
- const rtl::OUString & rNoteId)
+void OOXMLDocumentImpl::resolveEndnote(
+ Stream & rStream,
+ const Id & rType,
+ const sal_Int32 nIDForXNoteStream )
{
writerfilter::Reference<Stream>::Pointer_t pStream =
- getXNoteStream(OOXMLStream::ENDNOTES, rType, rNoteId);
+ getXNoteStream( OOXMLStream::ENDNOTES, nIDForXNoteStream );
Id nId;
switch (rType)
@@ -199,16 +222,17 @@ void OOXMLDocumentImpl::resolveEndnote(S
break;
}
- resolveFastSubStreamWithId(rStream, pStream, nId);
+ resolveFastSubStreamWithId( rStream, pStream, nId );
}
-void OOXMLDocumentImpl::resolveComment(Stream & rStream,
- const rtl::OUString & rId)
+void OOXMLDocumentImpl::resolveComment(
+ Stream & rStream,
+ const sal_Int32 nIDForXNoteStream )
{
writerfilter::Reference<Stream>::Pointer_t pStream =
- getXNoteStream(OOXMLStream::COMMENTS, 0, rId);
+ getXNoteStream(OOXMLStream::COMMENTS, nIDForXNoteStream );
- resolveFastSubStreamWithId(rStream, pStream, NS_rtf::LN_annotation);
+ resolveFastSubStreamWithId( rStream, pStream, NS_rtf::LN_annotation );
}
OOXMLPropertySet * OOXMLDocumentImpl::getPicturePropSet
@@ -315,8 +339,7 @@ void OOXMLDocumentImpl::resolve(Stream &
uno::Reference<uno::XComponentContext> xContext(mpStream->getContext());
OOXMLFastDocumentHandler * pDocHandler =
- new OOXMLFastDocumentHandler(
- xContext, &rStream, this, msXNoteId );
+ new OOXMLFastDocumentHandler( xContext, &rStream, this );
pDocHandler->setIsSubstream( mbIsSubstream );
uno::Reference < xml::sax::XFastDocumentHandler > xDocumentHandler
(pDocHandler);
@@ -392,9 +415,8 @@ uno::Reference<io::XInputStream> OOXMLDo
return mpStream->getStorageStream();
}
-OOXMLDocument *
-OOXMLDocumentFactory::createDocument
-(OOXMLStream::Pointer_t pStream)
+OOXMLDocument * OOXMLDocumentFactory::createDocument(
+ OOXMLStream::Pointer_t pStream )
{
return new OOXMLDocumentImpl(pStream);
}
Modified: openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLDocumentImpl.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLDocumentImpl.hxx?rev=1547392&r1=1547391&r2=1547392&view=diff
==============================================================================
--- openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLDocumentImpl.hxx (original)
+++ openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLDocumentImpl.hxx Tue Dec 3 14:02:51 2013
@@ -40,46 +40,64 @@ using namespace ::com::sun::star;
class OOXMLDocumentImpl : public OOXMLDocument
{
OOXMLStream::Pointer_t mpStream;
- rtl::OUString msXNoteId;
- Id mXNoteType;
+ // ID for parsing certain item in a XNote stream
+ // used for footnotes, endnotes and comments streams
+ sal_Int32 mnIDForXNoteStream;
uno::Reference<frame::XModel> mxModel;
uno::Reference<drawing::XDrawPage> mxDrawPage;
- bool mbIsSubstream;
+ const bool mbIsSubstream;
protected:
- virtual void resolveFastSubStream(Stream & rStream,
- OOXMLStream::StreamType_t nType);
+ virtual void resolveFastSubStream(
+ Stream & rStream,
+ OOXMLStream::StreamType_t nType);
+
+ virtual void resolveFastSubStreamWithId(
+ Stream & rStream,
+ writerfilter::Reference<Stream>::Pointer_t pStream,
+ sal_uInt32 nId);
+
+ writerfilter::Reference<Stream>::Pointer_t getSubStream(
+ const rtl::OUString & rId );
+
+ writerfilter::Reference<Stream>::Pointer_t getXNoteStream(
+ OOXMLStream::StreamType_t nType,
+ const sal_Int32 nIDForXNoteStream );
- virtual void resolveFastSubStreamWithId(Stream & rStream,
- writerfilter::Reference<Stream>::Pointer_t pStream,
- sal_uInt32 nId);
-
- writerfilter::Reference<Stream>::Pointer_t
- getSubStream(const rtl::OUString & rId);
-
- writerfilter::Reference<Stream>::Pointer_t
- getXNoteStream(OOXMLStream::StreamType_t nType,
- const Id & rType,
- const rtl::OUString & rNoteId);
+public:
+ explicit OOXMLDocumentImpl(
+ OOXMLStream::Pointer_t pStream );
- void setIsSubstream( bool bSubstream ) { mbIsSubstream = bSubstream; };
+ OOXMLDocumentImpl(
+ OOXMLStream::Pointer_t pStream,
+ uno::Reference<frame::XModel> xModel,
+ uno::Reference<drawing::XDrawPage> xDrawPage,
+ const bool bIsSubstream );
+
+ OOXMLDocumentImpl(
+ OOXMLStream::Pointer_t pStream,
+ const sal_Int32 nIDForXNoteStream );
-public:
- OOXMLDocumentImpl(OOXMLStream::Pointer_t pStream);
virtual ~OOXMLDocumentImpl();
virtual void resolve(Stream & rStream);
virtual string getType() const;
- virtual void resolveFootnote(Stream & rStream,
- const Id & rType,
- const rtl::OUString & rNoteId);
- virtual void resolveEndnote(Stream & rStream,
- const Id & rType,
- const rtl::OUString & rNoteId);
+ virtual void resolveFootnote(
+ Stream & rStream,
+ const Id & rType,
+ const sal_Int32 nIDForXNoteStream );
+ virtual void resolveEndnote(
+ Stream & rStream,
+ const Id & rType,
+ const sal_Int32 nIDForXNoteStream );
+ virtual void resolveComment(
+ Stream & rStream,
+ const sal_Int32 nIDForXNoteStream );
+
virtual void resolveHeader(Stream & rStream,
const sal_Int32 type,
const rtl::OUString & rId);
@@ -87,8 +105,6 @@ public:
const sal_Int32 type,
const rtl::OUString & rId);
- virtual void resolveComment(Stream & rStream, const rtl::OUString & rId);
-
virtual OOXMLPropertySet * getPicturePropSet
(const ::rtl::OUString & rId);
virtual void resolvePicture(Stream & rStream, const rtl::OUString & rId);
@@ -102,10 +118,10 @@ public:
virtual uno::Reference<io::XInputStream> getInputStream();
virtual uno::Reference<io::XInputStream> getStorageStream();
virtual uno::Reference<io::XInputStream> getInputStreamForId(const rtl::OUString & rId);
- virtual void setXNoteId(const rtl::OUString & rId);
- virtual const ::rtl::OUString & getXNoteId() const;
- virtual void setXNoteType(const Id & rId);
- virtual const Id & getXNoteType() const;
+
+ virtual void setIDForXNoteStream( const sal_Int32 nID );
+ virtual const sal_Int32 getIDForXNoteStream() const;
+
virtual const ::rtl::OUString & getTarget() const;
};
}}
Modified: openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLFastContextHandler.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLFastContextHandler.cxx?rev=1547392&r1=1547391&r2=1547392&view=diff
==============================================================================
--- openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLFastContextHandler.cxx (original)
+++ openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLFastContextHandler.cxx Tue Dec 3 14:02:51 2013
@@ -1032,37 +1032,31 @@ bool OOXMLFastContextHandler::isForwardE
return mpParserState->isForwardEvents();
}
-void OOXMLFastContextHandler::setXNoteId(const ::rtl::OUString & rId)
-{
- mpParserState->setXNoteId(rId);
-}
-void OOXMLFastContextHandler::setXNoteId(OOXMLValue::Pointer_t pValue)
+void OOXMLFastContextHandler::setIDForXNoteStream(OOXMLValue::Pointer_t pValue)
{
- mpParserState->setXNoteId(pValue->getString());
+ mpParserState->getDocument()->setIDForXNoteStream(pValue->getInt());
}
-const rtl::OUString & OOXMLFastContextHandler::getXNoteId() const
-{
- return mpParserState->getXNoteId();
-}
-void OOXMLFastContextHandler::resolveFootnote
-(const rtl::OUString & rId)
+void OOXMLFastContextHandler::resolveFootnote(
+ const sal_Int32 nIDForXNoteStream )
{
mpParserState->getDocument()->resolveFootnote
- (*mpStream, 0, rId);
+ (*mpStream, 0, nIDForXNoteStream);
}
-void OOXMLFastContextHandler::resolveEndnote(const rtl::OUString & rId)
+void OOXMLFastContextHandler::resolveEndnote(
+ const sal_Int32 nIDForXNoteStream )
{
mpParserState->getDocument()->resolveEndnote
- (*mpStream, 0, rId);
+ (*mpStream, 0, nIDForXNoteStream);
}
-void OOXMLFastContextHandler::resolveComment(const rtl::OUString & rId)
+void OOXMLFastContextHandler::resolveComment(
+ const sal_Int32 nIDForXNoteStream )
{
- mpParserState->getDocument()->resolveComment(*mpStream, rId);
+ mpParserState->getDocument()->resolveComment(*mpStream, nIDForXNoteStream);
}
void OOXMLFastContextHandler::resolvePicture(const rtl::OUString & rId)
@@ -1624,7 +1618,7 @@ OOXMLFastContextHandlerXNote::OOXMLFastC
( OOXMLFastContextHandler * pContext )
: OOXMLFastContextHandlerProperties( pContext )
, mbForwardEventsSaved( false )
- , msMyXNoteId()
+ , mnMyXNoteId( -1 )
{
}
@@ -1639,7 +1633,7 @@ void OOXMLFastContextHandlerXNote::lcl_s
{
mbForwardEventsSaved = isForwardEvents();
- if (msMyXNoteId.compareTo(getXNoteId()) == 0)
+ if ( mnMyXNoteId == mpParserState->getDocument()->getIDForXNoteStream() )
setForwardEvents(true);
else
setForwardEvents(false);
@@ -1661,12 +1655,12 @@ void OOXMLFastContextHandlerXNote::check
{
#ifdef DEBUG_ELEMENT
debug_logger->startElement("checkId");
- debug_logger->attribute("myId", pValue->getString());
- debug_logger->attribute("id", getXNoteId());
+ debug_logger->attribute("myId", pValue->getInt());
+ debug_logger->attribute("id", mpParserState->getDocument()->getXNoteId());
debug_logger->endElement("checkId");
#endif
- msMyXNoteId = pValue->getString();
+ mnMyXNoteId = pValue->getInt();
}
/*
Modified: openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLFastContextHandler.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLFastContextHandler.hxx?rev=1547392&r1=1547391&r2=1547392&view=diff
==============================================================================
--- openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLFastContextHandler.hxx (original)
+++ openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLFastContextHandler.hxx Tue Dec 3 14:02:51 2013
@@ -59,11 +59,12 @@ public:
enum ResourceEnum_t { UNKNOWN, STREAM, PROPERTIES, TABLE, SHAPE };
OOXMLFastContextHandler();
- explicit OOXMLFastContextHandler
- (uno::Reference< uno::XComponentContext > const & context);
- explicit OOXMLFastContextHandler
- (OOXMLFastContextHandler * pContext);
+ explicit OOXMLFastContextHandler(
+ uno::Reference< uno::XComponentContext > const & context );
+
+ explicit OOXMLFastContextHandler(
+ OOXMLFastContextHandler * pContext );
virtual ~OOXMLFastContextHandler();
@@ -141,9 +142,10 @@ public:
void mark(const Id & rId, OOXMLValue::Pointer_t pVal);
- void resolveFootnote(const rtl::OUString & rId);
- void resolveEndnote(const rtl::OUString & rId);
- void resolveComment(const rtl::OUString & rId);
+ void resolveFootnote( const sal_Int32 nIDForXNoteStream );
+ void resolveEndnote( const sal_Int32 nIDForXNoteStream );
+ void resolveComment( const sal_Int32 nIDForXNoteStream );
+
void resolvePicture(const rtl::OUString & rId);
void resolveHeader(const sal_Int32 type,
const rtl::OUString & rId);
@@ -160,9 +162,9 @@ public:
void setDocument(OOXMLDocument * pDocument);
OOXMLDocument * getDocument();
- void setXNoteId(OOXMLValue::Pointer_t pValue);
- void setXNoteId(const ::rtl::OUString & rId);
- const rtl::OUString & getXNoteId() const;
+
+ void setIDForXNoteStream(OOXMLValue::Pointer_t pValue);
+
void setForwardEvents(bool bForwardEvents);
bool isForwardEvents() const;
virtual void setParent(OOXMLFastContextHandler * pParent);
@@ -430,7 +432,7 @@ public:
private:
bool mbForwardEventsSaved;
- ::rtl::OUString msMyXNoteId;
+ sal_Int32 mnMyXNoteId;
virtual void lcl_startFastElement
(Token_t Element,
Modified: openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLFastDocumentHandler.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLFastDocumentHandler.cxx?rev=1547392&r1=1547391&r2=1547392&view=diff
==============================================================================
--- openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLFastDocumentHandler.cxx (original)
+++ openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLFastDocumentHandler.cxx Tue Dec 3 14:02:51 2013
@@ -42,15 +42,13 @@ using namespace ::std;
OOXMLFastDocumentHandler::OOXMLFastDocumentHandler(
uno::Reference< uno::XComponentContext > const & context,
Stream* pStream,
- OOXMLDocument* pDocument,
- const ::rtl::OUString& rXNoteId )
+ OOXMLDocument* pDocument )
: m_xContext(context)
, mpStream( pStream )
#ifdef DEBUG_ELEMENT
, mpTmpStream()
#endif
, mpDocument( pDocument )
- , msXNoteId( rXNoteId )
, mpContextHandler()
{
#ifdef DEBUG_PROTOCOL
@@ -140,11 +138,10 @@ OOXMLFastDocumentHandler::getContextHand
{
if (mpContextHandler == OOXMLFastContextHandler::Pointer_t())
{
- mpContextHandler.reset
- (new OOXMLFastContextHandler(m_xContext));
+ mpContextHandler.reset(
+ new OOXMLFastContextHandler(m_xContext) );
mpContextHandler->setStream(mpStream);
mpContextHandler->setDocument(mpDocument);
- mpContextHandler->setXNoteId(msXNoteId);
mpContextHandler->setForwardEvents(true);
}
@@ -196,7 +193,7 @@ Name
#endif
return uno::Reference< xml::sax::XFastContextHandler >
- ( new OOXMLFastDocumentHandler( m_xContext, 0, 0, ::rtl::OUString() ) );
+ ( new OOXMLFastDocumentHandler( m_xContext, 0, 0 ) );
}
void SAL_CALL OOXMLFastDocumentHandler::characters(const ::rtl::OUString & /*aChars*/)
Modified: openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLFastDocumentHandler.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLFastDocumentHandler.hxx?rev=1547392&r1=1547391&r2=1547392&view=diff
==============================================================================
--- openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLFastDocumentHandler.hxx (original)
+++ openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLFastDocumentHandler.hxx Tue Dec 3 14:02:51 2013
@@ -47,8 +47,8 @@ public:
OOXMLFastDocumentHandler(
uno::Reference< uno::XComponentContext > const & context,
Stream* pStream,
- OOXMLDocument* pDocument,
- const ::rtl::OUString& rXNoteId );
+ OOXMLDocument* pDocument );
+
virtual ~OOXMLFastDocumentHandler() {}
// ::com::sun::star::xml::sax::XFastDocumentHandler:
@@ -103,7 +103,6 @@ private:
Stream::Pointer_t mpTmpStream;
#endif
OOXMLDocument * mpDocument;
- ::rtl::OUString msXNoteId;
mutable boost::shared_ptr<OOXMLFastContextHandler> mpContextHandler;
boost::shared_ptr<OOXMLFastContextHandler> getContextHandler() const;
};
Modified: openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLParserState.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLParserState.cxx?rev=1547392&r1=1547391&r2=1547392&view=diff
==============================================================================
--- openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLParserState.cxx (original)
+++ openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLParserState.cxx Tue Dec 3 14:02:51 2013
@@ -123,15 +123,6 @@ OOXMLDocument * OOXMLParserState::getDoc
return mpDocument;
}
-void OOXMLParserState::setXNoteId(const rtl::OUString & rId)
-{
- mpDocument->setXNoteId(rId);
-}
-
-const rtl::OUString & OOXMLParserState::getXNoteId() const
-{
- return mpDocument->getXNoteId();
-}
const ::rtl::OUString & OOXMLParserState::getTarget() const
{
@@ -308,9 +299,7 @@ XMLTag::Pointer_t OOXMLParserState::toTa
sTmp += "-";
pTag->addAttr("state", sTmp);
- pTag->addAttr("XNoteId",
- OUStringToOString(getXNoteId(),
- RTL_TEXTENCODING_ASCII_US).getStr());
+ pTag->addAttr("XNoteId", getDocument()->getIDForXNoteStream() );
if (mpCharacterProps != OOXMLPropertySet::Pointer_t())
pTag->chars(mpCharacterProps->toString());
Modified: openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLParserState.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLParserState.hxx?rev=1547392&r1=1547391&r2=1547392&view=diff
==============================================================================
--- openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLParserState.hxx (original)
+++ openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLParserState.hxx Tue Dec 3 14:02:51 2013
@@ -48,7 +48,6 @@ class OOXMLParserState
unsigned int mnContexts;
unsigned int mnHandle;
OOXMLDocument * mpDocument;
- rtl::OUString msXNoteId;
rtl::OUString msTarget;
OOXMLPropertySet::Pointer_t mpCharacterProps;
stack<OOXMLPropertySet::Pointer_t> mCellProps;
@@ -85,9 +84,6 @@ public:
void setDocument(OOXMLDocument * pDocument);
OOXMLDocument * getDocument() const;
- void setXNoteId(const rtl::OUString & rId);
- const rtl::OUString & getXNoteId() const;
-
const rtl::OUString & getTarget() const;
void resolveCharacterProperties(Stream & rStream);
Modified: openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLPropertySetImpl.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLPropertySetImpl.cxx?rev=1547392&r1=1547391&r2=1547392&view=diff
==============================================================================
--- openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLPropertySetImpl.cxx (original)
+++ openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLPropertySetImpl.cxx Tue Dec 3 14:02:51 2013
@@ -201,7 +201,7 @@ bool OOXMLValue::getBool() const
return false;
}
-int OOXMLValue::getInt() const
+sal_Int32 OOXMLValue::getInt() const
{
return 0;
}
@@ -301,7 +301,7 @@ bool OOXMLBooleanValue::getBool() const
return mbValue;
}
-int OOXMLBooleanValue::getInt() const
+sal_Int32 OOXMLBooleanValue::getInt() const
{
return mbValue ? 1 : 0;
}
@@ -594,7 +594,7 @@ OOXMLIntegerValue::~OOXMLIntegerValue()
{
}
-int OOXMLIntegerValue::getInt() const
+sal_Int32 OOXMLIntegerValue::getInt() const
{
return mnValue;
}
@@ -637,7 +637,7 @@ OOXMLHexValue::~OOXMLHexValue()
{
}
-int OOXMLHexValue::getInt() const
+sal_Int32 OOXMLHexValue::getInt() const
{
return mnValue;
}
Modified: openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLPropertySetImpl.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLPropertySetImpl.hxx?rev=1547392&r1=1547391&r2=1547392&view=diff
==============================================================================
--- openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLPropertySetImpl.hxx (original)
+++ openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/OOXMLPropertySetImpl.hxx Tue Dec 3 14:02:51 2013
@@ -47,7 +47,7 @@ public:
OOXMLValue();
virtual ~OOXMLValue();
- virtual int getInt() const;
+ virtual sal_Int32 getInt() const;
virtual bool getBool() const;
virtual ::rtl::OUString getString() const;
virtual uno::Any getAny() const;
@@ -108,7 +108,7 @@ public:
explicit OOXMLBooleanValue(const rtl::OUString & rValue);
virtual ~OOXMLBooleanValue();
- virtual int getInt() const;
+ virtual sal_Int32 getInt() const;
virtual bool getBool() const;
virtual uno::Any getAny() const;
virtual string toString() const;
@@ -197,7 +197,7 @@ public:
explicit OOXMLIntegerValue(const rtl::OUString & rValue);
virtual ~OOXMLIntegerValue();
- virtual int getInt() const;
+ virtual sal_Int32 getInt() const;
virtual uno::Any getAny() const;
virtual string toString() const;
virtual OOXMLValue * clone() const;
@@ -212,7 +212,7 @@ public:
explicit OOXMLHexValue(const rtl::OUString & rValue);
virtual ~OOXMLHexValue();
- virtual int getInt() const;
+ virtual sal_Int32 getInt() const;
virtual string toString() const;
virtual OOXMLValue * clone() const;
};
Modified: openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/model.xml
URL: http://svn.apache.org/viewvc/openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/model.xml?rev=1547392&r1=1547391&r2=1547392&view=diff
==============================================================================
--- openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/model.xml (original)
+++ openoffice/branches/ooxml-osba/main/writerfilter/source/ooxml/model.xml Tue Dec 3 14:02:51 2013
@@ -14439,10 +14439,6 @@
</optional>
</define>
<define name="CT_MarkupRangeBookmark">
- <attribute name="id">
- <text/>
- <xs:documentation>Annotation Identifier</xs:documentation>
- </attribute>
<ref name="CT_MarkupRange"/>
</define>
<define name="CT_MarkupRangeCommentStart">
@@ -14485,10 +14481,6 @@
</attribute>
</define>
<define name="CT_Comment">
- <attribute name="id">
- <ref name="ST_DecimalNumber"/>
- <xs:documentation>Annotation Identifier</xs:documentation>
- </attribute>
<ref name="CT_TrackChange"/>
<zeroOrMore>
<ref name="EG_BlockLevelElts"/>
@@ -18159,13 +18151,13 @@
</attribute>
</optional>
<attribute name="id">
- <text/>
+ <ref name="ST_DecimalNumber"/>
<xs:documentation>Footnote/Endnote ID Reference</xs:documentation>
</attribute>
</define>
<define name="CT_FtnEdnSepRef">
<attribute name="id">
- <text/>
+ <ref name="ST_DecimalNumber"/>
<xs:documentation>Footnote/Endnote ID</xs:documentation>
</attribute>
</define>
@@ -18180,7 +18172,7 @@
</attribute>
</optional>
<attribute name="id">
- <text/>
+ <ref name="ST_DecimalNumber"/>
<xs:documentation>Footnote/Endnote ID</xs:documentation>
</attribute>
</define>
@@ -22859,7 +22851,7 @@
</resource>
<resource name="CT_FtnEdnRef" resource="Properties" tag="reference">
<attribute name="customMarkFollows" tokenid="ooxml:CT_FtnEdnRef_customMarkFollows"/>
- <attribute name="id" tokenid="ooxml:CT_FtnEdnRef_id" action="setXNoteId"/>
+ <attribute name="id" tokenid="ooxml:CT_FtnEdnRef_id" action="setIDForXNoteStream"/>
<action name="end" action="handleXNotes"/>
</resource>
<resource name="CT_FtnEdnSepRef" resource="Properties" tag="reference">