diff options
author | Tor Lillqvist <tml@iki.fi> | 2013-06-14 16:53:52 +0300 |
---|---|---|
committer | Fridrich Strba <fridrich@documentfoundation.org> | 2013-06-28 09:02:12 +0000 |
commit | c7e184598540af5b609e77518abbd0f51b9e38ec (patch) | |
tree | f7fa74a8bca6572897ea37cd9f8a3daba8c991fd /oox/source/drawingml/table/tablecontext.cxx | |
parent | 32ce3c6b0a945078868fb2ae35c9260e4e4c3649 (diff) |
Further MCE work
As it is wrong (says Thorsten) to override the methods from
XFastContextHandler in ContextHandler2 in its derived classes, mark them with
SAL_FINAL to catch that (when compiling with a compiler thaty supports
"final").
Do corresponding changes then; change createFastChildContext() methods to
onCreateContext() ones instead.
Now the unit tests work, and a sample PPTX that uses embedded OLE thingies
loads without crash, but unfortunately it looks like crap...
Change-Id: Ie30022f37418ba9caf8ce59fe4003b808fa900f3
Reviewed-on: https://gerrit.libreoffice.org/4578
Reviewed-by: Fridrich Strba <fridrich@documentfoundation.org>
Tested-by: Fridrich Strba <fridrich@documentfoundation.org>
Diffstat (limited to 'oox/source/drawingml/table/tablecontext.cxx')
-rw-r--r-- | oox/source/drawingml/table/tablecontext.cxx | 38 |
1 files changed, 14 insertions, 24 deletions
diff --git a/oox/source/drawingml/table/tablecontext.cxx b/oox/source/drawingml/table/tablecontext.cxx index 87900526ac1a..f83e2877b2b6 100644 --- a/oox/source/drawingml/table/tablecontext.cxx +++ b/oox/source/drawingml/table/tablecontext.cxx @@ -41,58 +41,48 @@ TableContext::~TableContext() { } -uno::Reference< xml::sax::XFastContextHandler > SAL_CALL -TableContext::createFastChildContext( ::sal_Int32 aElementToken, const uno::Reference< xml::sax::XFastAttributeList >& xAttribs ) - throw ( xml::sax::SAXException, uno::RuntimeException) +ContextHandlerRef +TableContext::onCreateContext( ::sal_Int32 aElementToken, const AttributeList& rAttribs ) { - uno::Reference< xml::sax::XFastContextHandler > xRet; - switch( aElementToken ) { case A_TOKEN( tblPr ): // CT_TableProperties { - AttributeList aAttribs( xAttribs ); - mrTableProperties.isRtl() = aAttribs.getBool( XML_rtl, sal_False ); - mrTableProperties.isFirstRow() = aAttribs.getBool( XML_firstRow, sal_False ); - mrTableProperties.isFirstCol() = aAttribs.getBool( XML_firstCol, sal_False ); - mrTableProperties.isLastRow() = aAttribs.getBool( XML_lastRow, sal_False ); - mrTableProperties.isLastCol() = aAttribs.getBool( XML_lastCol, sal_False ); - mrTableProperties.isBandRow() = aAttribs.getBool( XML_bandRow, sal_False ); - mrTableProperties.isBandCol() = aAttribs.getBool( XML_bandCol, sal_False ); + mrTableProperties.isRtl() = rAttribs.getBool( XML_rtl, sal_False ); + mrTableProperties.isFirstRow() = rAttribs.getBool( XML_firstRow, sal_False ); + mrTableProperties.isFirstCol() = rAttribs.getBool( XML_firstCol, sal_False ); + mrTableProperties.isLastRow() = rAttribs.getBool( XML_lastRow, sal_False ); + mrTableProperties.isLastCol() = rAttribs.getBool( XML_lastCol, sal_False ); + mrTableProperties.isBandRow() = rAttribs.getBool( XML_bandRow, sal_False ); + mrTableProperties.isBandCol() = rAttribs.getBool( XML_bandCol, sal_False ); } break; case A_TOKEN( tableStyle ): // CT_TableStyle { boost::shared_ptr< TableStyle >& rTableStyle = mrTableProperties.getTableStyle(); rTableStyle.reset( new TableStyle() ); - xRet = new TableStyleContext( *this, xAttribs, *rTableStyle ); + return new TableStyleContext( *this, rAttribs.getFastAttributeList(), *rTableStyle ); } - break; case A_TOKEN( tableStyleId ): // ST_Guid - xRet.set( new oox::drawingml::GuidContext( *this, mrTableProperties.getStyleId() ) ); - break; + return new oox::drawingml::GuidContext( *this, mrTableProperties.getStyleId() ); case A_TOKEN( tblGrid ): // CT_TableGrid break; case A_TOKEN( gridCol ): // CT_TableCol { std::vector< sal_Int32 >& rvTableGrid( mrTableProperties.getTableGrid() ); - rvTableGrid.push_back( xAttribs->getOptionalValue( XML_w ).toInt32() ); + rvTableGrid.push_back( rAttribs.getString( XML_w ).get().toInt32() ); } break; case A_TOKEN( tr ): // CT_TableRow { std::vector< TableRow >& rvTableRows( mrTableProperties.getTableRows() ); rvTableRows.resize( rvTableRows.size() + 1 ); - xRet.set( new TableRowContext( *this, xAttribs, rvTableRows.back() ) ); + return new TableRowContext( *this, rAttribs.getFastAttributeList(), rvTableRows.back() ); } - break; } - if( !xRet.is() ) - xRet.set( this ); - - return xRet; + return this; } } } } |