diff options
author | Varun Dhall <varun.dhall@studentpartner.com> | 2017-05-24 21:13:09 +0530 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2017-06-07 14:48:28 +0200 |
commit | 0703af9e782f1e03c243ee886d1301e80817aad8 (patch) | |
tree | 7728919c759d118f7c1bbca82932d03b2f4e39b1 /editeng | |
parent | 62ef5622dc10282ad9751a358bc7edbf74d2a1c3 (diff) |
Exporting EditEngine document into a buffer with ODF Filter
Change-Id: Ib0304de5d873ac833dcc121235b8de494a1bb3bf
Reviewed-on: https://gerrit.libreoffice.org/37999
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
Diffstat (limited to 'editeng')
-rw-r--r-- | editeng/source/editeng/eeobj.hxx | 2 | ||||
-rw-r--r-- | editeng/source/editeng/impedit2.cxx | 16 | ||||
-rw-r--r-- | editeng/source/xml/xmltxtexp.cxx | 6 |
3 files changed, 21 insertions, 3 deletions
diff --git a/editeng/source/editeng/eeobj.hxx b/editeng/source/editeng/eeobj.hxx index 30c90c4d299b..f515aa938715 100644 --- a/editeng/source/editeng/eeobj.hxx +++ b/editeng/source/editeng/eeobj.hxx @@ -30,6 +30,7 @@ class EditDataObject : public ::cppu::WeakImplHelper<css::datatransfer::XTransf private: SvMemoryStream maBinData; SvMemoryStream maRTFData; + SvMemoryStream maODFData; OUString maText; OUString maOfficeBookmark; @@ -40,6 +41,7 @@ public: SvMemoryStream& GetStream() { return maBinData; } SvMemoryStream& GetRTFStream() { return maRTFData; } + SvMemoryStream& GetODFStream() { return maODFData; } OUString& GetString() { return maText; } OUString& GetURL() { return maOfficeBookmark; } diff --git a/editeng/source/editeng/impedit2.cxx b/editeng/source/editeng/impedit2.cxx index 1225628f7e64..6346589c0d3b 100644 --- a/editeng/source/editeng/impedit2.cxx +++ b/editeng/source/editeng/impedit2.cxx @@ -70,6 +70,9 @@ #include <algorithm> #include <memory> +#include <iostream> +#include <fstream> + using namespace ::com::sun::star; static sal_uInt16 lcl_CalcExtraSpace( ParaPortion*, const SvxLineSpacingItem& rLSItem ) @@ -3473,6 +3476,19 @@ uno::Reference< datatransfer::XTransferable > ImpEditEngine::CreateTransferable( WriteRTF( pDataObj->GetRTFStream(), aSelection ); pDataObj->GetRTFStream().Seek( 0 ); + WriteXML( pDataObj->GetODFStream(), aSelection ); + pDataObj->GetODFStream().Seek( 0 ); + + //Dumping the ODFStream to a XML file for testing purpose + /* + std::filebuf afilebuf; + afilebuf.open ("gsoc17_clipboard_test.xml",std::ios::out); + std::ostream os(&afilebuf); + os.write((const char*)(pDataObj->GetODFStream().GetBuffer()), pDataObj->GetODFStream().remainingSize()); + afilebuf.close(); + */ + //dumping ends + if ( ( aSelection.Min().GetNode() == aSelection.Max().GetNode() ) && ( aSelection.Max().GetIndex() == (aSelection.Min().GetIndex()+1) ) ) { diff --git a/editeng/source/xml/xmltxtexp.cxx b/editeng/source/xml/xmltxtexp.cxx index dc21c86c9eb0..c78bf1d0d862 100644 --- a/editeng/source/xml/xmltxtexp.cxx +++ b/editeng/source/xml/xmltxtexp.cxx @@ -308,9 +308,10 @@ SvxXMLTextExportComponent::SvxXMLTextExportComponent( const ESelection& rSel, const OUString& rFileName, const css::uno::Reference< css::xml::sax::XDocumentHandler > & xHandler) -: SvXMLExport( xContext, "", rFileName, xHandler, (static_cast<frame::XModel*>(new SvxSimpleUnoModel())), FUNIT_CM ) +: SvXMLExport( xContext, "", rFileName, xHandler, (static_cast<frame::XModel*>(new SvxSimpleUnoModel())), FUNIT_CM, + SvXMLExportFlags::OASIS | SvXMLExportFlags::AUTOSTYLES | SvXMLExportFlags::CONTENT ) { - SvxEditEngineSource aEditSource( pEditEngine ); + SvxEditEngineSource aEditSource( pEditEngine ); static const SfxItemPropertyMapEntry SvxXMLTextExportComponentPropertyMap[] = { @@ -328,7 +329,6 @@ SvxXMLTextExportComponent::SvxXMLTextExportComponent( pUnoText->SetSelection( rSel ); mxText = pUnoText; - setExportFlags( SvXMLExportFlags::AUTOSTYLES|SvXMLExportFlags::CONTENT ); } void SvxWriteXML( EditEngine& rEditEngine, SvStream& rStream, const ESelection& rSel ) |