summaryrefslogtreecommitdiff
path: root/sd
diff options
context:
space:
mode:
authorJim Raykowski <raykowj@gmail..com>2019-08-15 00:31:25 -0800
committerNoel Grandin <noel.grandin@collabora.co.uk>2019-10-28 10:22:59 +0100
commit9f86b320a997c77069cf93dcb32fb71f09ad1348 (patch)
treec7767f9da6a3fbd465d80f36fee8ec2a9bd567fa /sd
parent2d8efd1afe03a4009600e914910144b70982e98d (diff)
tdf#125191 Give object copies unique names
This patch makes a unique name for a copy of an object having a user given name. Change-Id: I14a7f45cc02962fc34a1532dd5db1cb9657b41d3 Reviewed-on: https://gerrit.libreoffice.org/77500 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'sd')
-rw-r--r--sd/source/ui/slidesorter/controller/SlsClipboard.cxx12
-rw-r--r--sd/source/ui/view/sdview3.cxx7
2 files changed, 17 insertions, 2 deletions
diff --git a/sd/source/ui/slidesorter/controller/SlsClipboard.cxx b/sd/source/ui/slidesorter/controller/SlsClipboard.cxx
index 95a38e0ee03f..38fcbd964f18 100644
--- a/sd/source/ui/slidesorter/controller/SlsClipboard.cxx
+++ b/sd/source/ui/slidesorter/controller/SlsClipboard.cxx
@@ -730,7 +730,17 @@ sal_Int8 Clipboard::ExecuteDrop (
mrSlideSorter.GetViewShell()->GetViewShellBase().GetMainViewShell()));
mxSelectionObserverContext.reset(new SelectionObserver::Context(mrSlideSorter));
- HandlePageDrop(*pDragTransferable);
+ if (rEvent.mnAction == DND_ACTION_MOVE)
+ {
+ SdDrawDocument* pDoc = mrSlideSorter.GetModel().GetDocument();
+ const bool bDoesMakePageObjectsNamesUnique = pDoc->DoesMakePageObjectsNamesUnique();
+ pDoc->DoMakePageObjectsNamesUnique(false);
+ HandlePageDrop(*pDragTransferable);
+ pDoc->DoMakePageObjectsNamesUnique(bDoesMakePageObjectsNamesUnique);
+ }
+ else
+ HandlePageDrop(*pDragTransferable);
+
nResult = rEvent.mnAction;
// We leave the undo context alive for when moving or
diff --git a/sd/source/ui/view/sdview3.cxx b/sd/source/ui/view/sdview3.cxx
index e45441d1affe..6b750c9cb6bd 100644
--- a/sd/source/ui/view/sdview3.cxx
+++ b/sd/source/ui/view/sdview3.cxx
@@ -463,6 +463,7 @@ bool View::InsertData( const TransferableDataHelper& rDataHelper,
const Size aVector( maDropPos.X() - aCurPos.X(), maDropPos.Y() - aCurPos.Y() );
+ std::unordered_set<rtl::OUString> aNameSet;
for(size_t a = 0; a < pMarkList->GetMarkCount(); ++a)
{
SdrMark* pM = pMarkList->GetMark(a);
@@ -476,7 +477,11 @@ bool View::InsertData( const TransferableDataHelper& rDataHelper,
pObj->NbcMove(aVector);
}
- pPage->InsertObject(pObj);
+ SdrObject* pMarkParent = pM->GetMarkedSdrObj()->getParentSdrObjectFromSdrObject();
+ if (bCopy || (pMarkParent && pMarkParent->IsGroupObject()))
+ pPage->InsertObjectThenMakeNameUnique(pObj, aNameSet);
+ else
+ pPage->InsertObject(pObj);
if( IsUndoEnabled() )
{