sd/qa/unit/data/pptx/deftabstop.pptx |binary
 sd/qa/unit/import-tests2.cxx         |   14 ++++++++++++++
 sd/source/ui/docshell/docshel4.cxx   |   12 ++++++++++++
 3 files changed, 26 insertions(+)

New commits:
commit 362fb6c7b13d5506c6bd9d1b7f113ec45544809d
Author:     Gülşah Köse <gulsah.k...@collabora.com>
AuthorDate: Thu Mar 24 11:19:03 2022 +0300
Commit:     Gülşah Köse <gulsah.k...@collabora.com>
CommitDate: Fri Mar 25 08:25:49 2022 +0100

    tdf#96389 Use default tab stop value of MSO for pptx import.
    
    Change-Id: Ib3dde68c672b44d8b60f121fb0e637942b5986b1
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131698
    Tested-by: Jenkins
    Reviewed-by: Gülşah Köse <gulsah.k...@collabora.com>

diff --git a/sd/qa/unit/data/pptx/deftabstop.pptx 
b/sd/qa/unit/data/pptx/deftabstop.pptx
new file mode 100644
index 000000000000..5cfe71794446
Binary files /dev/null and b/sd/qa/unit/data/pptx/deftabstop.pptx differ
diff --git a/sd/qa/unit/import-tests2.cxx b/sd/qa/unit/import-tests2.cxx
index 2654e6f6290e..7a67debd38d9 100644
--- a/sd/qa/unit/import-tests2.cxx
+++ b/sd/qa/unit/import-tests2.cxx
@@ -129,6 +129,7 @@ public:
     void testHyperlinksOnShapes();
     void testTdf112209();
     void testTdf128596();
+    void testDefaultTabStop();
 
     CPPUNIT_TEST_SUITE(SdImportTest2);
 
@@ -194,6 +195,7 @@ public:
     CPPUNIT_TEST(testHyperlinksOnShapes);
     CPPUNIT_TEST(testTdf112209);
     CPPUNIT_TEST(testTdf128596);
+    CPPUNIT_TEST(testDefaultTabStop);
 
     CPPUNIT_TEST_SUITE_END();
 };
@@ -1907,6 +1909,18 @@ void SdImportTest2::testTdf128596()
     xDocShRef->DoClose();
 }
 
+void SdImportTest2::testDefaultTabStop()
+{
+    sd::DrawDocShellRef xDocShRef
+        = 
loadURL(m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/deftabstop.pptx"), 
PPTX);
+    SdDrawDocument* pDoc = xDocShRef->GetDoc();
+    sal_Int32 nDefTab = pDoc->GetDefaultTabulator();
+
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(2540), nDefTab);
+
+    xDocShRef->DoClose();
+}
+
 CPPUNIT_TEST_SUITE_REGISTRATION(SdImportTest2);
 
 CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/sd/source/ui/docshell/docshel4.cxx 
b/sd/source/ui/docshell/docshel4.cxx
index bed18cbddf70..6150321ca33a 100644
--- a/sd/source/ui/docshell/docshel4.cxx
+++ b/sd/source/ui/docshell/docshel4.cxx
@@ -399,6 +399,18 @@ bool DrawDocShell::ImportFrom(SfxMedium &rMedium,
         mpDoc->SetSummationOfParagraphs();
     }
 
+    if (aFilterName == "Impress MS PowerPoint 2007 XML" ||
+        aFilterName == "Impress MS PowerPoint 2007 XML AutoPlay" ||
+        aFilterName == "Impress MS PowerPoint 2007 XML VBA" ||
+        aFilterName == "Impress Office Open XML")
+    {
+        // We need to be able to set the default tab size for each text object.
+        // This is possible at the moment only for the whole document. See
+        // TextParagraphPropertiesContext constructor. So default tab width
+        // of the LibreOffice is 1270 but MSO is 2540 on general settings.
+        mpDoc->SetDefaultTabulator( 2540 );
+    }
+
     const bool bRet = SfxObjectShell::ImportFrom(rMedium, xInsertPosition);
 
     SfxItemSet* pSet = rMedium.GetItemSet();

Reply via email to