[Libreoffice-commits] core.git: Branch 'libreoffice-5-4' - oox/source sd/qa

Paul Trojahn paul.trojahn at gmail.com
Wed Jun 21 21:04:36 UTC 2017


 oox/source/ppt/presentationfragmenthandler.cxx |    4 ++--
 sd/qa/unit/data/pptx/tdf89064.pptx             |binary
 sd/qa/unit/import-tests.cxx                    |   13 +++++++++++++
 3 files changed, 15 insertions(+), 2 deletions(-)

New commits:
commit 814dbf3624b9e8608882b003d96dfb51fa3634fc
Author: Paul Trojahn <paul.trojahn at gmail.com>
Date:   Tue Jun 6 23:05:10 2017 +0200

    tdf#89064 Fix import of pages with comments and notes
    
    importSlide removes the shapes on the page. It was used to import
    the comments and authors, which resulted in an empty notes page.
    
    Change-Id: I7d68085b482e5497d46e92328c413c87440714a0
    Reviewed-on: https://gerrit.libreoffice.org/38648
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>
    (cherry picked from commit c2da33ead8b093b12ebb9a0ea9c06d156c41a3e6)
    Reviewed-on: https://gerrit.libreoffice.org/39043
    Reviewed-by: Paul Trojahn <paul.trojahn at gmail.com>

diff --git a/oox/source/ppt/presentationfragmenthandler.cxx b/oox/source/ppt/presentationfragmenthandler.cxx
index 8dc1392bed81..30f9af5e1301 100644
--- a/oox/source/ppt/presentationfragmenthandler.cxx
+++ b/oox/source/ppt/presentationfragmenthandler.cxx
@@ -301,7 +301,7 @@ void PresentationFragmentHandler::importSlide(sal_uInt32 nSlide, bool bFirstPage
                                               pCommentAuthorsPersistPtr,
                                               Slide ) );
 
-                importSlide( xCommentAuthorsFragmentHandler, pCommentAuthorsPersistPtr );
+                getFilter().importFragment( xCommentAuthorsFragmentHandler );
                 maAuthorList.setValues( pCommentAuthorsPersistPtr->getCommentAuthors() );
             }
             if( !aCommentFragmentPath.isEmpty() )
@@ -323,7 +323,7 @@ void PresentationFragmentHandler::importSlide(sal_uInt32 nSlide, bool bFirstPage
                         pCommentsPersistPtr,
                         Slide ) );
                 pCommentsPersistPtr->getCommentsList().cmLst.clear();
-                importSlide( xCommentsFragmentHandler, pCommentsPersistPtr );
+                getFilter().importFragment( xCommentsFragmentHandler );
 
                 if (!pCommentsPersistPtr->getCommentsList().cmLst.empty())
                 {
diff --git a/sd/qa/unit/data/pptx/tdf89064.pptx b/sd/qa/unit/data/pptx/tdf89064.pptx
new file mode 100644
index 000000000000..312496f79ad0
Binary files /dev/null and b/sd/qa/unit/data/pptx/tdf89064.pptx differ
diff --git a/sd/qa/unit/import-tests.cxx b/sd/qa/unit/import-tests.cxx
index d52eda84d41a..da02f49c6946 100644
--- a/sd/qa/unit/import-tests.cxx
+++ b/sd/qa/unit/import-tests.cxx
@@ -44,6 +44,7 @@
 #include <com/sun/star/document/XDocumentPropertiesSupplier.hpp>
 #include <com/sun/star/document/XEventsSupplier.hpp>
 #include <com/sun/star/presentation/ClickAction.hpp>
+#include <com/sun/star/presentation/XPresentationPage.hpp>
 #include <com/sun/star/drawing/GraphicExportFilter.hpp>
 #include <com/sun/star/drawing/XDrawPage.hpp>
 #include <com/sun/star/drawing/XDrawPagesSupplier.hpp>
@@ -158,6 +159,7 @@ public:
     void testTdf105150();
     void testTdf105150PPT();
     void testTdf100926();
+    void testTdf89064();
 
     bool checkPattern(sd::DrawDocShellRef& rDocRef, int nShapeNumber, std::vector<sal_uInt8>& rExpected);
     void testPatternImport();
@@ -225,6 +227,7 @@ public:
     CPPUNIT_TEST(testTdf105150PPT);
     CPPUNIT_TEST(testTdf100926);
     CPPUNIT_TEST(testPatternImport);
+    CPPUNIT_TEST(testTdf89064);
 
     CPPUNIT_TEST_SUITE_END();
 };
@@ -2183,6 +2186,16 @@ void SdImportTest::testTdf100926()
     xDocShRef->DoClose();
 }
 
+void SdImportTest::testTdf89064()
+{
+    sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf89064.pptx"), PPTX);
+    uno::Reference< presentation::XPresentationPage > xPage (getPage(0, xDocShRef), uno::UNO_QUERY_THROW);
+    uno::Reference< drawing::XDrawPage > xNotesPage (xPage->getNotesPage(), uno::UNO_QUERY_THROW);
+    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1), xNotesPage->getCount());
+
+    xDocShRef->DoClose();
+}
+
 CPPUNIT_TEST_SUITE_REGISTRATION(SdImportTest);
 
 CPPUNIT_PLUGIN_IMPLEMENT();


More information about the Libreoffice-commits mailing list