summaryrefslogtreecommitdiff
path: root/writerfilter/source/dmapper/SdtHelper.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'writerfilter/source/dmapper/SdtHelper.cxx')
-rw-r--r--writerfilter/source/dmapper/SdtHelper.cxx85
1 files changed, 42 insertions, 43 deletions
diff --git a/writerfilter/source/dmapper/SdtHelper.cxx b/writerfilter/source/dmapper/SdtHelper.cxx
index 8a224243aa07..dff106acee13 100644
--- a/writerfilter/source/dmapper/SdtHelper.cxx
+++ b/writerfilter/source/dmapper/SdtHelper.cxx
@@ -145,51 +145,50 @@ void SdtHelper::createDateContentControl()
xCrsr = xTextAppend->createTextCursorByRange(xTextAppend);
}
}
- if (xCrsr.is())
+ if (!xCrsr.is())
+ return;
+
+ try
{
- try
- {
- xCrsr->gotoRange(m_xDateFieldStartRange, false);
- bool bIsInTable
- = (m_rDM_Impl.hasTableManager() && m_rDM_Impl.getTableManager().isInTable())
- || (m_rDM_Impl.m_nTableDepth > 0);
- if (bIsInTable)
- xCrsr->goRight(1, false);
- xCrsr->gotoEnd(true);
- }
- catch (uno::Exception&)
- {
- OSL_ENSURE(false, "Cannot get the right text range for date field");
- return;
- }
+ xCrsr->gotoRange(m_xDateFieldStartRange, false);
+ bool bIsInTable = (m_rDM_Impl.hasTableManager() && m_rDM_Impl.getTableManager().isInTable())
+ || (m_rDM_Impl.m_nTableDepth > 0);
+ if (bIsInTable)
+ xCrsr->goRight(1, false);
+ xCrsr->gotoEnd(true);
+ }
+ catch (uno::Exception&)
+ {
+ OSL_ENSURE(false, "Cannot get the right text range for date field");
+ return;
+ }
- uno::Reference<uno::XInterface> xFieldInterface
- = m_rDM_Impl.GetTextFactory()->createInstance("com.sun.star.text.Fieldmark");
- uno::Reference<text::XFormField> xFormField(xFieldInterface, uno::UNO_QUERY);
- uno::Reference<text::XTextContent> xToInsert(xFormField, uno::UNO_QUERY);
- if (xFormField.is() && xToInsert.is())
- {
- xToInsert->attach(uno::Reference<text::XTextRange>(xCrsr, uno::UNO_QUERY_THROW));
- xFormField->setFieldType(ODF_FORMDATE);
- uno::Reference<container::XNameContainer> xNameCont = xFormField->getParameters();
- if (xNameCont.is())
- {
- OUString sDateFormat = m_sDateFormat.makeStringAndClear();
- // Replace quotation mark used for marking static strings in date format
- sDateFormat = sDateFormat.replaceAll("'", "\"");
- xNameCont->insertByName(ODF_FORMDATE_DATEFORMAT, uno::makeAny(sDateFormat));
- xNameCont->insertByName(ODF_FORMDATE_DATEFORMAT_LANGUAGE,
- uno::makeAny(m_sLocale.makeStringAndClear()));
- }
- OUString sFullDate = m_sDate.makeStringAndClear();
- if (!sFullDate.isEmpty())
- {
- sal_Int32 nTimeSep = sFullDate.indexOf("T");
- if (nTimeSep != -1)
- sFullDate = sFullDate.copy(0, nTimeSep);
- xNameCont->insertByName(ODF_FORMDATE_CURRENTDATE, uno::makeAny(sFullDate));
- }
- }
+ uno::Reference<uno::XInterface> xFieldInterface
+ = m_rDM_Impl.GetTextFactory()->createInstance("com.sun.star.text.Fieldmark");
+ uno::Reference<text::XFormField> xFormField(xFieldInterface, uno::UNO_QUERY);
+ uno::Reference<text::XTextContent> xToInsert(xFormField, uno::UNO_QUERY);
+ if (!(xFormField.is() && xToInsert.is()))
+ return;
+
+ xToInsert->attach(uno::Reference<text::XTextRange>(xCrsr, uno::UNO_QUERY_THROW));
+ xFormField->setFieldType(ODF_FORMDATE);
+ uno::Reference<container::XNameContainer> xNameCont = xFormField->getParameters();
+ if (xNameCont.is())
+ {
+ OUString sDateFormat = m_sDateFormat.makeStringAndClear();
+ // Replace quotation mark used for marking static strings in date format
+ sDateFormat = sDateFormat.replaceAll("'", "\"");
+ xNameCont->insertByName(ODF_FORMDATE_DATEFORMAT, uno::makeAny(sDateFormat));
+ xNameCont->insertByName(ODF_FORMDATE_DATEFORMAT_LANGUAGE,
+ uno::makeAny(m_sLocale.makeStringAndClear()));
+ }
+ OUString sFullDate = m_sDate.makeStringAndClear();
+ if (!sFullDate.isEmpty())
+ {
+ sal_Int32 nTimeSep = sFullDate.indexOf("T");
+ if (nTimeSep != -1)
+ sFullDate = sFullDate.copy(0, nTimeSep);
+ xNameCont->insertByName(ODF_FORMDATE_CURRENTDATE, uno::makeAny(sFullDate));
}
}