oox/source/drawingml/graphicshapecontext.cxx | 12 ++++++++++++ oox/source/ppt/extdrawingfragmenthandler.cxx | 5 ++++- oox/source/ppt/pptimport.cxx | 2 +- 3 files changed, 17 insertions(+), 2 deletions(-)
New commits: commit ec4cba01b5f6045187ae6bd55f8cf58ef1af7b9c Author: Andras Timar <andras.ti...@collabora.com> Date: Fri Feb 10 21:27:26 2017 +0100 Related: tdf#105707 PPTX import: decode document name from URL Change-Id: I7448c48b9376a4b73b8a35034a73353981174823 diff --git a/oox/source/ppt/pptimport.cxx b/oox/source/ppt/pptimport.cxx index df84f79..a7c3aff 100644 --- a/oox/source/ppt/pptimport.cxx +++ b/oox/source/ppt/pptimport.cxx @@ -102,7 +102,7 @@ bool PowerPointImport::importDocument() { // Construct a warning message. INetURLObject aURL(getFileUrl()); - SfxErrorContext aContext(ERRCTX_SFX_OPENDOC, aURL.getName(INetURLObject::LAST_SEGMENT), nullptr, RID_ERRCTX); + SfxErrorContext aContext(ERRCTX_SFX_OPENDOC, aURL.getName(INetURLObject::LAST_SEGMENT, true, INetURLObject::DECODE_WITH_CHARSET), nullptr, RID_ERRCTX); OUString aWarning; aContext.GetString(ERRCODE_WARNING_MASK, aWarning); aWarning += ":\n"; commit 62869582258a28c471277f3eaa93efec6becfaca Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Fri Feb 10 16:41:55 2017 +0100 Related: tdf#105707 PPTX import: warn on empty SmartArt fallback This second related situation is about when there is drawingML fallback for the SmartArt, but it's ampty shape tree, which is never created with MSO2010+ (those shape trees always have at least one element). This is as bad as the missing drawingML fallback, so warn on it. Change-Id: I539d05154a4d1fcd5871dfc29616f77eb9945454 diff --git a/oox/source/ppt/extdrawingfragmenthandler.cxx b/oox/source/ppt/extdrawingfragmenthandler.cxx index d7a77ac..38a9361 100644 --- a/oox/source/ppt/extdrawingfragmenthandler.cxx +++ b/oox/source/ppt/extdrawingfragmenthandler.cxx @@ -9,6 +9,7 @@ #include "extdrawingfragmenthandler.hxx" +#include <oox/core/xmlfilterbase.hxx> using namespace ::oox::core; using namespace ::com::sun::star::xml::sax; using namespace ::com::sun::star::uno; @@ -34,7 +35,9 @@ ExtDrawingFragmentHandler::ExtDrawingFragmentHandler( XmlFilterBase& rFilter, ExtDrawingFragmentHandler::~ExtDrawingFragmentHandler( ) throw () { - + // Empty DrawingML fallback, need to warn the user at the end. + if (mpShapePtr && mpShapePtr->getChildren().empty()) + getFilter().setMissingExtDrawing(); } ContextHandlerRef commit 65844c64aa4057805a11aa28d4cbb4637e1b6c53 Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Fri Feb 10 14:33:51 2017 +0100 Related: tdf#105707 PPTX import: warn on invalid SmartArt fallback relid We already warn when the SmartArt doesn't have a drawingML fallback, but having a reference to a fallback that is not a valid one (so resolves to an empty fragment path) is also unusable. So warn in that case as well. Change-Id: I03b2325003b4eb38b1347a88899799c6d5c33606 diff --git a/oox/source/drawingml/graphicshapecontext.cxx b/oox/source/drawingml/graphicshapecontext.cxx index a1b6419..99029c3 100644 --- a/oox/source/drawingml/graphicshapecontext.cxx +++ b/oox/source/drawingml/graphicshapecontext.cxx @@ -273,6 +273,18 @@ ContextHandlerRef DiagramGraphicDataContext::onCreateContext( ::sal_Int32 aEleme // No DrawingML fallback, need to warn the user at the end. if (mpShapePtr->getExtDrawings().empty()) getFilter().setMissingExtDrawing(); + else + { + for (const auto& rRelId : mpShapePtr->getExtDrawings()) + { + // An invalid fallback reference is as bad as a missing one. + if (getFragmentPathFromRelId(rRelId).isEmpty()) + { + getFilter().setMissingExtDrawing(); + break; + } + } + } break; } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits