diff options
author | Michael Stahl <mstahl@redhat.com> | 2013-12-02 23:28:20 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2013-12-04 04:28:18 -0600 |
commit | 3da29e6813a64b97fb56436a80dae7fafc39eba3 (patch) | |
tree | 2b524502736aaa6c850e151a1f33594f9a56c78e | |
parent | 20cd30da8ecf0a41c9bbd7d7311f8f54d6ac0fa8 (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
(cherry picked from commit 8171e713e74e3d09e86592c28abfe05d0400c071)
Reviewed-on: https://gerrit.libreoffice.org/6907
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Miklos Vajna <vmiklos@collabora.co.uk>
(cherry picked from commit 0763cf6ed7bdc629e59b5df757b9ef4f5273f393)
Reviewed-on: https://gerrit.libreoffice.org/6911
Reviewed-by: Eike Rathke <erack@redhat.com>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r-- | xmloff/source/text/XMLTextFrameContext.cxx | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/xmloff/source/text/XMLTextFrameContext.cxx b/xmloff/source/text/XMLTextFrameContext.cxx index 3ca7e86b3071..745ff637206f 100644 --- a/xmloff/source/text/XMLTextFrameContext.cxx +++ b/xmloff/source/text/XMLTextFrameContext.cxx @@ -1291,12 +1291,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); + } } } } |