desktop/inc/liblibreoffice.h | 9 ++++++--- desktop/inc/liblibreoffice.hxx | 9 +++++++-- desktop/source/lib/init.cxx | 12 ++++++++++-- sw/source/filter/html/htmlflywriter.cxx | 12 ++++++++++-- sw/source/filter/html/htmlplug.cxx | 19 ++++++++++--------- 5 files changed, 43 insertions(+), 18 deletions(-)
New commits: commit 930f669be1100bfa1447f60cc379d51d18224dff Author: Tomaž Vajngerl <tomaz.vajng...@collabora.com> Date: Tue Apr 8 17:50:04 2014 +0200 liblo: Return early everywhere where we potentially export images. To avoid searching the node(s). Change-Id: I1ddf962113ead192435c174ff3bf607596e4bfc3 diff --git a/sw/source/filter/html/htmlflywriter.cxx b/sw/source/filter/html/htmlflywriter.cxx index 6060530..e7d5c4d 100644 --- a/sw/source/filter/html/htmlflywriter.cxx +++ b/sw/source/filter/html/htmlflywriter.cxx @@ -809,7 +809,7 @@ Writer& OutHTML_Image( Writer& rWrt, const SwFrmFmt &rFrmFmt, const sal_Char *pMarkType, const ImageMap *pAltImgMap ) { - SwHTMLWriter & rHTMLWrt = (SwHTMLWriter&)rWrt; + SwHTMLWriter &rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt); if (rHTMLWrt.mbSkipImages) return rHTMLWrt; @@ -1439,6 +1439,11 @@ static Writer& OutHTML_FrmFmtAsDivOrSpan( Writer& rWrt, static Writer & OutHTML_FrmFmtAsImage( Writer& rWrt, const SwFrmFmt& rFrmFmt, sal_Bool /*bInCntnr*/ ) { + SwHTMLWriter& rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt); + + if (rHTMLWrt.mbSkipImages) + return rWrt; + ImageMap aIMap; Graphic aGraphic( ((SwFrmFmt &)rFrmFmt).MakeGraphic( &aIMap ) ); Size aSz( 0, 0 ); @@ -1452,7 +1457,10 @@ static Writer & OutHTML_FrmFmtAsImage( Writer& rWrt, const SwFrmFmt& rFrmFmt, static Writer& OutHTML_FrmFmtGrfNode( Writer& rWrt, const SwFrmFmt& rFrmFmt, sal_Bool bInCntnr ) { - SwHTMLWriter& rHTMLWrt = (SwHTMLWriter&)rWrt; + SwHTMLWriter& rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt); + + if (rHTMLWrt.mbSkipImages) + return rWrt; const SwFmtCntnt& rFlyCntnt = rFrmFmt.GetCntnt(); sal_uLong nStt = rFlyCntnt.GetCntntIdx()->GetIndex()+1; diff --git a/sw/source/filter/html/htmlplug.cxx b/sw/source/filter/html/htmlplug.cxx index 421239b..f124b6b 100644 --- a/sw/source/filter/html/htmlplug.cxx +++ b/sw/source/filter/html/htmlplug.cxx @@ -1247,7 +1247,10 @@ Writer& OutHTML_FrmFmtOLENode( Writer& rWrt, const SwFrmFmt& rFrmFmt, Writer& OutHTML_FrmFmtOLENodeGrf( Writer& rWrt, const SwFrmFmt& rFrmFmt, sal_Bool bInCntnr ) { - SwHTMLWriter& rHTMLWrt = (SwHTMLWriter&)rWrt; + SwHTMLWriter& rHTMLWrt = static_cast<SwHTMLWriter&>(rWrt); + + if (rHTMLWrt.mbSkipImages) + return rWrt; const SwFmtCntnt& rFlyCntnt = rFrmFmt.GetCntnt(); sal_uLong nStt = rFlyCntnt.GetCntntIdx()->GetIndex()+1; @@ -1257,14 +1260,12 @@ Writer& OutHTML_FrmFmtOLENodeGrf( Writer& rWrt, const SwFrmFmt& rFrmFmt, if( !pOLENd ) return rWrt; - { - Graphic aGraphic( *pOLENd->GetGraphic() ); - sal_uLong nFlags = bInCntnr ? HTML_FRMOPTS_GENIMG_CNTNR - : HTML_FRMOPTS_GENIMG; - OutHTML_Image( rWrt, rFrmFmt, aGraphic, - pOLENd->GetTitle(), pOLENd->GetTwipSize(), - nFlags, "ole" ); - } + Graphic aGraphic( *pOLENd->GetGraphic() ); + sal_uLong nFlags = bInCntnr ? HTML_FRMOPTS_GENIMG_CNTNR + : HTML_FRMOPTS_GENIMG; + OutHTML_Image( rWrt, rFrmFmt, aGraphic, + pOLENd->GetTitle(), pOLENd->GetTwipSize(), + nFlags, "ole" ); return rWrt; } commit 55e39c72d6ac462b201dc0ae0ab0c610a0f13056 Author: Tomaž Vajngerl <tomaz.vajng...@collabora.com> Date: Tue Apr 8 17:39:10 2014 +0200 liblo: new saveAsWithOptions function To not break API compatibility of libLO, add a new saveAsWithOptions function and revert the old saveAs to initial state. Change-Id: If245c0261a932b6ed5d65e20cb1b6d8bd1c50ce6 diff --git a/desktop/inc/liblibreoffice.h b/desktop/inc/liblibreoffice.h index e9df566..87111c4 100644 --- a/desktop/inc/liblibreoffice.h +++ b/desktop/inc/liblibreoffice.h @@ -35,14 +35,17 @@ struct _LibreOfficeDocument void (*destroy) (LibreOfficeDocument* pThis); int (*saveAs) (LibreOfficeDocument* pThis, const char *pUrl, - const char *pFormat, - const char *pFilterOptions); + const char *pFormat); + int (*saveAsWithOptions) (LibreOfficeDocument* pThis, + const char *pUrl, + const char *pFormat, + const char *pFilterOptions); }; LibreOffice* lo_init (const char* pInstallPath); #ifdef __cplusplus - } +} #endif #endif diff --git a/desktop/inc/liblibreoffice.hxx b/desktop/inc/liblibreoffice.hxx index ef01cb3..29d3f72 100644 --- a/desktop/inc/liblibreoffice.hxx +++ b/desktop/inc/liblibreoffice.hxx @@ -35,9 +35,14 @@ public: } // Save as the given format, if format is NULL sniff from ext'n - inline bool saveAs(const char* pUrl, const char* pFormat = NULL, const char* pFilterOptions = NULL) + inline bool saveAs(const char* pUrl, const char* pFormat = NULL) { - return mpDoc->saveAs(mpDoc, pUrl, pFormat, pFilterOptions); + return mpDoc->saveAs(mpDoc, pUrl, pFormat); + } + + inline bool saveAsWithOptions(const char* pUrl, const char* pFormat = NULL, const char* pFilterOptions = NULL) + { + return mpDoc->saveAsWithOptions(mpDoc, pUrl, pFormat, pFilterOptions); } }; diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx index 7629988..183a555 100644 --- a/desktop/source/lib/init.cxx +++ b/desktop/source/lib/init.cxx @@ -129,7 +129,8 @@ extern "C" SAL_DLLPUBLIC_EXPORT LibreOffice *liblibreoffice_hook(void); static void doc_destroy(LibreOfficeDocument* pThis); -static int doc_saveAs(LibreOfficeDocument* pThis, const char* pUrl, const char* pFormat, const char* pFilterOptions); +static int doc_saveAs(LibreOfficeDocument* pThis, const char* pUrl, const char* pFormat); +static int doc_saveAsWithOptions(LibreOfficeDocument* pThis, const char* pUrl, const char* pFormat, const char* pFilterOptions); struct LibLODocument_Impl : public _LibreOfficeDocument { @@ -142,6 +143,7 @@ struct LibLODocument_Impl : public _LibreOfficeDocument destroy = doc_destroy; saveAs = doc_saveAs; + saveAsWithOptions = doc_saveAsWithOptions; } }; @@ -207,7 +209,12 @@ static LibreOfficeDocument* lo_documentLoad(LibreOffice* pThis, const char* pURL return NULL; } -static int doc_saveAs(LibreOfficeDocument* pThis, const char* sUrl, const char* pFormat, const char* pFilterOptions) +static int doc_saveAs(LibreOfficeDocument* pThis, const char* sUrl, const char* pFormat) +{ + return doc_saveAsWithOptions(pThis, sUrl, pFormat, NULL); +} + +static int doc_saveAsWithOptions(LibreOfficeDocument* pThis, const char* sUrl, const char* pFormat, const char* pFilterOptions) { LibLODocument_Impl* pDocument = static_cast<LibLODocument_Impl*>(pThis); commit 98668cd581f9f8dc272d42580c3989ee5dee0b53 Author: Tomaž Vajngerl <tomaz.vajng...@collabora.com> Date: Tue Apr 8 17:18:53 2014 +0200 liblo: We need to provide LibreOffice with fake command line args too. Change-Id: I34f364e63f814921bfe88af7cdf4ff4cdf6745fa diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx index 9703699..7629988 100644 --- a/desktop/source/lib/init.cxx +++ b/desktop/source/lib/init.cxx @@ -360,6 +360,7 @@ static int lo_initialize(LibreOffice* pThis, const char* pAppPath) try { + osl_setCommandArgs(0, NULL); initialize_uno(aAppURL); force_c_locale();
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits