[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.0-29' - 11 commits - chart2/qa chart2/source include/oox oox/source sdext/source sd/qa sw/qa sw/source writerfilter/source

Regina Henschel (via logerrit) logerrit at kemper.freedesktop.org
Wed Jun 12 09:42:05 UTC 2019


 chart2/qa/extras/chart2dump/chart2dump.cxx                        |    1 
 chart2/qa/extras/chart2dump/data/tdf118150.xlsx                   |binary
 chart2/qa/extras/chart2dump/reference/axislabeltest/tdf118150.txt |  216 ++++++++++
 chart2/qa/extras/chart2import.cxx                                 |   23 +
 chart2/qa/extras/data/pptx/tdf122765.pptx                         |binary
 chart2/source/view/main/ChartView.cxx                             |    4 
 include/oox/export/drawingml.hxx                                  |    6 
 include/oox/ppt/presentationfragmenthandler.hxx                   |    2 
 oox/source/drawingml/chart/titleconverter.cxx                     |    1 
 oox/source/drawingml/fillproperties.cxx                           |    5 
 oox/source/export/drawingml.cxx                                   |   52 +-
 oox/source/ppt/presentationfragmenthandler.cxx                    |   20 
 sd/qa/unit/data/odp/image_transparency.odp                        |binary
 sd/qa/unit/data/pptx/tdf125346.pptx                               |binary
 sd/qa/unit/data/pptx/tdf125346_2.pptx                             |binary
 sd/qa/unit/data/pptx/tdf125360.pptx                               |binary
 sd/qa/unit/data/pptx/tdf125360_1.pptx                             |binary
 sd/qa/unit/data/pptx/tdf125360_2.pptx                             |binary
 sd/qa/unit/export-tests-ooxml1.cxx                                |   26 +
 sd/qa/unit/export-tests-ooxml2.cxx                                |  152 ++++++-
 sdext/source/minimizer/graphiccollector.cxx                       |    6 
 sw/qa/extras/ooxmlexport/data/tdf123636_newlinePageBreak.docx     |binary
 sw/qa/extras/ooxmlexport/data/tdf123636_newlinePageBreak2.docx    |binary
 sw/qa/extras/ooxmlexport/data/tdf123636_newlinePageBreak3.docx    |binary
 sw/qa/extras/ooxmlexport/data/tdf123636_newlinePageBreak4.docx    |binary
 sw/qa/extras/ooxmlexport/ooxmlexport11.cxx                        |   27 +
 sw/qa/extras/ooxmlexport/ooxmlexport6.cxx                         |    2 
 sw/qa/extras/ww8export/data/tdf118375_240degClockwise.doc         |binary
 sw/qa/extras/ww8export/ww8export3.cxx                             |   23 +
 sw/qa/extras/ww8import/ww8import.cxx                              |   16 
 sw/source/filter/ww8/wrtw8esh.cxx                                 |   30 +
 sw/source/filter/ww8/ww8graf.cxx                                  |   11 
 sw/source/filter/ww8/ww8par.cxx                                   |    2 
 sw/source/filter/xml/xmlexp.cxx                                   |    5 
 writerfilter/source/dmapper/DomainMapper.cxx                      |   23 +
 35 files changed, 618 insertions(+), 35 deletions(-)

New commits:
commit 4db76f9332641ed87ff1c5217a16167be4c6c353
Author:     Regina Henschel <rb.henschel at t-online.de>
AuthorDate: Tue Apr 2 21:36:57 2019 +0200
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Wed Jun 12 11:17:50 2019 +0200

    tdf#118375, tdf#70838 correct position of rotated shape in doc
    
    Word relates the position to the unrotated shape in legacy doc
    format. Writer uses the rotated shape. The patch corrects the
    difference on import and export.
    
    Reviewed-on: https://gerrit.libreoffice.org/70152
    Tested-by: Jenkins
    Reviewed-by: Regina Henschel <rb.henschel at t-online.de>
    (cherry picked from commit 421e6fc3cd2e6fe37afbef341e2d0ad7b8edde37)
    
    Change-Id: I25537123656e62d6ffae5118ee8d621a4b5c5be0

diff --git a/sw/qa/extras/ww8export/data/tdf118375_240degClockwise.doc b/sw/qa/extras/ww8export/data/tdf118375_240degClockwise.doc
new file mode 100644
index 000000000000..99d15e20cea5
Binary files /dev/null and b/sw/qa/extras/ww8export/data/tdf118375_240degClockwise.doc differ
diff --git a/sw/qa/extras/ww8export/ww8export3.cxx b/sw/qa/extras/ww8export/ww8export3.cxx
index 84f9e2f2d6cf..32b4197452b1 100644
--- a/sw/qa/extras/ww8export/ww8export3.cxx
+++ b/sw/qa/extras/ww8export/ww8export3.cxx
@@ -106,6 +106,29 @@ DECLARE_WW8EXPORT_TEST(testTdf94009_zeroPgMargin, "tdf94009_zeroPgMargin.odt")
     CPPUNIT_ASSERT_EQUAL(sal_Int32(0), getProperty<sal_Int32>(defaultStyle, "TopMargin"));
 }
 
+DECLARE_WW8EXPORT_TEST(testTdf118375export, "tdf118375_240degClockwise.doc")
+{
+    // The input document has one custom shape, which is rotated 240deg. Check
+    // that it has the same position as in Word.
+    uno::Reference<drawing::XDrawPagesSupplier> xDrawPagesSupplier(mxComponent,
+                                                                   uno::UNO_QUERY_THROW);
+    CPPUNIT_ASSERT_MESSAGE("Could not get XDrawPagesSupplier", xDrawPagesSupplier.is());
+    uno::Reference<drawing::XDrawPages> xDrawPages(xDrawPagesSupplier->getDrawPages());
+    uno::Reference<drawing::XDrawPage> xDrawPage(xDrawPages->getByIndex(0), uno::UNO_QUERY_THROW);
+    CPPUNIT_ASSERT_MESSAGE("Could not get xDrawPage", xDrawPage.is());
+    uno::Reference<drawing::XShape> xShape(xDrawPage->getByIndex(0), uno::UNO_QUERY);
+    CPPUNIT_ASSERT_MESSAGE("Could not get xShape", xShape.is());
+    uno::Reference<beans::XPropertySet> xShapeProps(xShape, uno::UNO_QUERY);
+    CPPUNIT_ASSERT_MESSAGE("Could not get the shape properties", xShapeProps.is());
+    sal_Int32 nPosX, nPosY;
+    xShapeProps->getPropertyValue("HoriOrientPosition") >>= nPosX;
+    xShapeProps->getPropertyValue("VertOrientPosition") >>= nPosY;
+    // Allow some tolerance because rounding errors through integer arithmethic
+    // in rotation.
+    CPPUNIT_ASSERT_DOUBLES_EQUAL(5200.0, static_cast<double>(nPosX), 1.0);
+    CPPUNIT_ASSERT_DOUBLES_EQUAL(1152.0, static_cast<double>(nPosY), 1.0);
+}
+
 CPPUNIT_PLUGIN_IMPLEMENT();
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/filter/ww8/wrtw8esh.cxx b/sw/source/filter/ww8/wrtw8esh.cxx
index 0ae92a2aec2d..e1655946c80c 100644
--- a/sw/source/filter/ww8/wrtw8esh.cxx
+++ b/sw/source/filter/ww8/wrtw8esh.cxx
@@ -663,6 +663,7 @@ void PlcDrawObj::WritePlc( WW8Export& rWrt ) const
                 WinwordAnchoring::ConvertPosition( rHOr, rVOr, rFormat );
 
             Point aObjPos;
+            bool bHasHeightWidthSwapped(false);
             if (RES_FLYFRMFMT == rFormat.Which())
             {
                 SwRect aLayRect(rFormat.FindLayoutRect(false, &aObjPos));
@@ -698,6 +699,7 @@ void PlcDrawObj::WritePlc( WW8Export& rWrt ) const
                         const long nHeight = aRect.getHeight();
                         aRect.setWidth( nHeight );
                         aRect.setHeight( nWidth );
+                        bHasHeightWidthSwapped = true;
                     }
                 }
             }
@@ -759,6 +761,34 @@ void PlcDrawObj::WritePlc( WW8Export& rWrt ) const
             //Nasty swap for bidi if necessary
             rWrt.MiserableRTLFrameFormatHack(nLeft, nRight, rFrameFormat);
 
+            // tdf#70838. Word relates the position to the unrotated rectangle,
+            // Writer to the rotated one. Because the rotation is around center,
+            // the difference counts half.
+            if(pObj && pObj->GetRotateAngle())
+            {
+                SwTwips nXOff;
+                SwTwips nYOff;
+                SwTwips nSnapWidth = pObj->GetSnapRect().getWidth();
+                SwTwips nSnapHeight = pObj->GetSnapRect().getHeight();
+                SwTwips nLogicWidth = pObj->GetLogicRect().getWidth();
+                SwTwips nLogicHeight = pObj->GetLogicRect().getHeight();
+                // +1 for to compensate integer arithmetic rounding errors
+                if(bHasHeightWidthSwapped)
+                {
+                    nXOff = (nSnapWidth - nLogicHeight + 1) / 2;
+                    nYOff = (nSnapHeight - nLogicWidth + 1) / 2;
+                }
+                else
+                {
+                    nXOff = (nSnapWidth - nLogicWidth + 1) / 2;
+                    nYOff = (nSnapHeight - nLogicHeight + 1) / 2;
+                }
+                nLeft += nXOff;
+                nRight += nXOff;
+                nTop += nYOff;
+                nBottom += nYOff;
+            }
+
             //xaLeft/yaTop/xaRight/yaBottom - rel. to anchor
             //(most of) the border is outside the graphic is word, so
             //change dimensions to fit
diff --git a/sw/source/filter/ww8/ww8graf.cxx b/sw/source/filter/ww8/ww8graf.cxx
index 870df79b9114..c675d9ed752c 100644
--- a/sw/source/filter/ww8/ww8graf.cxx
+++ b/sw/source/filter/ww8/ww8graf.cxx
@@ -2504,6 +2504,17 @@ SwFrameFormat* SwWW8ImplReader::Read_GrafLayer( long nGrafAnchorCp )
         return nullptr;
     }
 
+    // tdf#118375 Word relates position to the unrotated rectangle,
+    // Writer uses the rotated one.
+    if (pObject->GetRotateAngle())
+    {
+        tools::Rectangle aObjSnapRect(pObject->GetSnapRect()); // recalculates the SnapRect
+        pF->nXaLeft = aObjSnapRect.Left();
+        pF->nYaTop = aObjSnapRect.Top();
+        pF->nXaRight = aObjSnapRect.Right();
+        pF->nYaBottom = aObjSnapRect.Bottom();
+    }
+
     bool bDone = false;
     SdrObject* pOurNewObject = nullptr;
     bool bReplaceable = false;
commit 2c53920bda4f8289d1cc083161a39923f6871cfa
Author:     Justin Luth <justin_luth at sil.org>
AuthorDate: Fri Jan 11 13:01:26 2019 +0300
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Wed Jun 12 11:15:45 2019 +0200

    tdf#120145 ww8import: ignoreCols if section is inserted
    
    Otherwise, the column setting is duplicated both in the section
    and in the page style.
    
    Change-Id: I14383c646e709a3653f1054f0d4170a2963529c1
    Reviewed-on: https://gerrit.libreoffice.org/66151
    Tested-by: Jenkins
    Reviewed-by: Justin Luth <justin_luth at sil.org>
    (cherry picked from commit 84fefd7c295fc05499ca222dff50c2fe4e0fb27e)
    Reviewed-on: https://gerrit.libreoffice.org/66217
    Reviewed-by: Miklos Vajna <vmiklos at collabora.com>
    (cherry picked from commit 0e863f5529318e07f46568150e489cb0bef9b616)

diff --git a/sw/qa/extras/ww8import/ww8import.cxx b/sw/qa/extras/ww8import/ww8import.cxx
index 31cfce841d3c..abbdedbea194 100644
--- a/sw/qa/extras/ww8import/ww8import.cxx
+++ b/sw/qa/extras/ww8import/ww8import.cxx
@@ -9,6 +9,7 @@
 
 #include <swmodeltestbase.hxx>
 
+#include <com/sun/star/text/XTextColumns.hpp>
 #include <com/sun/star/text/XTextTablesSupplier.hpp>
 #include <ndtxt.hxx>
 #include <viscrs.hxx>
@@ -33,12 +34,23 @@ DECLARE_WW8IMPORT_TEST(testFloatingTableSectionMargins, "floating-table-section-
 {
     sal_Int32 pageLeft = parseDump("/root/page[2]/infos/bounds", "left").toInt32();
     sal_Int32 pageWidth = parseDump("/root/page[2]/infos/bounds", "width").toInt32();
-    sal_Int32 tableLeft = parseDump("/root/page[2]/body/column/body/section/column/body/txt[2]/anchored/fly/tab/infos/bounds", "left").toInt32();
-    sal_Int32 tableWidth = parseDump("/root/page[2]/body/column/body/section/column/body/txt[2]/anchored/fly/tab/infos/bounds", "width").toInt32();
+    sal_Int32 tableLeft = parseDump("//tab/infos/bounds", "left").toInt32();
+    sal_Int32 tableWidth = parseDump("//tab/infos/bounds", "width").toInt32();
     CPPUNIT_ASSERT( pageWidth > 0 );
     CPPUNIT_ASSERT( tableWidth > 0 );
     // The table's resulting position should be roughly centered.
     CPPUNIT_ASSERT( abs(( pageLeft + pageWidth / 2 ) - ( tableLeft + tableWidth / 2 )) < 20 );
+
+    uno::Reference<beans::XPropertySet> xTextSection = getProperty< uno::Reference<beans::XPropertySet> >(getParagraph(2), "TextSection");
+    CPPUNIT_ASSERT(xTextSection.is());
+    uno::Reference<text::XTextColumns> xTextColumns = getProperty< uno::Reference<text::XTextColumns> >(xTextSection, "TextColumns");
+    OUString pageStyleName = getProperty<OUString>(getParagraph(2), "PageStyleName");
+    uno::Reference<style::XStyle> pageStyle( getStyles("PageStyles")->getByName(pageStyleName), uno::UNO_QUERY);
+    uno::Reference<beans::XPropertySet> xPageStyle(getStyles("PageStyles")->getByName(pageStyleName), uno::UNO_QUERY);
+    uno::Reference<text::XTextColumns> xPageColumns = getProperty< uno::Reference<text::XTextColumns> >(xPageStyle, "TextColumns");
+
+    //either one or the other should get the column's, not both.
+    CPPUNIT_ASSERT( xTextColumns->getColumnCount() != xPageColumns->getColumnCount());
 }
 
 DECLARE_WW8IMPORT_TEST(testN816593, "n816593.doc")
diff --git a/sw/source/filter/ww8/ww8par.cxx b/sw/source/filter/ww8/ww8par.cxx
index b09cf7ded47f..ad340445d383 100644
--- a/sw/source/filter/ww8/ww8par.cxx
+++ b/sw/source/filter/ww8/ww8par.cxx
@@ -4480,7 +4480,7 @@ void wwSectionManager::InsertSegments()
              descriptor.
             */
 
-            bool bIgnoreCols = false;
+            bool bIgnoreCols = bInsertSection;
             bool bThisAndNextAreCompatible = (aNext == aEnd) ||
                 ((aIter->GetPageWidth() == aNext->GetPageWidth()) &&
                  (aIter->GetPageHeight() == aNext->GetPageHeight()) &&
commit e4ec7597954a17e714d2986832ec9a084bda88e5
Author:     Justin Luth <justin.luth at collabora.com>
AuthorDate: Tue Apr 16 14:14:03 2019 +0300
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Wed Jun 12 11:15:41 2019 +0200

    tdf#123636 writerfilter: handle deferred breaks on frames
    
    and...
    related tdf#123636 writerfilter: split newline also if PAGE_BREAK
    
    ...but only with old MSWord compat flag SplitPgBreakAndParaMark.
    
    All of the other cases (COLUMN_BREAK and non-empty runs) split
    the paragraph, so why not here?  This document shows it is needed,
    but only for SplitPgBreakAndParaMark documents.
    
    Note: Word 2003 doesn't display "modern" docx well in this regard.
    It adds extra paragraphs where it shouldn't. There are already
    example unit tests that ensure that extra paragraphs aren't written
    for SplitPgBreakAndParaMark == false.
    
    The actual bug's document is not related to the compatibility flag.
    That will be handled in separate commit.
    
    Reviewed-on: https://gerrit.libreoffice.org/70835
    Tested-by: Jenkins
    Reviewed-by: Justin Luth <justin_luth at sil.org>
    (cherry picked from commit 89e44da1ab450f6e2f4106103efd169227683f20)
    
    tdf#123636 writerfilter: handle deferred breaks on frames
    
    ...similar to handling breaks before shapes in lcl_startShape.
    
    Three different examples found to create/split a paragraph.
    Which one to use? (addDummy, m_bIsSplitPara, and
    lcl_startCharacterGroup). SplitPara is not good because the
    paragraph properties probably should not be copied to the
    dummy paragraph (like numbering for example). Slightly
    modified the lcl_startChar example to ensure that the dummy
    paragraph doesn't steal a part of the properties, but is
    only default properties plus page-break.
    
    This doesn't export very well, so roundtripping is very poor.
    
    Research Note: There exists a compat flag showBreaksInFrames
    (Display Page/Column Breaks Present in Frames)
    "This element specifies whether applications should
    honor the presence of page and/or column breaks which are
    present within the contents of paragraphs which have been
    defined as frames using the framePr element."
    --Currently, LO does nothing with this flag. Probably too
    exotic and irrelevant (word 2003 era?).
    
    No existing unit tests found that have isSet(pg_brk) frames.
    
    Reviewed-on: https://gerrit.libreoffice.org/71255
    Tested-by: Jenkins
    Reviewed-by: Justin Luth <justin_luth at sil.org>
    Reviewed-by: Miklos Vajna <vmiklos at collabora.com>
    (cherry picked from commit f6f53f76e15f5eecc5b6ce56e471c53cebfea8ad)
    
    Change-Id: I29f815355401c7af8b347a3ed9d0298bc9b27b93

diff --git a/sw/qa/extras/ooxmlexport/data/tdf123636_newlinePageBreak.docx b/sw/qa/extras/ooxmlexport/data/tdf123636_newlinePageBreak.docx
new file mode 100644
index 000000000000..6f7b4b144547
Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/tdf123636_newlinePageBreak.docx differ
diff --git a/sw/qa/extras/ooxmlexport/data/tdf123636_newlinePageBreak2.docx b/sw/qa/extras/ooxmlexport/data/tdf123636_newlinePageBreak2.docx
new file mode 100644
index 000000000000..a876bea84e02
Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/tdf123636_newlinePageBreak2.docx differ
diff --git a/sw/qa/extras/ooxmlexport/data/tdf123636_newlinePageBreak3.docx b/sw/qa/extras/ooxmlexport/data/tdf123636_newlinePageBreak3.docx
new file mode 100644
index 000000000000..1bcc335fdc59
Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/tdf123636_newlinePageBreak3.docx differ
diff --git a/sw/qa/extras/ooxmlexport/data/tdf123636_newlinePageBreak4.docx b/sw/qa/extras/ooxmlexport/data/tdf123636_newlinePageBreak4.docx
new file mode 100644
index 000000000000..3a9d86ee21e2
Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/tdf123636_newlinePageBreak4.docx differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx
index d5e98bebfde0..b8214f664e42 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx
@@ -423,6 +423,33 @@ DECLARE_OOXMLEXPORT_TEST(testTdf116371, "tdf116371.odt")
     CPPUNIT_ASSERT_EQUAL(sal_Int32(24188), frameRect.Width);
 }
 
+DECLARE_OOXMLEXPORT_TEST(testTdf123636_newlinePageBreak, "tdf123636_newlinePageBreak.docx")
+{
+    //MS Compatibility flag: SplitPgBreakAndParaMark
+    //special case: split first empty paragraph in a section.
+    CPPUNIT_ASSERT_EQUAL_MESSAGE( "Number of Paragraphs", 2, getParagraphs() );
+    CPPUNIT_ASSERT_EQUAL_MESSAGE( "Number of Pages", 2, getPages() );
+}
+
+DECLARE_OOXMLEXPORT_TEST(testTdf123636_newlinePageBreak2, "tdf123636_newlinePageBreak2.docx")
+{
+    //WITHOUT SplitPgBreakAndParaMark: a following anchored shape should force a page break
+    //CPPUNIT_ASSERT_EQUAL_MESSAGE( "Number of Paragraphs", 2, getParagraphs() );
+    CPPUNIT_ASSERT_EQUAL(OUString(), getProperty<OUString>(getParagraph(2, ""), "NumberingStyleName"));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE( "Number of Pages", 2, getPages() );
+}
+
+DECLARE_OOXMLEXPORT_TEST(testTdf123636_newlinePageBreak4, "tdf123636_newlinePageBreak4.docx")
+{
+    //MS Compatibility flag: SplitPgBreakAndParaMark
+    //special case: an empty paragraph doesn't split (except if first paragraph).
+    CPPUNIT_ASSERT_EQUAL_MESSAGE( "Number of Paragraphs", 3, getParagraphs() );
+    CPPUNIT_ASSERT_EQUAL_MESSAGE( "Number of Pages", 2, getPages() );
+
+    xmlDocPtr pDump = parseLayoutDump();
+    assertXPath(pDump, "/root/page[2]/body/txt[1]/Text", 0);
+}
+
 CPPUNIT_PLUGIN_IMPLEMENT();
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport6.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport6.cxx
index 155624839efd..bc404040def9 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport6.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport6.cxx
@@ -938,6 +938,8 @@ DECLARE_OOXMLEXPORT_TEST(testExtentValue, "fdo74605.docx")
     sal_Int32 nX = getXPath(pXmlDoc, "/w:document/w:body/w:p[2]/w:r[1]/mc:AlternateContent[1]/mc:Choice[1]/w:drawing[1]/wp:anchor[1]/wp:extent", "cx").toInt32();
     // This was negative.
     CPPUNIT_ASSERT(nX >= 0);
+
+    CPPUNIT_ASSERT_EQUAL_MESSAGE( "Number of Pages", 2, getPages() );
 }
 
 // part of tdf#93676, word gives the frame in the exported .docx a huge height,
diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx
index 499f402d8ad7..d116a8d2a0c3 100644
--- a/writerfilter/source/dmapper/DomainMapper.cxx
+++ b/writerfilter/source/dmapper/DomainMapper.cxx
@@ -2045,6 +2045,22 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, const PropertyMapPtr& rContext )
         PropertyMapPtr pContext = m_pImpl->GetTopContextOfType(CONTEXT_PARAGRAPH);
         if( pContext.get() )
         {
+            // If there is a deferred page break applied to this framed paragraph,
+            // create a dummy paragraph without extra properties,
+            // so that the anchored frame will be on the correct page (similar to shapes).
+            if (pContext->isSet(PROP_BREAK_TYPE))
+            {
+                pContext->Erase(PROP_BREAK_TYPE);
+
+                lcl_startParagraphGroup();
+                m_pImpl->GetTopContext()->Insert(PROP_BREAK_TYPE, uno::makeAny(style::BreakType_PAGE_BEFORE));
+                lcl_startCharacterGroup();
+                sal_uInt8 const sBreak[] = { 0xd };
+                lcl_text(sBreak, 1);
+                lcl_endCharacterGroup();
+                lcl_endParagraphGroup();
+            }
+
             ParagraphPropertyMap* pParaContext = dynamic_cast< ParagraphPropertyMap* >( pContext.get() );
             if (pParaContext)
                 pParaContext->SetFrameMode();
@@ -3420,6 +3436,13 @@ void DomainMapper::lcl_utext(const sal_uInt8 * data_, size_t len)
                 {
                     if (m_pImpl->GetSettingsTable()->GetSplitPgBreakAndParaMark())
                     {
+                        if ( m_pImpl->GetIsFirstParagraphInSection() || !m_pImpl->IsFirstRun() )
+                        {
+                            m_pImpl->m_bIsSplitPara = true;
+                            m_pImpl->finishParagraph( m_pImpl->GetTopContextOfType(CONTEXT_PARAGRAPH) );
+                            lcl_startParagraphGroup();
+                        }
+
                         pContext->Insert(PROP_BREAK_TYPE, uno::makeAny(style::BreakType_PAGE_BEFORE));
                         m_pImpl->clearDeferredBreaks();
                     }
commit deb0e1e113256dfd0307e4b86c0c3f8394123e26
Author:     Tamás Zolnai <tamas.zolnai at collabora.com>
AuthorDate: Tue May 28 17:32:44 2019 +0200
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Wed Jun 12 11:14:17 2019 +0200

    tdf#122765: Legend interferes with pie chart after pptx import, second part
    
    Revert of:
    2903c5f59d257b6ab94f32df64513f2edf94fb0b
    
    Reverting this commit does not lead to the original bug
    to come back, so we can revert it without a problem.
    
    Change-Id: I244a6b9451c47e1094db8a77c71b6696e0c464cc
    Reviewed-on: https://gerrit.libreoffice.org/73139
    Reviewed-by: Tamás Zolnai <tamas.zolnai at collabora.com>
    Tested-by: Tamás Zolnai <tamas.zolnai at collabora.com>
    (cherry picked from commit 63d17d01da0f9e3a7554e4327244ee4457b7188d)
    Reviewed-on: https://gerrit.libreoffice.org/73160
    Reviewed-by: Andras Timar <andras.timar at collabora.com>
    Tested-by: Andras Timar <andras.timar at collabora.com>

diff --git a/chart2/source/view/main/ChartView.cxx b/chart2/source/view/main/ChartView.cxx
index 49c598709280..ec2c62c823fc 100644
--- a/chart2/source/view/main/ChartView.cxx
+++ b/chart2/source/view/main/ChartView.cxx
@@ -1619,7 +1619,6 @@ awt::Rectangle ChartView::impl_createDiagramAndContent( const CreateShapeParam2D
     uno::Reference< drawing::XShapes > xSeriesTargetInFrontOfAxis(nullptr);
     uno::Reference< drawing::XShapes > xSeriesTargetBehindAxis(nullptr);
     VDiagram aVDiagram(xDiagram, aPreferredAspectRatio, nDimensionCount);
-    bool bIsPieOrDonut = lcl_IsPieOrDonut(xDiagram);
     {//create diagram
         aVDiagram.init(rParam.mxDiagramWithAxesShapes, m_xShapeFactory);
         aVDiagram.createShapes(
@@ -1628,7 +1627,7 @@ awt::Rectangle ChartView::impl_createDiagramAndContent( const CreateShapeParam2D
 
         xSeriesTargetInFrontOfAxis = aVDiagram.getCoordinateRegion();
         // It is preferable to use full size than minimum for pie charts
-        if (!bIsPieOrDonut && !rParam.mbUseFixedInnerSize)
+        if (!rParam.mbUseFixedInnerSize)
             aVDiagram.reduceToMimimumSize();
     }
 
@@ -1656,6 +1655,7 @@ awt::Rectangle ChartView::impl_createDiagramAndContent( const CreateShapeParam2D
 
     //use first coosys only so far; todo: calculate for more than one coosys if we have more in future
     //todo: this is just a workaround at the moment for pie and donut labels
+    bool bIsPieOrDonut = lcl_IsPieOrDonut(xDiagram);
     if( !bIsPieOrDonut && (!rVCooSysList.empty()) )
     {
         VCoordinateSystem* pVCooSys = rVCooSysList[0];
commit 2dc855ee4ec9c3e22683dd6963aba2f33a07590b
Author:     Tamás Zolnai <tamas.zolnai at collabora.com>
AuthorDate: Tue May 21 12:05:33 2019 +0200
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Wed Jun 12 11:14:11 2019 +0200

    Add unit test for tdf#118150.
    
    Change-Id: Icea2c8aacb36e843dad67a056d07d6495fbbb17a
    Reviewed-on: https://gerrit.libreoffice.org/72678
    Tested-by: Jenkins
    Reviewed-by: Tamás Zolnai <tamas.zolnai at collabora.com>
    (cherry picked from commit a703b4d8842261f55f489c28352df1f53a9b070a)
    Reviewed-on: https://gerrit.libreoffice.org/72766
    Reviewed-by: Andras Timar <andras.timar at collabora.com>
    Tested-by: Andras Timar <andras.timar at collabora.com>

diff --git a/chart2/qa/extras/chart2dump/chart2dump.cxx b/chart2/qa/extras/chart2dump/chart2dump.cxx
index c852446efe7e..90daeef87e1f 100644
--- a/chart2/qa/extras/chart2dump/chart2dump.cxx
+++ b/chart2/qa/extras/chart2dump/chart2dump.cxx
@@ -648,6 +648,7 @@ DECLARE_DUMP_TEST(AxisLabelTest, Chart2DumpTest, false)
         "rotated_axis_labels.odp",
         "formated_axis_labels.odp",
         "percent_stacked_column_chart.odp",
+        "tdf118150.xlsx",
     };
 
     for (const OUString& sTestFile : aTestFiles)
diff --git a/chart2/qa/extras/chart2dump/data/tdf118150.xlsx b/chart2/qa/extras/chart2dump/data/tdf118150.xlsx
new file mode 100644
index 000000000000..f29b9a1c2e66
Binary files /dev/null and b/chart2/qa/extras/chart2dump/data/tdf118150.xlsx differ
diff --git a/chart2/qa/extras/chart2dump/reference/axislabeltest/tdf118150.txt b/chart2/qa/extras/chart2dump/reference/axislabeltest/tdf118150.txt
new file mode 100644
index 000000000000..fabf4acac67b
--- /dev/null
+++ b/chart2/qa/extras/chart2dump/reference/axislabeltest/tdf118150.txt
@@ -0,0 +1,216 @@
+/// CID/D=0:CS=0:Axis=0,0
+// nAxisLabelsCount
+28
+// xLabel->getString()
+Sep 2013
+// static_cast<sal_Int32>(aLabelFontColor)
+0
+// fLabelFontHeight
+10
+// xLabel->getString()
+Oct 2013
+// static_cast<sal_Int32>(aLabelFontColor)
+0
+// fLabelFontHeight
+10
+// xLabel->getString()
+Nov 2013
+// static_cast<sal_Int32>(aLabelFontColor)
+0
+// fLabelFontHeight
+10
+// xLabel->getString()
+Dec 2013
+// static_cast<sal_Int32>(aLabelFontColor)
+0
+// fLabelFontHeight
+10
+// xLabel->getString()
+Jan 2014
+// static_cast<sal_Int32>(aLabelFontColor)
+0
+// fLabelFontHeight
+10
+// xLabel->getString()
+Feb 2014
+// static_cast<sal_Int32>(aLabelFontColor)
+0
+// fLabelFontHeight
+10
+// xLabel->getString()
+Mar 2014
+// static_cast<sal_Int32>(aLabelFontColor)
+0
+// fLabelFontHeight
+10
+// xLabel->getString()
+Apr 2014
+// static_cast<sal_Int32>(aLabelFontColor)
+0
+// fLabelFontHeight
+10
+// xLabel->getString()
+May 2014
+// static_cast<sal_Int32>(aLabelFontColor)
+0
+// fLabelFontHeight
+10
+// xLabel->getString()
+Jun 2014
+// static_cast<sal_Int32>(aLabelFontColor)
+0
+// fLabelFontHeight
+10
+// xLabel->getString()
+Jul 2014
+// static_cast<sal_Int32>(aLabelFontColor)
+0
+// fLabelFontHeight
+10
+// xLabel->getString()
+Aug 2014
+// static_cast<sal_Int32>(aLabelFontColor)
+0
+// fLabelFontHeight
+10
+// xLabel->getString()
+Sep 2014
+// static_cast<sal_Int32>(aLabelFontColor)
+0
+// fLabelFontHeight
+10
+// xLabel->getString()
+Oct 2014
+// static_cast<sal_Int32>(aLabelFontColor)
+0
+// fLabelFontHeight
+10
+// xLabel->getString()
+Nov 2014
+// static_cast<sal_Int32>(aLabelFontColor)
+0
+// fLabelFontHeight
+10
+// xLabel->getString()
+Dec 2014
+// static_cast<sal_Int32>(aLabelFontColor)
+0
+// fLabelFontHeight
+10
+// xLabel->getString()
+Jan 2015
+// static_cast<sal_Int32>(aLabelFontColor)
+0
+// fLabelFontHeight
+10
+// xLabel->getString()
+Feb 2015
+// static_cast<sal_Int32>(aLabelFontColor)
+0
+// fLabelFontHeight
+10
+// xLabel->getString()
+Mar 2015
+// static_cast<sal_Int32>(aLabelFontColor)
+0
+// fLabelFontHeight
+10
+// xLabel->getString()
+Apr 2015
+// static_cast<sal_Int32>(aLabelFontColor)
+0
+// fLabelFontHeight
+10
+// xLabel->getString()
+May 2015
+// static_cast<sal_Int32>(aLabelFontColor)
+0
+// fLabelFontHeight
+10
+// xLabel->getString()
+Jun 2015
+// static_cast<sal_Int32>(aLabelFontColor)
+0
+// fLabelFontHeight
+10
+// xLabel->getString()
+Jul 2015
+// static_cast<sal_Int32>(aLabelFontColor)
+0
+// fLabelFontHeight
+10
+// xLabel->getString()
+Aug 2015
+// static_cast<sal_Int32>(aLabelFontColor)
+0
+// fLabelFontHeight
+10
+// xLabel->getString()
+Sep 2015
+// static_cast<sal_Int32>(aLabelFontColor)
+0
+// fLabelFontHeight
+10
+// xLabel->getString()
+Oct 2015
+// static_cast<sal_Int32>(aLabelFontColor)
+0
+// fLabelFontHeight
+10
+// xLabel->getString()
+Nov 2015
+// static_cast<sal_Int32>(aLabelFontColor)
+0
+// fLabelFontHeight
+10
+// xLabel->getString()
+Dec 2015
+// static_cast<sal_Int32>(aLabelFontColor)
+0
+// fLabelFontHeight
+10
+/// CID/D=0:CS=0:Axis=1,0
+// nAxisLabelsCount
+7
+// xLabel->getString()
+0.00
+// static_cast<sal_Int32>(aLabelFontColor)
+0
+// fLabelFontHeight
+10
+// xLabel->getString()
+2.00
+// static_cast<sal_Int32>(aLabelFontColor)
+0
+// fLabelFontHeight
+10
+// xLabel->getString()
+4.00
+// static_cast<sal_Int32>(aLabelFontColor)
+0
+// fLabelFontHeight
+10
+// xLabel->getString()
+6.00
+// static_cast<sal_Int32>(aLabelFontColor)
+0
+// fLabelFontHeight
+10
+// xLabel->getString()
+8.00
+// static_cast<sal_Int32>(aLabelFontColor)
+0
+// fLabelFontHeight
+10
+// xLabel->getString()
+10.00
+// static_cast<sal_Int32>(aLabelFontColor)
+0
+// fLabelFontHeight
+10
+// xLabel->getString()
+12.00
+// static_cast<sal_Int32>(aLabelFontColor)
+0
+// fLabelFontHeight
+10
commit 092990aebdf510ce13e92487e692ef8f1826a9b6
Author:     Tamás Zolnai <tamas.zolnai at collabora.com>
AuthorDate: Mon May 20 18:27:33 2019 +0200
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Wed Jun 12 11:14:05 2019 +0200

    tdf#125360: PPTX: Shape fill transparency is not exported
    
    .. if the original shape fill is defined with a theme
    
    Override the alpha value with the current value get from
    FillTransparence API attirbute even if the color is defined
    with a style or a color scheme.
    
    Reviewed-on: https://gerrit.libreoffice.org/72596
    Tested-by: Jenkins
    Reviewed-by: Tamás Zolnai <tamas.zolnai at collabora.com>
    (cherry picked from commit 259d01a34d27df2fbfd11c3bf6fe9dc508ff6ac2)
    
    Change-Id: I09d26238a9c2b501279e6749687dc535e614bbd6
    Reviewed-on: https://gerrit.libreoffice.org/72617
    Reviewed-by: Andras Timar <andras.timar at collabora.com>
    Tested-by: Andras Timar <andras.timar at collabora.com>

diff --git a/include/oox/export/drawingml.hxx b/include/oox/export/drawingml.hxx
index 5b7e9660ace1..360577aa5ceb 100644
--- a/include/oox/export/drawingml.hxx
+++ b/include/oox/export/drawingml.hxx
@@ -164,14 +164,14 @@ public:
     OUString WriteImage( const Graphic &rGraphic , bool bRelPathToMedia = false);
 
     void WriteColor( sal_uInt32 nColor, sal_Int32 nAlpha = MAX_PERCENT );
-    void WriteColor( const OUString& sColorSchemeName, const css::uno::Sequence< css::beans::PropertyValue >& aTransformations );
-    void WriteColorTransformations( const css::uno::Sequence< css::beans::PropertyValue >& aTransformations );
+    void WriteColor( const OUString& sColorSchemeName, const css::uno::Sequence< css::beans::PropertyValue >& aTransformations, sal_Int32 nAlpha = MAX_PERCENT );
+    void WriteColorTransformations( const css::uno::Sequence< css::beans::PropertyValue >& aTransformations, sal_Int32 nAlpha = MAX_PERCENT );
     void WriteGradientStop( sal_uInt16 nStop, sal_uInt32 nColor );
     void WriteLineArrow( const css::uno::Reference< css::beans::XPropertySet >& rXPropSet, bool bLineStart );
     void WriteConnectorConnections( EscherConnectorListEntry& rConnectorEntry, sal_Int32 nStartID, sal_Int32 nEndID );
 
     void WriteSolidFill( sal_uInt32 nColor, sal_Int32 nAlpha = MAX_PERCENT );
-    void WriteSolidFill( const OUString& sSchemeName, const css::uno::Sequence< css::beans::PropertyValue >& aTransformations );
+    void WriteSolidFill( const OUString& sSchemeName, const css::uno::Sequence< css::beans::PropertyValue >& aTransformations, sal_Int32 nAlpha = MAX_PERCENT );
     void WriteSolidFill( const css::uno::Reference< css::beans::XPropertySet >& rXPropSet );
     void WriteGradientFill( const css::uno::Reference< css::beans::XPropertySet >& rXPropSet );
     void WriteGradientFill( css::awt::Gradient rGradient );
diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx
index 8846baa8395d..0bc60021feb5 100644
--- a/oox/source/export/drawingml.cxx
+++ b/oox/source/export/drawingml.cxx
@@ -234,7 +234,7 @@ void DrawingML::WriteColor( sal_uInt32 nColor, sal_Int32 nAlpha )
     }
 }
 
-void DrawingML::WriteColor( const OUString& sColorSchemeName, const Sequence< PropertyValue >& aTransformations )
+void DrawingML::WriteColor( const OUString& sColorSchemeName, const Sequence< PropertyValue >& aTransformations, sal_Int32 nAlpha )
 {
     // prevent writing a tag with empty val attribute
     if( sColorSchemeName.isEmpty() )
@@ -245,7 +245,15 @@ void DrawingML::WriteColor( const OUString& sColorSchemeName, const Sequence< Pr
         mpFS->startElementNS( XML_a, XML_schemeClr,
                               XML_val, USS( sColorSchemeName ),
                               FSEND );
-        WriteColorTransformations( aTransformations );
+        WriteColorTransformations( aTransformations, nAlpha );
+        mpFS->endElementNS( XML_a, XML_schemeClr );
+    }
+    else if(nAlpha < MAX_PERCENT)
+    {
+        mpFS->startElementNS( XML_a, XML_schemeClr,
+                              XML_val, USS( sColorSchemeName ),
+                              FSEND );
+        mpFS->singleElementNS(XML_a, XML_alpha, XML_val, OString::number(nAlpha), FSEND);
         mpFS->endElementNS( XML_a, XML_schemeClr );
     }
     else
@@ -256,15 +264,22 @@ void DrawingML::WriteColor( const OUString& sColorSchemeName, const Sequence< Pr
     }
 }
 
-void DrawingML::WriteColorTransformations( const Sequence< PropertyValue >& aTransformations )
+void DrawingML::WriteColorTransformations( const Sequence< PropertyValue >& aTransformations, sal_Int32 nAlpha )
 {
     for( sal_Int32 i = 0; i < aTransformations.getLength(); i++ )
     {
         sal_Int32 nToken = Color::getColorTransformationToken( aTransformations[i].Name );
         if( nToken != XML_TOKEN_INVALID && aTransformations[i].Value.hasValue() )
         {
-            sal_Int32 nValue = aTransformations[i].Value.get<sal_Int32>();
-            mpFS->singleElementNS( XML_a, nToken, XML_val, I32S( nValue ), FSEND );
+            if(nToken == XML_alpha && nAlpha < MAX_PERCENT)
+            {
+                mpFS->singleElementNS(XML_a, nToken, XML_val, I32S(nAlpha), FSEND);
+            }
+            else
+            {
+                sal_Int32 nValue = aTransformations[i].Value.get<sal_Int32>();
+                mpFS->singleElementNS( XML_a, nToken, XML_val, I32S( nValue ), FSEND );
+            }
         }
     }
 }
@@ -276,10 +291,10 @@ void DrawingML::WriteSolidFill( sal_uInt32 nColor, sal_Int32 nAlpha )
     mpFS->endElementNS( XML_a, XML_solidFill );
 }
 
-void DrawingML::WriteSolidFill( const OUString& sSchemeName, const Sequence< PropertyValue >& aTransformations )
+void DrawingML::WriteSolidFill( const OUString& sSchemeName, const Sequence< PropertyValue >& aTransformations, sal_Int32 nAlpha )
 {
     mpFS->startElementNS( XML_a, XML_solidFill, FSEND );
-    WriteColor( sSchemeName, aTransformations );
+    WriteColor( sSchemeName, aTransformations, nAlpha );
     mpFS->endElementNS( XML_a, XML_solidFill );
 }
 
@@ -329,20 +344,33 @@ void DrawingML::WriteSolidFill( const Reference< XPropertySet >& rXPropSet )
     else if ( !sColorFillScheme.isEmpty() )
     {
         // the shape had a scheme color and the user didn't change it
-        WriteSolidFill( sColorFillScheme, aTransformations );
+        WriteSolidFill( sColorFillScheme, aTransformations, nAlpha );
     }
     else if ( aStyleProperties.hasElements() )
     {
         sal_uInt32 nThemeColor = 0;
+        sal_Int32 nThemeAlpha = MAX_PERCENT;
         for( sal_Int32 i=0; i < aStyleProperties.getLength(); ++i )
         {
             if( aStyleProperties[i].Name == "Color" )
             {
                 aStyleProperties[i].Value >>= nThemeColor;
-                break;
+            }
+            else if(aStyleProperties[i].Name == "Transformations" )
+            {
+                Sequence< PropertyValue > aStyleTransformations;
+                aStyleProperties[i].Value >>= aStyleTransformations;
+                for( sal_Int32 j = 0; j < aStyleTransformations.getLength(); j++ )
+                {
+                    if (aStyleTransformations[j].Name == "alpha" )
+                    {
+                        aStyleTransformations[j].Value >>= nThemeAlpha;
+                        break;
+                    }
+                }
             }
         }
-        if ( nFillColor != nThemeColor )
+        if ( nFillColor != nThemeColor || nAlpha != nThemeAlpha )
             // the shape contains a theme but it wasn't being used
             WriteSolidFill( nFillColor & 0xffffff, nAlpha );
         // in case the shape used the style color and the user didn't change it,
diff --git a/sd/qa/unit/data/pptx/tdf125360.pptx b/sd/qa/unit/data/pptx/tdf125360.pptx
new file mode 100644
index 000000000000..c1a3045bc17b
Binary files /dev/null and b/sd/qa/unit/data/pptx/tdf125360.pptx differ
diff --git a/sd/qa/unit/data/pptx/tdf125360_1.pptx b/sd/qa/unit/data/pptx/tdf125360_1.pptx
new file mode 100644
index 000000000000..cfc5798369db
Binary files /dev/null and b/sd/qa/unit/data/pptx/tdf125360_1.pptx differ
diff --git a/sd/qa/unit/data/pptx/tdf125360_2.pptx b/sd/qa/unit/data/pptx/tdf125360_2.pptx
new file mode 100644
index 000000000000..4f6b16455f71
Binary files /dev/null and b/sd/qa/unit/data/pptx/tdf125360_2.pptx differ
diff --git a/sd/qa/unit/export-tests-ooxml2.cxx b/sd/qa/unit/export-tests-ooxml2.cxx
index 792824650251..63c62803233d 100644
--- a/sd/qa/unit/export-tests-ooxml2.cxx
+++ b/sd/qa/unit/export-tests-ooxml2.cxx
@@ -145,6 +145,9 @@ public:
     void testOpenDocumentAsReadOnly();
     void testTdf125346();
     void testTdf125346_2();
+    void testTdf125360();
+    void testTdf125360_1();
+    void testTdf125360_2();
 
     CPPUNIT_TEST_SUITE(SdOOXMLExportTest2);
 
@@ -213,6 +216,9 @@ public:
     CPPUNIT_TEST(testOpenDocumentAsReadOnly);
     CPPUNIT_TEST(testTdf125346);
     CPPUNIT_TEST(testTdf125346_2);
+    CPPUNIT_TEST(testTdf125360);
+    CPPUNIT_TEST(testTdf125360_1);
+    CPPUNIT_TEST(testTdf125360_2);
 
     CPPUNIT_TEST_SUITE_END();
 
@@ -1805,6 +1811,76 @@ void SdOOXMLExportTest2::testTdf125346_2()
     xDocShRef->DoClose();
 }
 
+void SdOOXMLExportTest2::testTdf125360()
+{
+    // Check whether the changed fill transparency is exported correctly.
+    // Color is defined by shape style
+    ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf125360.pptx"), PPTX);
+
+    uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 0, xDocShRef ) );
+
+    xShape->setPropertyValue("FillTransparence", uno::makeAny(static_cast<sal_Int32>(23)));
+
+    utl::TempFile tempFile;
+    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+
+    xShape.set( getShapeFromPage( 0, 0, xDocShRef ) );
+
+    sal_Int32 nTransparence = 0;
+    xShape->getPropertyValue("FillTransparence") >>= nTransparence;
+    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(23), nTransparence);
+
+    xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf125360_1()
+{
+    // Check whether the changed fill transparency is exported correctly.
+    // Color is defined by color scheme
+    ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf125360_1.pptx"), PPTX);
+
+    uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 0, xDocShRef ) );
+
+    xShape->setPropertyValue("FillTransparence", uno::makeAny(static_cast<sal_Int32>(23)));
+
+    utl::TempFile tempFile;
+    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+
+    xShape.set( getShapeFromPage( 0, 0, xDocShRef ) );
+
+    sal_Int32 nTransparence = 0;
+    xShape->getPropertyValue("FillTransparence") >>= nTransparence;
+    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(23), nTransparence);
+
+    xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf125360_2()
+{
+    // Check whether the changed fill transparency is exported correctly.
+    // Color is defined by color scheme with a transparency
+    ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf125360_2.pptx"), PPTX);
+
+    uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 0, xDocShRef ) );
+
+    sal_Int32 nTransparence = 0;
+    xShape->getPropertyValue("FillTransparence") >>= nTransparence;
+    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(82), nTransparence);
+
+    xShape->setPropertyValue("FillTransparence", uno::makeAny(static_cast<sal_Int32>(23)));
+
+    utl::TempFile tempFile;
+    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+
+    xShape.set( getShapeFromPage( 0, 0, xDocShRef ) );
+
+    nTransparence = 0;
+    xShape->getPropertyValue("FillTransparence") >>= nTransparence;
+    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(23), nTransparence);
+
+    xDocShRef->DoClose();
+}
+
 CPPUNIT_TEST_SUITE_REGISTRATION(SdOOXMLExportTest2);
 
 CPPUNIT_PLUGIN_IMPLEMENT();
commit 46de25f7fe028810e174ea790270dac3110dcf27
Author:     Tamás Zolnai <tamas.zolnai at collabora.com>
AuthorDate: Sat May 18 15:21:11 2019 +0200
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Wed Jun 12 11:14:00 2019 +0200

    tdf#125346: PPTX export: Shape has wrong fill color comming from theme
    
    Write the correct theme path to the InteropGrabBag, the same path
    what is generated and checked in the export code.
    
    Reviewed-on: https://gerrit.libreoffice.org/72500
    Tested-by: Jenkins
    Reviewed-by: Tamás Zolnai <tamas.zolnai at collabora.com>
    (cherry picked from commit a8bba60e8b655167ad91edcd0c2d1723d525b546)
    
    Change-Id: I32617c1a11cf3bafb142f7c8839b498aaac49aa0
    Reviewed-on: https://gerrit.libreoffice.org/72522
    Reviewed-by: Andras Timar <andras.timar at collabora.com>
    Tested-by: Andras Timar <andras.timar at collabora.com>

diff --git a/include/oox/ppt/presentationfragmenthandler.hxx b/include/oox/ppt/presentationfragmenthandler.hxx
index 18dfe2c35fe1..91f34935e016 100644
--- a/include/oox/ppt/presentationfragmenthandler.hxx
+++ b/include/oox/ppt/presentationfragmenthandler.hxx
@@ -50,7 +50,7 @@ private:
     void importSlide( const ::oox::core::FragmentHandlerRef& rSlideFragmentHandler,
                         const oox::ppt::SlidePersistPtr& rPersist );
     void importSlide(sal_uInt32 nSlide, bool bFirstSlide, bool bImportNotes);
-    void saveThemeToGrabBag(oox::drawingml::ThemePtr pThemePtr, const OUString& sTheme);
+    void saveThemeToGrabBag(oox::drawingml::ThemePtr pThemePtr, sal_Int32 nThemeIdx);
 
     std::vector< OUString > maSlideMasterVector;
     std::vector< OUString > maSlidesVector;
diff --git a/oox/source/ppt/presentationfragmenthandler.cxx b/oox/source/ppt/presentationfragmenthandler.cxx
index 3c4a3c109b78..6e0ebeb27661 100644
--- a/oox/source/ppt/presentationfragmenthandler.cxx
+++ b/oox/source/ppt/presentationfragmenthandler.cxx
@@ -159,7 +159,7 @@ void ResolveTextFields( XmlFilterBase const & rFilter )
     }
 }
 
-void PresentationFragmentHandler::saveThemeToGrabBag(oox::drawingml::ThemePtr pThemePtr, const OUString& sTheme)
+void PresentationFragmentHandler::saveThemeToGrabBag(oox::drawingml::ThemePtr pThemePtr, sal_Int32 nThemeIdx)
 {
     if (!pThemePtr)
         return;
@@ -197,8 +197,11 @@ void PresentationFragmentHandler::saveThemeToGrabBag(oox::drawingml::ThemePtr pT
                     aCurrentTheme[nId].Value = rColor;
                 }
 
+
                 // add new theme to the sequence
-                aTheme[0].Name = sTheme;
+                // Export code uses the master slide's index to find the right theme
+                // so use the same index in the grabbag.
+                aTheme[0].Name = "ppt/theme/theme" + OUString::number(nThemeIdx) + ".xml";
                 const uno::Any& rCurrentTheme = makeAny(aCurrentTheme);
                 aTheme[0].Value = rCurrentTheme;
 
@@ -274,10 +277,17 @@ void PresentationFragmentHandler::importSlide(sal_uInt32 nSlide, bool bFirstPage
                         Reference< drawing::XMasterPagesSupplier > xMPS( xModel, uno::UNO_QUERY_THROW );
                         Reference< drawing::XDrawPages > xMasterPages( xMPS->getMasterPages(), uno::UNO_QUERY_THROW );
 
+                        sal_Int32 nIndex;
                         if( rFilter.getMasterPages().empty() )
-                            xMasterPages->getByIndex( 0 ) >>= xMasterPage;
+                        {
+                            nIndex = 0;
+                            xMasterPages->getByIndex( nIndex ) >>= xMasterPage;
+                        }
                         else
-                            xMasterPage = xMasterPages->insertNewByIndex( xMasterPages->getCount() );
+                        {
+                            nIndex = xMasterPages->getCount();
+                            xMasterPage = xMasterPages->insertNewByIndex( nIndex );
+                        }
 
                         pMasterPersistPtr = std::make_shared<SlidePersist>( rFilter, true, false, xMasterPage,
                             ShapePtr( new PPTShape( Master, "com.sun.star.drawing.GroupShape" ) ), mpTextListStyle );
@@ -307,7 +317,7 @@ void PresentationFragmentHandler::importSlide(sal_uInt32 nSlide, bool bFirstPage
                                         UNO_QUERY_THROW));
                                 rThemes[ aThemeFragmentPath ] = pThemePtr;
                                 pThemePtr->setFragment(xDoc);
-                                saveThemeToGrabBag(pThemePtr, aThemeFragmentPath);
+                                saveThemeToGrabBag(pThemePtr, nIndex + 1);
                             }
                             else
                             {
diff --git a/sd/qa/unit/data/pptx/tdf125346.pptx b/sd/qa/unit/data/pptx/tdf125346.pptx
new file mode 100644
index 000000000000..32fbbdf52e96
Binary files /dev/null and b/sd/qa/unit/data/pptx/tdf125346.pptx differ
diff --git a/sd/qa/unit/data/pptx/tdf125346_2.pptx b/sd/qa/unit/data/pptx/tdf125346_2.pptx
new file mode 100644
index 000000000000..53225581026e
Binary files /dev/null and b/sd/qa/unit/data/pptx/tdf125346_2.pptx differ
diff --git a/sd/qa/unit/export-tests-ooxml2.cxx b/sd/qa/unit/export-tests-ooxml2.cxx
index c1f15d7a5a05..792824650251 100644
--- a/sd/qa/unit/export-tests-ooxml2.cxx
+++ b/sd/qa/unit/export-tests-ooxml2.cxx
@@ -143,7 +143,8 @@ public:
     void testTdf104789();
     void testTdf116350TextEffects();
     void testOpenDocumentAsReadOnly();
-
+    void testTdf125346();
+    void testTdf125346_2();
 
     CPPUNIT_TEST_SUITE(SdOOXMLExportTest2);
 
@@ -210,6 +211,8 @@ public:
     CPPUNIT_TEST(testTdf104789);
     CPPUNIT_TEST(testTdf116350TextEffects);
     CPPUNIT_TEST(testOpenDocumentAsReadOnly);
+    CPPUNIT_TEST(testTdf125346);
+    CPPUNIT_TEST(testTdf125346_2);
 
     CPPUNIT_TEST_SUITE_END();
 
@@ -1731,6 +1734,77 @@ void SdOOXMLExportTest2::testOpenDocumentAsReadOnly()
     xDocShRef->DoClose();
 }
 
+void SdOOXMLExportTest2::testTdf125346()
+{
+    // There are two themes in the test document, make sure we use the right theme
+    ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf125346.pptx"), PPTX);
+    utl::TempFile tempFile;
+    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+
+    uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 0, xDocShRef ) );
+    uno::Reference< beans::XPropertySet > xPropSet( xShape, uno::UNO_SET_THROW );
+
+    drawing::FillStyle aFillStyle( drawing::FillStyle_NONE );
+    xPropSet->getPropertyValue("FillStyle") >>= aFillStyle;
+    CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_SOLID, aFillStyle);
+
+    sal_Int32 nFillColor;
+    xPropSet->getPropertyValue("FillColor") >>= nFillColor;
+    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0x90C226), nFillColor);
+
+    xDocShRef->DoClose();
+}
+
+void SdOOXMLExportTest2::testTdf125346_2()
+{
+    // There are two themes in the test document, make sure we use the right theme
+    // Test more slides with different themes
+    ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf125346_2.pptx"), PPTX);
+    utl::TempFile tempFile;
+    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+
+    {
+        uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 0, xDocShRef ) );
+        uno::Reference< beans::XPropertySet > xPropSet( xShape, uno::UNO_SET_THROW );
+
+        drawing::FillStyle aFillStyle( drawing::FillStyle_NONE );
+        xPropSet->getPropertyValue("FillStyle") >>= aFillStyle;
+        CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_SOLID, aFillStyle);
+
+        sal_Int32 nFillColor;
+        xPropSet->getPropertyValue("FillColor") >>= nFillColor;
+        CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0x90C226), nFillColor);
+    }
+
+    {
+        uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 1, xDocShRef ) );
+        uno::Reference< beans::XPropertySet > xPropSet( xShape, uno::UNO_SET_THROW );
+
+        drawing::FillStyle aFillStyle( drawing::FillStyle_NONE );
+        xPropSet->getPropertyValue("FillStyle") >>= aFillStyle;
+        CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_SOLID, aFillStyle);
+
+        sal_Int32 nFillColor;
+        xPropSet->getPropertyValue("FillColor") >>= nFillColor;
+        CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0x052F61), nFillColor);
+    }
+
+    {
+        uno::Reference< beans::XPropertySet > xShape( getShapeFromPage( 0, 2, xDocShRef ) );
+        uno::Reference< beans::XPropertySet > xPropSet( xShape, uno::UNO_SET_THROW );
+
+        drawing::FillStyle aFillStyle( drawing::FillStyle_NONE );
+        xPropSet->getPropertyValue("FillStyle") >>= aFillStyle;
+        CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_SOLID, aFillStyle);
+
+        sal_Int32 nFillColor;
+        xPropSet->getPropertyValue("FillColor") >>= nFillColor;
+        CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0x90C226), nFillColor);
+    }
+
+    xDocShRef->DoClose();
+}
+
 CPPUNIT_TEST_SUITE_REGISTRATION(SdOOXMLExportTest2);
 
 CPPUNIT_PLUGIN_IMPLEMENT();
commit cae40f0de45796295574fd1cf3d6a2e283407e9a
Author:     Tamás Zolnai <tamas.zolnai at collabora.com>
AuthorDate: Mon May 13 15:56:52 2019 +0200
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Wed Jun 12 11:13:54 2019 +0200

    Presentation minimizer: Handle also presentation.GraphicObjectShape URL
    
    Change-Id: I326b2803bf2d98d440e14d7f3f75ca61c2c9e49a
    Reviewed-on: https://gerrit.libreoffice.org/72303
    Reviewed-by: Tamás Zolnai <tamas.zolnai at collabora.com>
    Tested-by: Tamás Zolnai <tamas.zolnai at collabora.com>
    (cherry picked from commit aa446591b7feb5bb667533ef7acdfc636105f9d9)
    Reviewed-on: https://gerrit.libreoffice.org/72357
    Reviewed-by: Andras Timar <andras.timar at collabora.com>
    Tested-by: Andras Timar <andras.timar at collabora.com>

diff --git a/sdext/source/minimizer/graphiccollector.cxx b/sdext/source/minimizer/graphiccollector.cxx
index d37945eeb542..e6dbd5ca581a 100644
--- a/sdext/source/minimizer/graphiccollector.cxx
+++ b/sdext/source/minimizer/graphiccollector.cxx
@@ -228,7 +228,8 @@ void ImpCollectGraphicObjects( const Reference< XComponentContext >& rxMSF, cons
                 continue;
             }
 
-            if ( sShapeType == "com.sun.star.drawing.GraphicObjectShape" )
+            if ( sShapeType == "com.sun.star.drawing.GraphicObjectShape" ||
+                 sShapeType == "com.sun.star.presentation.GraphicObjectShape" )
                 ImpAddGraphicEntity( rxMSF, xShape, rGraphicSettings, rGraphicEntities );
 
             // now check for a fillstyle
@@ -348,7 +349,8 @@ void ImpCountGraphicObjects( const Reference< XComponentContext >& rxMSF, const
                 continue;
             }
 
-            if ( sShapeType == "com.sun.star.drawing.GraphicObjectShape" )
+            if ( sShapeType == "com.sun.star.drawing.GraphicObjectShape" ||
+                 sShapeType == "com.sun.star.presentation.GraphicObjectShape" )
             {
                 rnGraphics++;
             }
commit cb355767aab7d5746d8a8ba2da98bd5bc1d73384
Author:     Tamás Zolnai <tamas.zolnai at collabora.com>
AuthorDate: Tue May 7 21:39:40 2019 +0200
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Wed Jun 12 11:13:48 2019 +0200

    PPTX: Fix import / export of image transparency
    
    Reviewed-on: https://gerrit.libreoffice.org/71916
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Tamás Zolnai <tamas.zolnai at collabora.com>
    (cherry picked from commit ae3aabdb951643af8d2f7aee9c9f900245e5b384)
    
    Change-Id: Ib07c606083b833389fcb82aac57ca8535d6e861f
    Reviewed-on: https://gerrit.libreoffice.org/71933
    Reviewed-by: Andras Timar <andras.timar at collabora.com>
    Tested-by: Andras Timar <andras.timar at collabora.com>

diff --git a/oox/source/drawingml/fillproperties.cxx b/oox/source/drawingml/fillproperties.cxx
index 5e9d56b8ed8d..b521b3683a88 100644
--- a/oox/source/drawingml/fillproperties.cxx
+++ b/oox/source/drawingml/fillproperties.cxx
@@ -799,6 +799,11 @@ void GraphicProperties::pushToPropMap( PropertyMap& rPropMap, const GraphicHelpe
                 rPropMap.setProperty(PROP_GraphicCrop, aGraphCrop);
             }
         }
+
+        if ( maBlipProps.moAlphaModFix.has() )
+        {
+            rPropMap.setProperty(PROP_Transparency, static_cast<sal_Int16>(100 - (maBlipProps.moAlphaModFix.get() / PER_PERCENT)));
+        }
     }
     rPropMap.setProperty(PROP_GraphicColorMode, eColorMode);
 
diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx
index 78efe5275cfa..8846baa8395d 100644
--- a/oox/source/export/drawingml.cxx
+++ b/oox/source/export/drawingml.cxx
@@ -1166,11 +1166,11 @@ OUString DrawingML::WriteBlip( const Reference< XPropertySet >& rXPropSet, const
     }
     sal_Int16 nBright = 0;
     sal_Int32 nContrast = 0;
-    sal_Int32 nTransparence = 0;
+    sal_Int16 nTransparence = 0;
 
     GET( nBright, AdjustLuminance );
     GET( nContrast, AdjustContrast );
-    GET( nTransparence, FillTransparence );
+    GET( nTransparence, Transparency );
 
     mpFS->startElementNS( XML_a, XML_blip,
             FSNS( XML_r, XML_embed), sRelId.toUtf8().getStr(),
diff --git a/sd/qa/unit/data/odp/image_transparency.odp b/sd/qa/unit/data/odp/image_transparency.odp
new file mode 100644
index 000000000000..6d3f6c232d91
Binary files /dev/null and b/sd/qa/unit/data/odp/image_transparency.odp differ
diff --git a/sd/qa/unit/export-tests-ooxml1.cxx b/sd/qa/unit/export-tests-ooxml1.cxx
index 3e328682f310..07a1de91c7eb 100644
--- a/sd/qa/unit/export-tests-ooxml1.cxx
+++ b/sd/qa/unit/export-tests-ooxml1.cxx
@@ -103,6 +103,7 @@ public:
     void testTdf112633();
     void testCustomXml();
     void testTdf94238();
+    void testPictureTransparency();
 
     CPPUNIT_TEST_SUITE(SdOOXMLExportTest1);
 
@@ -134,6 +135,7 @@ public:
     CPPUNIT_TEST(testTdf112633);
     CPPUNIT_TEST(testCustomXml);
     CPPUNIT_TEST(testTdf94238);
+    CPPUNIT_TEST(testPictureTransparency);
 
     CPPUNIT_TEST_SUITE_END();
 
@@ -894,6 +896,30 @@ void SdOOXMLExportTest1::testTdf94238()
     xDocShRef->DoClose();
 }
 
+void SdOOXMLExportTest1::testPictureTransparency()
+{
+    // Load document and export it to a temporary file.
+    ::sd::DrawDocShellRef xDocShRef
+        = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/odp/image_transparency.odp"), ODP);
+    utl::TempFile tempFile;
+    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+    uno::Reference<drawing::XDrawPagesSupplier> xDoc(xDocShRef->GetDoc()->getUnoModel(),
+                                                     uno::UNO_QUERY);
+    CPPUNIT_ASSERT(xDoc.is());
+
+    uno::Reference<drawing::XDrawPage> xPage(xDoc->getDrawPages()->getByIndex(0), uno::UNO_QUERY);
+    CPPUNIT_ASSERT(xPage.is());
+
+    uno::Reference<beans::XPropertySet> xGraphicShape(getShape(0, xPage));
+    CPPUNIT_ASSERT(xGraphicShape.is());
+
+    sal_Int16 nTransparency = 0;
+    CPPUNIT_ASSERT(xGraphicShape->getPropertyValue("Transparency") >>= nTransparency);
+    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int16>(51), nTransparency);
+
+    xDocShRef->DoClose();
+}
+
 CPPUNIT_TEST_SUITE_REGISTRATION(SdOOXMLExportTest1);
 
 CPPUNIT_PLUGIN_IMPLEMENT();
commit f670f41a313fb99b1a91b3dca5065d01e0504a93
Author:     Tamás Zolnai <tamas.zolnai at collabora.com>
AuthorDate: Tue May 21 12:50:31 2019 +0200
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Wed Jun 12 11:13:22 2019 +0200

    tdf#122765: Legend interferes with pie chart after pptx import
    
    Revert the commit caused this regression:
    0fc41c53dfbd21e526fb0ad68a6651693c4a2ecd
    
    The original issue does not come back with
    reverting this commit.
    
    Reviewed-on: https://gerrit.libreoffice.org/72679
    Tested-by: Jenkins
    Reviewed-by: Tamás Zolnai <tamas.zolnai at collabora.com>
    (cherry picked from commit 10609749126ca76eaf12904d4cce9cc5a16d8405)
    
    Change-Id: I666c4f92e3b70b416ec6da7a704298d207451649
    Reviewed-on: https://gerrit.libreoffice.org/72767
    Reviewed-by: Andras Timar <andras.timar at collabora.com>
    Tested-by: Andras Timar <andras.timar at collabora.com>

diff --git a/chart2/qa/extras/chart2import.cxx b/chart2/qa/extras/chart2import.cxx
index 428f3f801a53..1de330ec62dc 100644
--- a/chart2/qa/extras/chart2import.cxx
+++ b/chart2/qa/extras/chart2import.cxx
@@ -110,6 +110,7 @@ public:
     void testTdf115107(); // import complex data point labels
     void testTdf115107_2(); // import complex data point labels in cobo charts with multiple data series
     void testTdf121205();
+    void testTdf122765();
 
     CPPUNIT_TEST_SUITE(Chart2ImportTest);
     CPPUNIT_TEST(Fdo60083);
@@ -174,6 +175,7 @@ public:
     CPPUNIT_TEST(testTdf115107);
     CPPUNIT_TEST(testTdf115107_2);
     CPPUNIT_TEST(testTdf121205);
+    CPPUNIT_TEST(testTdf122765);
 
     CPPUNIT_TEST_SUITE_END();
 
@@ -1583,6 +1585,27 @@ void Chart2ImportTest::testTdf121205()
 }
 
 
+void Chart2ImportTest::testTdf122765()
+{
+    // The horizontal position of the slices was wrong.
+    load("/chart2/qa/extras/data/pptx/", "tdf122765.pptx");
+    Reference<chart::XChartDocument> xChartDoc(getChartDocFromDrawImpress(0, 0), UNO_QUERY);
+    Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(xChartDoc, UNO_QUERY_THROW);
+    Reference<drawing::XDrawPage> xDrawPage(xDrawPageSupplier->getDrawPage(), UNO_SET_THROW);
+    Reference<drawing::XShapes> xShapes(xDrawPage->getByIndex(0), UNO_QUERY_THROW);
+    Reference<drawing::XShape> xSeriesSlices(getShapeByName(xShapes, "CID/D=0:CS=0:CT=0:Series=0"),
+                                             UNO_SET_THROW);
+
+    Reference<container::XIndexAccess> xIndexAccess(xSeriesSlices, UNO_QUERY_THROW);
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(9), xIndexAccess->getCount());
+    Reference<drawing::XShape> xSlice(xIndexAccess->getByIndex(0), UNO_QUERY_THROW);
+
+    // Check position of the first slice, all slices move together, so enough to check only one.
+    // Wrong poisition was around 5856.
+    awt::Point aSlicePosition = xSlice->getPosition();
+    CPPUNIT_ASSERT_GREATER(sal_Int32(7000), aSlicePosition.X);
+}
+
 CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ImportTest);
 
 CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/chart2/qa/extras/data/pptx/tdf122765.pptx b/chart2/qa/extras/data/pptx/tdf122765.pptx
new file mode 100644
index 000000000000..948190c30b55
Binary files /dev/null and b/chart2/qa/extras/data/pptx/tdf122765.pptx differ
diff --git a/oox/source/drawingml/chart/titleconverter.cxx b/oox/source/drawingml/chart/titleconverter.cxx
index a4bb1ec70944..8109ca8a3235 100644
--- a/oox/source/drawingml/chart/titleconverter.cxx
+++ b/oox/source/drawingml/chart/titleconverter.cxx
@@ -238,7 +238,6 @@ void LegendConverter::convertFromModel( const Reference< XDiagram >& rxDiagram )
             // manual size needs ChartLegendExpansion_CUSTOM and LegendPosition_CUSTOM (tdf#118150)
             if( aLayoutConv.convertFromModel( aPropSet ) )
             {
-                eLegendPos = cssc2::LegendPosition_CUSTOM;
                 eLegendExpand = cssc::ChartLegendExpansion_CUSTOM;
             }
             bManualLayout = !aLayoutConv.getAutoLayout();
commit a7c6dd2ab3f9232fc32a93ccd9a81bc6734709f7
Author:     Miklos Vajna <vmiklos at collabora.co.uk>
AuthorDate: Mon Nov 5 21:07:42 2018 +0100
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Wed Jun 12 10:34:24 2019 +0200

    tdf#120515 ODT filter: relax layout requirement before export
    
    This reverts commit 343af46fc301a984929e071d477b8fb9f211e289 (ODT
    filter: make sure we have a layout before export, 2017-11-29) as it
    causes a performance problem with large documents (see bugreport).
    
    I added it initially for the EPUB export, but there this is no longer
    needed as commit 3ed8466b55ace15a28761e06b6bb76ebd8758106 (EPUB export,
    fixed layout: switch to a metafile-based approach, 2017-12-01) switched
    to the better metafile-based approach.
    
    (cherry picked from commit e83c1f0ef999bdedaf9a5d5903aa5423c40f6d95)
    
    Change-Id: Ie404e23db77b8ded1d29f42b6279a3cd06a574b5
    Reviewed-on: https://gerrit.libreoffice.org/71943
    Reviewed-by: Michael Meeks <michael.meeks at collabora.com>
    Tested-by: Michael Meeks <michael.meeks at collabora.com>

diff --git a/sw/source/filter/xml/xmlexp.cxx b/sw/source/filter/xml/xmlexp.cxx
index 428b90ed6bc9..7d6d88940005 100644
--- a/sw/source/filter/xml/xmlexp.cxx
+++ b/sw/source/filter/xml/xmlexp.cxx
@@ -126,11 +126,6 @@ ErrCode SwXMLExport::exportDoc( enum XMLTokenEnum eClass )
 
     SwDoc *pDoc = getDoc();
 
-    // Make sure the layout is available to have more stability in the output
-    // markup.
-    if (SwViewShell* pViewShell = pDoc->getIDocumentLayoutAccess().GetCurrentViewShell())
-        pViewShell->CalcLayout();
-
     if( getExportFlags() & (SvXMLExportFlags::FONTDECLS|SvXMLExportFlags::STYLES|
                             SvXMLExportFlags::MASTERSTYLES|SvXMLExportFlags::CONTENT))
     {


More information about the Libreoffice-commits mailing list