diff options
author | Miklos Vajna <vmiklos@frugalware.org> | 2011-08-03 16:27:13 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@frugalware.org> | 2011-08-03 16:27:13 +0200 |
commit | 8560e419afc1b8bd02428bcb4a8a16c17e268b71 (patch) | |
tree | 3329076f0c6f78c595a48e19aad50008527b77f6 /writerfilter/source/filter/RtfFilter.cxx | |
parent | d6aff719e2c0b5289003c4ae0dd5cd8bc5e97873 (diff) |
RtfFilter::filter: always do an import, unless a source document is given
Diffstat (limited to 'writerfilter/source/filter/RtfFilter.cxx')
-rw-r--r-- | writerfilter/source/filter/RtfFilter.cxx | 69 |
1 files changed, 33 insertions, 36 deletions
diff --git a/writerfilter/source/filter/RtfFilter.cxx b/writerfilter/source/filter/RtfFilter.cxx index 3c326d98bf29..e526d365602b 100644 --- a/writerfilter/source/filter/RtfFilter.cxx +++ b/writerfilter/source/filter/RtfFilter.cxx @@ -69,53 +69,50 @@ sal_Bool RtfFilter::filter( const uno::Sequence< beans::PropertyValue >& aDescri xExprtr->setSourceDocument(m_xSrcDoc); return xFltr->filter(aDescriptor); } - else if ( m_xDstDoc.is() ) + + SvtMiscOptions aMiscOptions; + if (aMiscOptions.IsExperimentalMode()) { - SvtMiscOptions aMiscOptions; - if (aMiscOptions.IsExperimentalMode()) - { - MediaDescriptor aMediaDesc( aDescriptor ); + MediaDescriptor aMediaDesc( aDescriptor ); #ifdef DEBUG_IMPORT - OUString sURL = aMediaDesc.getUnpackedValueOrDefault( MediaDescriptor::PROP_URL(), OUString() ); - ::std::string sURLc = OUStringToOString(sURL, RTL_TEXTENCODING_ASCII_US).getStr(); + OUString sURL = aMediaDesc.getUnpackedValueOrDefault( MediaDescriptor::PROP_URL(), OUString() ); + ::std::string sURLc = OUStringToOString(sURL, RTL_TEXTENCODING_ASCII_US).getStr(); - writerfilter::TagLogger::Pointer_t dmapperLogger + writerfilter::TagLogger::Pointer_t dmapperLogger (writerfilter::TagLogger::getInstance("DOMAINMAPPER")); - dmapperLogger->setFileName(sURLc); - dmapperLogger->startDocument(); + dmapperLogger->setFileName(sURLc); + dmapperLogger->startDocument(); #endif - uno::Reference< io::XInputStream > xInputStream; + uno::Reference< io::XInputStream > xInputStream; - aMediaDesc.addInputStream(); - aMediaDesc[ MediaDescriptor::PROP_INPUTSTREAM() ] >>= xInputStream; + aMediaDesc.addInputStream(); + aMediaDesc[ MediaDescriptor::PROP_INPUTSTREAM() ] >>= xInputStream; - uno::Reference<frame::XFrame> xFrame = aMediaDesc.getUnpackedValueOrDefault(MediaDescriptor::PROP_FRAME(), - uno::Reference<frame::XFrame>()); + uno::Reference<frame::XFrame> xFrame = aMediaDesc.getUnpackedValueOrDefault(MediaDescriptor::PROP_FRAME(), + uno::Reference<frame::XFrame>()); - writerfilter::Stream::Pointer_t pStream( - new writerfilter::dmapper::DomainMapper(m_xContext, xInputStream, m_xDstDoc, writerfilter::dmapper::DOCUMENT_RTF)); - writerfilter::rtftok::RTFDocument::Pointer_t const pDocument( - writerfilter::rtftok::RTFDocumentFactory::createDocument(m_xContext, xInputStream, m_xDstDoc, xFrame)); - pDocument->resolve(*pStream); + writerfilter::Stream::Pointer_t pStream( + new writerfilter::dmapper::DomainMapper(m_xContext, xInputStream, m_xDstDoc, writerfilter::dmapper::DOCUMENT_RTF)); + writerfilter::rtftok::RTFDocument::Pointer_t const pDocument( + writerfilter::rtftok::RTFDocumentFactory::createDocument(m_xContext, xInputStream, m_xDstDoc, xFrame)); + pDocument->resolve(*pStream); #ifdef DEBUG_IMPORT - dmapperLogger->endDocument(); + dmapperLogger->endDocument(); #endif - return sal_True; - } - - // if not, then use the old importer - uno::Reference< lang::XMultiServiceFactory > xMSF(m_xContext->getServiceManager(), uno::UNO_QUERY_THROW); - uno::Reference< uno::XInterface > xIfc( xMSF->createInstance( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.comp.Writer.RtfImport" ))), uno::UNO_QUERY_THROW); - if (!xIfc.is()) - return sal_False; - uno::Reference< document::XImporter > xImprtr(xIfc, uno::UNO_QUERY_THROW); - uno::Reference< document::XFilter > xFltr(xIfc, uno::UNO_QUERY_THROW); - if (!xImprtr.is() || !xFltr.is()) - return sal_False; - xImprtr->setTargetDocument(m_xDstDoc); - return xFltr->filter(aDescriptor); + return sal_True; } - return sal_False; + + // if not, then use the old importer + uno::Reference< lang::XMultiServiceFactory > xMSF(m_xContext->getServiceManager(), uno::UNO_QUERY_THROW); + uno::Reference< uno::XInterface > xIfc( xMSF->createInstance( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.comp.Writer.RtfImport" ))), uno::UNO_QUERY_THROW); + if (!xIfc.is()) + return sal_False; + uno::Reference< document::XImporter > xImprtr(xIfc, uno::UNO_QUERY_THROW); + uno::Reference< document::XFilter > xFltr(xIfc, uno::UNO_QUERY_THROW); + if (!xImprtr.is() || !xFltr.is()) + return sal_False; + xImprtr->setTargetDocument(m_xDstDoc); + return xFltr->filter(aDescriptor); } void RtfFilter::cancel( ) throw (uno::RuntimeException) |