tdf#142645 PPTX import: convert "ctrTitle" text to slide name

(i.e. centered title) similar to <p:ph type="title"/>.

See commit 7eb0e52527e729a21973e70d5be8e0a6779ec748
"tdf#142648 PPTX: import long slide names to avoid broken link export",
commit 253bee65bc24d999c3629a4d503d0fa01b355cfc
"tdf#142646 PPTX import: count repeating slide names" etc.

Change-Id: I5f25f04f23981ce2ff64dc792fe8464682d749a2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121295
Tested-by: László Németh <nemeth@numbertext.org>
Reviewed-by: László Németh <nemeth@numbertext.org>
diff --git a/oox/source/ppt/pptshape.cxx b/oox/source/ppt/pptshape.cxx
index 7e120b8..80f165d 100644
--- a/oox/source/ppt/pptshape.cxx
+++ b/oox/source/ppt/pptshape.cxx
@@ -426,7 +426,7 @@ void PPTShape::addShape(

            Reference< XShape > xShape( createAndInsert( rFilterBase, sServiceName, pTheme, rxShapes, bClearText, bool(mpPlaceholder), aTransformation, getFillProperties() ) );
            // if exists and not duplicated, try to use the title text as slide name to help its re-use on UI
            if (!rSlidePersist.isMasterPage() && rSlidePersist.getPage().is() && mnSubType == XML_title)
            if (!rSlidePersist.isMasterPage() && rSlidePersist.getPage().is() && (mnSubType == XML_title || mnSubType == XML_ctrTitle))
            {
                try
                {
diff --git a/sd/qa/unit/data/pptx/tdf142645.pptx b/sd/qa/unit/data/pptx/tdf142645.pptx
new file mode 100644
index 0000000..e57bd9e
--- /dev/null
+++ b/sd/qa/unit/data/pptx/tdf142645.pptx
Binary files differ
diff --git a/sd/qa/unit/import-tests.cxx b/sd/qa/unit/import-tests.cxx
index 79122bb..48252090 100644
--- a/sd/qa/unit/import-tests.cxx
+++ b/sd/qa/unit/import-tests.cxx
@@ -122,6 +122,7 @@ public:
    virtual void setUp() override;

    void testDocumentLayout();
    void testTdf142645();
    void testTdf142915();
    void testTdf142913();
    void testTdf142590();
@@ -244,6 +245,7 @@ public:
    CPPUNIT_TEST_SUITE(SdImportTest);

    CPPUNIT_TEST(testDocumentLayout);
    CPPUNIT_TEST(testTdf142645);
    CPPUNIT_TEST(testTdf142915);
    CPPUNIT_TEST(testTdf142913);
    CPPUNIT_TEST(testTdf142590);
@@ -442,6 +444,20 @@ void SdImportTest::testDocumentLayout()
    }
}

void SdImportTest::testTdf142645()
{
    sd::DrawDocShellRef xDocShRef
        = loadURL(m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/tdf142645.pptx"), PPTX);
    uno::Reference<drawing::XDrawPagesSupplier> xDoc(xDocShRef->GetDoc()->getUnoModel(),
                                                     uno::UNO_QUERY_THROW);

    uno::Reference<drawing::XDrawPage> xPage1(xDoc->getDrawPages()->getByIndex(0), uno::UNO_QUERY);
    uno::Reference<container::XNamed> xNamed1(xPage1, uno::UNO_QUERY_THROW);
    CPPUNIT_ASSERT_EQUAL(OUString("Hello"), xNamed1->getName());

    xDocShRef->DoClose();
}

void SdImportTest::testTdf142915()
{
    ::sd::DrawDocShellRef xDocShRef