summaryrefslogtreecommitdiff
path: root/writerfilter
diff options
context:
space:
mode:
authorJacobo Aragunde Pérez <jaragunde@igalia.com>2014-03-10 17:50:19 +0100
committerJacobo Aragunde Pérez <jaragunde@igalia.com>2014-03-10 22:36:16 +0100
commite8e4ba0b68f717b19e4766bcaf4d14486bb11c8b (patch)
treef86c7b34e159d869e4b6fed5a50403c0439b9b4c /writerfilter
parentc1dc7576c18cc534e1934459f5fb210091a5b484 (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.cxx13
-rw-r--r--writerfilter/source/dmapper/SdtHelper.cxx17
-rw-r--r--writerfilter/source/dmapper/SdtHelper.hxx6
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();