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.kose@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 0000000..5cfe717
--- /dev/null
+++ b/sd/qa/unit/data/pptx/deftabstop.pptx
Binary files differ
diff --git a/sd/qa/unit/import-tests2.cxx b/sd/qa/unit/import-tests2.cxx
index 2654e6f..7a67deb 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 bed18cb..6150321 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();