summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2013-12-02 23:28:20 +0100
committerMichael Stahl <mstahl@redhat.com>2013-12-02 23:37:12 +0100
commit8171e713e74e3d09e86592c28abfe05d0400c071 (patch)
tree5cddfe17dee2e740d75e5fc9d7d29f139d02d7c9
parent790896d9a557d34ea91d6e5926471de66503be7a (diff)
fdo#71450 fdo#71698: ODF import: fix frame name corner cases
Trying to set a name that is already in use will throw an exception (and set a different, generated name); if there is actually no name in the file then there's no point trying to set anything. (regression from b69d152cfa1da868ba960345d72ba78f9f8e1b35) Change-Id: Ie54d4a830cc23e2853a6efeb81f77dcc788192ea
-rw-r--r--xmloff/source/text/XMLTextFrameContext.cxx12
1 files changed, 10 insertions, 2 deletions
diff --git a/xmloff/source/text/XMLTextFrameContext.cxx b/xmloff/source/text/XMLTextFrameContext.cxx
index 6795dcdd5786..37312211a755 100644
--- a/xmloff/source/text/XMLTextFrameContext.cxx
+++ b/xmloff/source/text/XMLTextFrameContext.cxx
@@ -1307,12 +1307,20 @@ void XMLTextFrameContext_Impl::SetHyperlink( const OUString& rHRef,
void XMLTextFrameContext_Impl::SetName()
{
Reference<XNamed> xNamed(xPropSet, UNO_QUERY);
- if (xNamed.is())
+ if (!m_sOrigName.isEmpty() && xNamed.is())
{
OUString const name(xNamed->getName());
if (name != m_sOrigName)
{
- xNamed->setName(m_sOrigName);
+ try
+ {
+ xNamed->setName(m_sOrigName);
+ }
+ catch (uno::Exception const& e)
+ { // fdo#71698 document contains 2 frames with same draw:name
+ SAL_INFO("xmloff.text", "SetName(): exception setting \""
+ << m_sOrigName << "\": " << e.Message);
+ }
}
}
}