summaryrefslogtreecommitdiff
path: root/editeng
diff options
context:
space:
mode:
authorVarun Dhall <varun.dhall@studentpartner.com>2017-05-24 21:13:09 +0530
committerMichael Stahl <mstahl@redhat.com>2017-06-07 14:48:28 +0200
commit0703af9e782f1e03c243ee886d1301e80817aad8 (patch)
tree7728919c759d118f7c1bbca82932d03b2f4e39b1 /editeng
parent62ef5622dc10282ad9751a358bc7edbf74d2a1c3 (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.hxx2
-rw-r--r--editeng/source/editeng/impedit2.cxx16
-rw-r--r--editeng/source/xml/xmltxtexp.cxx6
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 )