officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu | 2 svx/source/sidebar/area/AreaPropertyPanel.cxx | 7 + svx/source/sidebar/line/LinePropertyPanel.cxx | 7 + writerfilter/source/ooxml/OOXMLDocumentImpl.cxx | 12 -- writerfilter/source/ooxml/OOXMLFastDocumentHandler.cxx | 62 ++++++----- writerfilter/source/ooxml/OOXMLFastDocumentHandler.hxx | 11 - 6 files changed, 57 insertions(+), 44 deletions(-)
New commits: commit 22e334845346f4e3189c72e706d744385953af19 Author: Oliver-Rainer Wittmann <o...@apache.org> Date: Mon Jun 10 11:11:00 2013 +0000 Correct the XML document handler which is used to parse Microsoft Word OOXML documents in case of unknown XML elements diff --git a/writerfilter/source/ooxml/OOXMLDocumentImpl.cxx b/writerfilter/source/ooxml/OOXMLDocumentImpl.cxx index 811817b..fc743f8 100644 --- a/writerfilter/source/ooxml/OOXMLDocumentImpl.cxx +++ b/writerfilter/source/ooxml/OOXMLDocumentImpl.cxx @@ -68,10 +68,8 @@ void OOXMLDocumentImpl::resolveFastSubStream(Stream & rStreamHandler, { uno::Reference<uno::XComponentContext> xContext(mpStream->getContext()); OOXMLFastDocumentHandler * pDocHandler = - new OOXMLFastDocumentHandler(xContext); - pDocHandler->setStream(&rStreamHandler); - pDocHandler->setDocument(this); - pDocHandler->setXNoteId(msXNoteId); + new OOXMLFastDocumentHandler( + xContext, &rStreamHandler, this, msXNoteId ); uno::Reference < xml::sax::XFastDocumentHandler > xDocumentHandler (pDocHandler); @@ -317,10 +315,8 @@ void OOXMLDocumentImpl::resolve(Stream & rStream) uno::Reference<uno::XComponentContext> xContext(mpStream->getContext()); OOXMLFastDocumentHandler * pDocHandler = - new OOXMLFastDocumentHandler(xContext); - pDocHandler->setStream(&rStream); - pDocHandler->setDocument(this); - pDocHandler->setXNoteId(msXNoteId); + new OOXMLFastDocumentHandler( + xContext, &rStream, this, msXNoteId ); pDocHandler->setIsSubstream( mbIsSubstream ); uno::Reference < xml::sax::XFastDocumentHandler > xDocumentHandler (pDocHandler); diff --git a/writerfilter/source/ooxml/OOXMLFastDocumentHandler.cxx b/writerfilter/source/ooxml/OOXMLFastDocumentHandler.cxx index a13ac78..792b611 100644 --- a/writerfilter/source/ooxml/OOXMLFastDocumentHandler.cxx +++ b/writerfilter/source/ooxml/OOXMLFastDocumentHandler.cxx @@ -39,10 +39,28 @@ using namespace ::com::sun::star; using namespace ::std; -OOXMLFastDocumentHandler::OOXMLFastDocumentHandler -(uno::Reference< uno::XComponentContext > const & context) -: m_xContext(context) -{} +OOXMLFastDocumentHandler::OOXMLFastDocumentHandler( + uno::Reference< uno::XComponentContext > const & context, + Stream* pStream, + OOXMLDocument* pDocument, + const ::rtl::OUString& rXNoteId ) + : m_xContext(context) + , mpStream( pStream ) +#ifdef DEBUG_ELEMENT + , mpTmpStream() +#endif + , mpDocument( pDocument ) + , msXNoteId( rXNoteId ) + , mpContextHandler() +{ +#ifdef DEBUG_PROTOCOL + if ( pStream ) + { + mpTmpStream.reset( new StreamProtocol( pStream, debug_logger ) ); + mpStream = mpTmpStream.get(); + } +#endif +} // ::com::sun::star::xml::sax::XFastContextHandler: void SAL_CALL OOXMLFastDocumentHandler::startFastElement @@ -145,6 +163,13 @@ uno::Reference< xml::sax::XFastContextHandler > SAL_CALL << endl; #endif + if ( mpStream == 0 && mpDocument == 0 ) + { + // document handler has been created as unknown child - see <OOXMLFastDocumentHandler::createUnknownChildContext(..)> + // --> do not provide a child context + return NULL; + } + return OOXMLFactory::getInstance()->createFastChildContextFromStart(getContextHandler().get(), Element); } @@ -171,13 +196,12 @@ Name #endif return uno::Reference< xml::sax::XFastContextHandler > - (new OOXMLFastDocumentHandler(m_xContext)); + ( new OOXMLFastDocumentHandler( m_xContext, 0, 0, ::rtl::OUString() ) ); } void SAL_CALL OOXMLFastDocumentHandler::characters(const ::rtl::OUString & /*aChars*/) throw (uno::RuntimeException, xml::sax::SAXException) { - // TODO: Insert your implementation for "characters" here. } // ::com::sun::star::xml::sax::XFastDocumentHandler: @@ -195,32 +219,14 @@ void SAL_CALL OOXMLFastDocumentHandler::setDocumentLocator (const uno::Reference< xml::sax::XLocator > & /*xLocator*/) throw (uno::RuntimeException, xml::sax::SAXException) { - // TODO: Insert your implementation for "setDocumentLocator" here. -} - -void OOXMLFastDocumentHandler::setStream(Stream * pStream) -{ -#ifdef DEBUG_PROTOCOL - mpTmpStream.reset(new StreamProtocol(pStream, debug_logger)); - mpStream = mpTmpStream.get(); -#else - mpStream = pStream; -#endif -} - -void OOXMLFastDocumentHandler::setDocument(OOXMLDocument * pDocument) -{ - mpDocument = pDocument; -} - -void OOXMLFastDocumentHandler::setXNoteId(const ::rtl::OUString & rXNoteId) -{ - msXNoteId = rXNoteId; } void OOXMLFastDocumentHandler::setIsSubstream( bool bSubstream ) { - getContextHandler( )->getParserState( )->setInSectionGroup( bSubstream ); + if ( mpStream != 0 && mpDocument != 0 ) + { + getContextHandler( )->getParserState( )->setInSectionGroup( bSubstream ); + } } }} diff --git a/writerfilter/source/ooxml/OOXMLFastDocumentHandler.hxx b/writerfilter/source/ooxml/OOXMLFastDocumentHandler.hxx index 92bb4dc..ead44ed 100644 --- a/writerfilter/source/ooxml/OOXMLFastDocumentHandler.hxx +++ b/writerfilter/source/ooxml/OOXMLFastDocumentHandler.hxx @@ -44,8 +44,11 @@ class OOXMLFastDocumentHandler: xml::sax::XFastDocumentHandler> { public: - OOXMLFastDocumentHandler - (uno::Reference< uno::XComponentContext > const & context); + OOXMLFastDocumentHandler( + uno::Reference< uno::XComponentContext > const & context, + Stream* pStream, + OOXMLDocument* pDocument, + const ::rtl::OUString& rXNoteId ); virtual ~OOXMLFastDocumentHandler() {} // ::com::sun::star::xml::sax::XFastDocumentHandler: @@ -87,10 +90,6 @@ public: virtual void SAL_CALL characters(const ::rtl::OUString & aChars) throw (uno::RuntimeException, xml::sax::SAXException); - void setStream(Stream * pStream); - void setDocument(OOXMLDocument * pDocument); - void setXNoteId(const ::rtl::OUString & rXNoteId); - void setIsSubstream( bool bSubstream ); private: commit 7fb9e99fcc522731165f3ad20aae43d81bb7df65 Author: Armin Le Grand <a...@apache.org> Date: Mon Jun 10 10:45:46 2013 +0000 i122493 Removed Line/AreaPropertyPanel on Writer OLE context diff --git a/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu b/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu index d05cdae..4fb60d5 100644 --- a/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu +++ b/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu @@ -351,7 +351,6 @@ DrawImpress, TextObject, hidden ; DrawImpress, OLE, hidden ; WriterVariants, Draw, visible ; - WriterVariants, OLE, hidden, .uno:FrameDialog ; </value> </prop> <prop oor:name="ImplementationURL" oor:type="xs:string"> @@ -386,7 +385,6 @@ DrawImpress, TextObject, hidden ; DrawImpress, OLE, hidden ; WriterVariants, Draw, visible ; - WriterVariants, OLE, hidden, .uno:FrameDialog ; </value> </prop> <prop oor:name="ImplementationURL" oor:type="xs:string"> commit 2890568e3ac8e140d12f05d8ac74f3be50ffa45d Author: Armin Le Grand <a...@apache.org> Date: Mon Jun 10 10:39:36 2013 +0000 i122493 Corrected Enable/Disable for some DropDowns/Texts in Line/AreaPropertyPanel diff --git a/svx/source/sidebar/area/AreaPropertyPanel.cxx b/svx/source/sidebar/area/AreaPropertyPanel.cxx index 072c6ff..e07c6bb 100644 --- a/svx/source/sidebar/area/AreaPropertyPanel.cxx +++ b/svx/source/sidebar/area/AreaPropertyPanel.cxx @@ -667,6 +667,7 @@ void AreaPropertyPanel::ImpUpdateTransparencies() else if(nValue <= 100) { mpLBTransType->Enable(); + mpTrspTextFT->Enable(); mpLBTransType->SelectEntryPos(1); mpBTNGradient->Hide(); mpMTRTransparent->Show(); @@ -690,6 +691,7 @@ void AreaPropertyPanel::ImpUpdateTransparencies() Image* pImage = 0; mpLBTransType->Enable(); + mpTrspTextFT->Enable(); mpMTRTransparent->Hide(); mpBTNGradient->Enable(); mpBTNGradient->Show(); @@ -747,6 +749,7 @@ void AreaPropertyPanel::ImpUpdateTransparencies() if(bZeroValue) { mpLBTransType->Enable(); + mpTrspTextFT->Enable(); mpLBTransType->SelectEntryPos(0); mpBTNGradient->Hide(); mpMTRTransparent->Enable(); @@ -758,6 +761,8 @@ void AreaPropertyPanel::ImpUpdateTransparencies() { // no transparency at all mpLBTransType->SetNoSelection(); + mpLBTransType->Disable(); + mpTrspTextFT->Disable(); mpMTRTransparent->Disable(); mpMTRTransparent->Show(); mpBTNGradient->Disable(); @@ -840,6 +845,7 @@ void AreaPropertyPanel::NotifyItemUpdate( if(bDisabled) { mpLbFillType->Disable(); + mpColorTextFT->Disable(); mpLbFillType->SetNoSelection(); mpLbFillAttr->Show(); mpLbFillAttr->Disable(); @@ -857,6 +863,7 @@ void AreaPropertyPanel::NotifyItemUpdate( { mpStyleItem.reset(dynamic_cast< XFillStyleItem* >(pItem->Clone())); mpLbFillType->Enable(); + mpColorTextFT->Enable(); XFillStyle eXFS = (XFillStyle)mpStyleItem->GetValue(); meLastXFS = eXFS; mpLbFillType->SelectEntryPos(sal::static_int_cast< sal_uInt16 >(eXFS)); diff --git a/svx/source/sidebar/line/LinePropertyPanel.cxx b/svx/source/sidebar/line/LinePropertyPanel.cxx index 75c7166..4284481 100644 --- a/svx/source/sidebar/line/LinePropertyPanel.cxx +++ b/svx/source/sidebar/line/LinePropertyPanel.cxx @@ -618,10 +618,12 @@ void LinePropertyPanel::NotifyItemUpdate( if(bDisabled) { mpLBEdgeStyle->Disable(); + mpFTEdgeStyle->Disable(); } else { mpLBEdgeStyle->Enable(); + mpFTEdgeStyle->Enable(); } if(eState >= SFX_ITEM_DEFAULT) @@ -676,10 +678,12 @@ void LinePropertyPanel::NotifyItemUpdate( if(bDisabled) { mpLBCapStyle->Disable(); + mpFTCapStyle->Disable(); } else { mpLBCapStyle->Enable(); + mpLBCapStyle->Enable(); } if(eState >= SFX_ITEM_DEFAULT) @@ -1093,6 +1097,7 @@ void LinePropertyPanel::SelectLineStyle() if( !mpStyleItem.get() || !mpDashItem.get() ) { mpLBStyle->SetNoSelection(); + mpLBStyle->Disable(); return; } @@ -1138,6 +1143,7 @@ void LinePropertyPanel::SelectEndStyle(bool bStart) if( !mpStartItem.get() ) { mpLBStart->SetNoSelection(); + mpLBStart->Disable(); return; } @@ -1166,6 +1172,7 @@ void LinePropertyPanel::SelectEndStyle(bool bStart) if( !mpEndItem.get() ) { mpLBEnd->SetNoSelection(); + mpLBEnd->Disable(); return; } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits