diff options
author | Caolán McNamara <caolanm@redhat.com> | 2017-02-15 14:28:55 +0000 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2017-02-27 11:17:21 +0100 |
commit | 94deed90a02430d7c0c9f1a55976c379a66a99ce (patch) | |
tree | 575bb4b0cb635796b31433d6daf0bf04bde65ac2 /sw | |
parent | d566d2a32fe6514c15c3c74d635c70c1015cb187 (diff) |
Resolves: tdf#101000 ensure unique image names in .docs
(cherry picked from commit 432f605e3287269d1a20383f4eeebf012ee3679d)
Change-Id: Id4f93638ad366b66968e6946a835239beee16942
Reviewed-on: https://gerrit.libreoffice.org/34303
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
(cherry picked from commit 94037ee2e6b85006373d1c4cecfcb32f4c82bb9e)
Diffstat (limited to 'sw')
-rw-r--r-- | sw/source/filter/ww8/ww8graf2.cxx | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/sw/source/filter/ww8/ww8graf2.cxx b/sw/source/filter/ww8/ww8graf2.cxx index 23599896699e..73b4e4e241c4 100644 --- a/sw/source/filter/ww8/ww8graf2.cxx +++ b/sw/source/filter/ww8/ww8graf2.cxx @@ -30,8 +30,9 @@ #include <sfx2/docfile.hxx> #include <sfx2/fcontnr.hxx> #include <grfatr.hxx> -#include <fmtflcnt.hxx> #include <fmtanchr.hxx> +#include <fmtcntnt.hxx> +#include <fmtflcnt.hxx> #include <frmfmt.hxx> #include <fltshell.hxx> #include <pam.hxx> @@ -456,6 +457,19 @@ void SwWW8ImplReader::PicRead(SvStream *pDataStream, WW8_PIC *pPic, pDataStream->SeekRel(2); //cProps } +namespace +{ + sal_uInt8 GetNodeType(SwFrameFormat &rSource) + { + const SwNodeIndex* pNodeIndex = rSource.GetContent().GetContentIdx(); + if (!pNodeIndex) + return 0; + const SwNode& rCSttNd = pNodeIndex->GetNode(); + SwNodeRange aRg(rCSttNd, 1, *rCSttNd.EndOfSectionNode()); + return aRg.aStart.GetNode().GetNodeType(); + } +} + SwFrameFormat* SwWW8ImplReader::ImportGraf(SdrTextObj* pTextObj, SwFrameFormat* pOldFlyFormat) { @@ -672,12 +686,11 @@ SwFrameFormat* SwWW8ImplReader::ImportGraf(SdrTextObj* pTextObj, if (pRecord) SetAttributesAtGrfNode(pRecord, pRet, nullptr); - // #i68101# - // removed pObject->HasSetName() usage since always returned - // true, also removed else-part and wrote an informing mail - // to Henning Brinkmann about this to clarify. - pRet->SetName(pObject->GetName()); - + OUString aObjectName(pObject->GetName()); + if (aObjectName.isEmpty() || !m_rDoc.FindFlyByName(aObjectName, GetNodeType(*pRet))) + pRet->SetName(aObjectName); + else + m_aGrfNameGenerator.SetUniqueGraphName(pRet, aObjectName); // determine the pointer to the new object and update // Z-order-list accordingly (or delete entry) |