From 4bfb5aaa80b680cfd65a9a5cc85bf7aa6a399a2b Mon Sep 17 00:00:00 2001 From: Mike Kaganski Date: Mon, 17 Aug 2026 16:27:17 +0500 Subject: [PATCH] cool#16079: keep the date field in a placeholder MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A date/time placeholder saved to PPTX held our own display string "" as literal text with no at all, so PowerPoint showed that string where the original showed a date. DrawingML::GetFieldValue has no case for the field kind a header/footer date carries, "DateTime", and with no type name nothing writes the field. Name the type that leaves the format to the reading application, datetime: the field carries no format of its own, the page holds it. PowerPoint writes datetimeFigureOut in such a placeholder, an alias of datetime1 - MS-OI29500 part 1, 21.1.2.2.4 (fld) - which would pin a formatless field to MM/DD/YYYY; that alias is read on import as the datetime1 it stands for, so a slide's own date field keeps its format across a round-trip. Every other datetime* type was understood; the one PowerPoint itself writes was being dropped. The page's own DateTimeFormat is out of reach where the type is chosen, so a footer set to show a time is written as a date. PowerPoint has no per-page format to fall back on either way, and a date beats the literal string this replaces. Signed-off-by: Mike Kaganski Change-Id: Icbd9ac57ed7b2311d5f6570fffad1cd78e4d6bf7 Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/9192 Tested-by: Jenkins CPCI Reviewed-by: Caolán McNamara (cherry picked from commit 145a37d84dd3b22023c46b6be8577008f36a48b9) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210141 Tested-by: Jenkins Reviewed-by: Xisco Fauli --- oox/source/drawingml/textfield.cxx | 4 +++- oox/source/export/drawingml.cxx | 6 ++++++ .../data/pptx/master-and-eleven-layouts.pptx | Bin 0 -> 35927 bytes sd/qa/unit/export-tests-ooxml4.cxx | 15 +++++++++++++++ 4 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 sd/qa/unit/data/pptx/master-and-eleven-layouts.pptx diff --git a/oox/source/drawingml/textfield.cxx b/oox/source/drawingml/textfield.cxx index 1c9641996cdd..4c9c7a1f2926 100644 --- a/oox/source/drawingml/textfield.cxx +++ b/oox/source/drawingml/textfield.cxx @@ -215,7 +215,9 @@ SvxDateFormat TextField::getLODateFormat(std::u16string_view rDateTimeType) if( aDateTimeNum.empty() ) // "datetime" return SvxDateFormat::StdSmall; - int nDateTimeNum = o3tl::toInt32(aDateTimeNum); + // "datetimeFigureOut", which is what PowerPoint writes in a date placeholder, is an alias of + // datetime1: MS-OI29500 part 1, 21.1.2.2.4 (fld). + int nDateTimeNum = aDateTimeNum == u"FigureOut" ? 1 : o3tl::toInt32(aDateTimeNum); switch( nDateTimeNum ) { diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx index 3a0ae204f8d9..662c14e8b69b 100644 --- a/oox/source/export/drawingml.cxx +++ b/oox/source/export/drawingml.cxx @@ -3031,6 +3031,12 @@ OUString DrawingML::GetFieldValue( const css::uno::Reference< css::text::XTextRa rXPropSet->getPropertyValue(UNO_TC_PROP_NUMFORMAT) >>= nNumFmt; aFieldValue = GetDatetimeTypeFromDate(static_cast(nNumFmt)); } + else if(aFieldKind == "DateTime") + { + // The date/time field of a header/footer area carries no format of its own - + // the page holds it - and "datetime" seems a perfect fit (see MS-OI29500). + aFieldValue = u"datetime"_ustr; + } else if(aFieldKind == "ExtTime") { sal_Int32 nNumFmt = -1; diff --git a/sd/qa/unit/data/pptx/master-and-eleven-layouts.pptx b/sd/qa/unit/data/pptx/master-and-eleven-layouts.pptx new file mode 100644 index 0000000000000000000000000000000000000000..5aeb1b84969a3ed701ae176233845016a6704232 GIT binary patch literal 35927 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 literal 0 HcmV?d00001 diff --git a/sd/qa/unit/export-tests-ooxml4.cxx b/sd/qa/unit/export-tests-ooxml4.cxx index 243fe59eb801..7719784cad05 100644 --- a/sd/qa/unit/export-tests-ooxml4.cxx +++ b/sd/qa/unit/export-tests-ooxml4.cxx @@ -2450,6 +2450,21 @@ CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest4, testCool16078_placeholderKeepsItsOutlin assertXPath(pLayout, "//p:sp[p:nvSpPr/p:nvPr/p:ph/@type='pic']/p:spPr/a:prstGeom", 0); } +CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest4, testCool16079_dateTimeField) +{ + // Given a deck whose date placeholders hold an automatically updated date: + createSdImpressDoc("pptx/master-and-eleven-layouts.pptx"); + save(TestFilter::PPTX); + + // The placeholder keeps a field. Without the fix it held our own display string as literal + // text, so PowerPoint showed "" where the original showed a date. The type is the + // one that leaves the format to the reader, which is what a field holding none asks for - the + // alias PowerPoint writes here stands for a fixed MM/DD/YYYY. + xmlDocUniquePtr pLayout = parseExportedLayoutNamed(u"Title Slide"); + assertXPath(pLayout, "//p:sp[p:nvSpPr/p:nvPr/p:ph/@type='dt']/p:txBody/a:p/a:fld", "type", + u"datetime"); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */