[Libreoffice-commits] core.git: Branch 'aoo/trunk' - oox/source

Steve Yin steve_y at apache.org
Tue Jan 14 02:08:06 PST 2014


 oox/source/drawingml/shape.cxx                 |    3 ++-
 oox/source/ppt/pptshapecontext.cxx             |    9 +++++++--
 oox/source/ppt/presentationfragmenthandler.cxx |    8 ++++++++
 3 files changed, 17 insertions(+), 3 deletions(-)

New commits:
commit b6f34391f8ab893dd6cf9ac7082a8c7519ce5ecf
Author: Steve Yin <steve_y at apache.org>
Date:   Tue Jan 14 09:32:00 2014 +0000

    Bug 119604 - [From Symphony]the notes view and the postion and size of the note textbox are wrong when opening the pptx file

diff --git a/oox/source/drawingml/shape.cxx b/oox/source/drawingml/shape.cxx
index 204782c..cf385ab 100644
--- a/oox/source/drawingml/shape.cxx
+++ b/oox/source/drawingml/shape.cxx
@@ -185,7 +185,8 @@ void Shape::addShape(
 
 void Shape::applyShapeReference( const Shape& rReferencedShape )
 {
-    mpTextBody = TextBodyPtr( new TextBody( *rReferencedShape.mpTextBody.get() ) );
+    if ( rReferencedShape.mpTextBody.get() )
+        mpTextBody = TextBodyPtr( new TextBody( *rReferencedShape.mpTextBody.get() ) );
     maShapeProperties = rReferencedShape.maShapeProperties;
     mpLinePropertiesPtr = LinePropertiesPtr( new LineProperties( *rReferencedShape.mpLinePropertiesPtr.get() ) );
     mpFillPropertiesPtr = FillPropertiesPtr( new FillProperties( *rReferencedShape.mpFillPropertiesPtr.get() ) );
diff --git a/oox/source/ppt/pptshapecontext.cxx b/oox/source/ppt/pptshapecontext.cxx
index c93788c..241af13 100644
--- a/oox/source/ppt/pptshapecontext.cxx
+++ b/oox/source/ppt/pptshapecontext.cxx
@@ -164,8 +164,13 @@ Reference< XFastContextHandler > PPTShapeContext::createFastChildContext( sal_In
                               {
                                   SlidePersistPtr pMasterPersist( mpSlidePersistPtr->getMasterPersist() );
                                   if ( pMasterPersist.get() )
-                                    pPlaceholder = findPlaceholder( nFirstPlaceholder, nSecondPlaceholder,
-                                pPPTShapePtr->getSubTypeIndex(), pMasterPersist->getShapes()->getChildren() );
+                                {
+                                    if ( mpSlidePersistPtr->isNotesPage() )
+                                        pPlaceholder = findPlaceholder( nFirstPlaceholder, nSecondPlaceholder, -1, pMasterPersist->getShapes()->getChildren() );
+                                    else
+                                        pPlaceholder = findPlaceholder( nFirstPlaceholder, nSecondPlaceholder,
+                                        pPPTShapePtr->getSubTypeIndex(), pMasterPersist->getShapes()->getChildren() );
+                                }
                               }
                               if ( pPlaceholder.get() )
                               {
diff --git a/oox/source/ppt/presentationfragmenthandler.cxx b/oox/source/ppt/presentationfragmenthandler.cxx
index 93ba220..609b960 100644
--- a/oox/source/ppt/presentationfragmenthandler.cxx
+++ b/oox/source/ppt/presentationfragmenthandler.cxx
@@ -268,6 +268,14 @@ void PresentationFragmentHandler::endDocument() throw (SAXException, RuntimeExce
                             SlidePersistPtr pNotesPersistPtr( new SlidePersist( rFilter, sal_False, sal_True, xNotesPage,
                                 ShapePtr( new PPTShape( Slide, "com.sun.star.drawing.GroupShape" ) ), mpTextListStyle ) );
                             FragmentHandlerRef xNotesFragmentHandler( new SlideFragmentHandler( getFilter(), aNotesFragmentPath, pNotesPersistPtr, Slide ) );
+                            // import notesMaster slide for notes slide shapes format
+                            OUString aNotesMasterFragmentPath = xNotesFragmentHandler->getFragmentPathFromFirstType( CREATE_OFFICEDOC_RELATION_TYPE( "notesMaster" ) );
+                            SlidePersistPtr pNotesMasterPersistPtr( new SlidePersist( rFilter, sal_True/*sal_False*/, sal_True, xNotesPage,
+                                ShapePtr( new PPTShape( Slide, "com.sun.star.drawing.GroupShape" ) ), mpTextListStyle ) );
+                            FragmentHandlerRef xNotesMasterFragmentHandler( new SlideFragmentHandler( getFilter(), aNotesMasterFragmentPath, pNotesMasterPersistPtr, Slide ) );
+                            importSlide( xNotesMasterFragmentHandler, pNotesMasterPersistPtr );
+                            pNotesMasterPersistPtr->createXShapes( rFilter );
+                            pNotesPersistPtr->setMasterPersist(pNotesMasterPersistPtr);
                             rFilter.getNotesPages().push_back( pNotesPersistPtr );
                             rFilter.setActualSlidePersist( pNotesPersistPtr );
                             importSlide( xNotesFragmentHandler, pNotesPersistPtr );


More information about the Libreoffice-commits mailing list