diff options
author | Jacobo Aragunde Pérez <jaragunde@igalia.com> | 2014-03-10 17:50:19 +0100 |
---|---|---|
committer | Jacobo Aragunde Pérez <jaragunde@igalia.com> | 2014-03-10 22:36:16 +0100 |
commit | e8e4ba0b68f717b19e4766bcaf4d14486bb11c8b (patch) | |
tree | f86c7b34e159d869e4b6fed5a50403c0439b9b4c /writerfilter | |
parent | c1dc7576c18cc534e1934459f5fb210091a5b484 (diff) |
writerfilter: DateFormat member in SdtHelper as a string.
Change the type of DateFormat member of SdtHelper class to a string,
and move some logic from DomainMapper to SdtHelper.
The string will be useful to improve the date control exporter later.
Change-Id: I0da05a59e15143027f1c5805466e9f465d7ac069
Diffstat (limited to 'writerfilter')
-rw-r--r-- | writerfilter/source/dmapper/DomainMapper.cxx | 13 | ||||
-rw-r--r-- | writerfilter/source/dmapper/SdtHelper.cxx | 17 | ||||
-rw-r--r-- | writerfilter/source/dmapper/SdtHelper.hxx | 6 |
3 files changed, 18 insertions, 18 deletions
diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx index c7e63442c62c..a3dee041e3ae 100644 --- a/writerfilter/source/dmapper/DomainMapper.cxx +++ b/writerfilter/source/dmapper/DomainMapper.cxx @@ -2220,16 +2220,7 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, PropertyMapPtr rContext ) break; case NS_ooxml::LN_CT_SdtDate_dateFormat: { - // See com/sun/star/awt/UnoControlDateFieldModel.idl, DateFormat; sadly there are no constants for this. - if (sStringValue == "M/d/yyyy" || sStringValue == "M.d.yyyy") - // Approximate with MM.dd.yyy - m_pImpl->m_pSdtHelper->getDateFormat().reset(8); - else - { - // Set default format, so at least the date picker is created. - m_pImpl->m_pSdtHelper->getDateFormat().reset(0); - SAL_WARN("writerfilter", "unhandled w:dateFormat value"); - } + m_pImpl->m_pSdtHelper->getDateFormat().append(sStringValue); } break; case NS_ooxml::LN_EG_SectPrContents_pgNumType: @@ -2608,7 +2599,7 @@ void DomainMapper::lcl_utext(const sal_uInt8 * data_, size_t len) m_pImpl->m_pSdtHelper->getSdtTexts().append(sText); return; } - else if (m_pImpl->m_pSdtHelper->getDateFormat()) + else if (!m_pImpl->m_pSdtHelper->getDateFormat().isEmpty()) { /* * Here we assume w:sdt only contains a single text token. We need to diff --git a/writerfilter/source/dmapper/SdtHelper.cxx b/writerfilter/source/dmapper/SdtHelper.cxx index ababd53a4db3..63b726aad03c 100644 --- a/writerfilter/source/dmapper/SdtHelper.cxx +++ b/writerfilter/source/dmapper/SdtHelper.cxx @@ -97,8 +97,17 @@ void SdtHelper::createDateControl(OUString& rContentText) uno::Reference<beans::XPropertySet> xPropertySet(xControlModel, uno::UNO_QUERY); xPropertySet->setPropertyValue("Dropdown", uno::makeAny(sal_True)); - xPropertySet->setPropertyValue("DateFormat", uno::makeAny(*m_oDateFormat)); - m_oDateFormat.reset(); + + // See com/sun/star/awt/UnoControlDateFieldModel.idl, DateFormat; sadly there are no constants + sal_Int16 nDateFormat = 0; + OUString sDateFormat = m_sDateFormat.makeStringAndClear(); + if (sDateFormat == "M/d/yyyy" || sDateFormat == "M.d.yyyy") + // Approximate with MM.dd.yyy + nDateFormat = 8; + else + // Set default format, so at least the date picker is created. + SAL_WARN("writerfilter", "unhandled w:dateFormat value"); + xPropertySet->setPropertyValue("DateFormat", uno::makeAny(nDateFormat)); util::Date aDate; util::DateTime aDateTime; @@ -144,9 +153,9 @@ OUStringBuffer& SdtHelper::getDate() return m_sDate; } -boost::optional<sal_Int16>& SdtHelper::getDateFormat() +OUStringBuffer& SdtHelper::getDateFormat() { - return m_oDateFormat; + return m_sDateFormat; } bool SdtHelper::hasElements() diff --git a/writerfilter/source/dmapper/SdtHelper.hxx b/writerfilter/source/dmapper/SdtHelper.hxx index 65a736b6b0e9..e91d9b747901 100644 --- a/writerfilter/source/dmapper/SdtHelper.hxx +++ b/writerfilter/source/dmapper/SdtHelper.hxx @@ -53,8 +53,8 @@ class SdtHelper OUStringBuffer m_aSdtTexts; /// Date ISO string contained in the w:date element, used by the date control. OUStringBuffer m_sDate; - /// Date format, see com/sun/star/awt/UnoControlDateFieldModel.idl - boost::optional<sal_Int16> m_oDateFormat; + /// Date format string as it comes from the ooxml document. + OUStringBuffer m_sDateFormat; bool m_bHasElements; @@ -67,7 +67,7 @@ public: std::vector<OUString>& getDropDownItems(); OUStringBuffer& getSdtTexts(); OUStringBuffer& getDate(); - boost::optional<sal_Int16>& getDateFormat(); + OUStringBuffer& getDateFormat(); /// If createControlShape() was ever called. bool hasElements(); |