sd/source/ui/func/fuinsert.cxx | 17 ++++++++++------- sd/source/ui/inc/fuinsert.hxx | 9 +++++++-- sd/source/ui/view/drviews2.cxx | 3 ++- 3 files changed, 19 insertions(+), 10 deletions(-)
New commits: commit 7524dd59efc9b685548caf7967b24f7758796078 Author: Samuel Mehrbrodt <samuel.mehrbr...@cib.de> Date: Tue Jul 5 12:05:28 2016 +0000 tdf#73742 Don't replace existing image when inserting one If we want to replace an image, we have an entry in the context menu for that. Change-Id: I7a5326fecb72896c0709c9272769b8d51e4a5ca2 Reviewed-on: https://gerrit.libreoffice.org/26947 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Samuel Mehrbrodt <samuel.mehrbr...@cib.de> (cherry picked from commit fd6655080e181de4b78e31f13fe8ba35de8edfe5) Reviewed-on: https://gerrit.libreoffice.org/26966 Reviewed-by: Eike Rathke <er...@redhat.com> diff --git a/sd/source/ui/func/fuinsert.cxx b/sd/source/ui/func/fuinsert.cxx index 63410aa..a26a6b1 100644 --- a/sd/source/ui/func/fuinsert.cxx +++ b/sd/source/ui/func/fuinsert.cxx @@ -98,14 +98,17 @@ FuInsertGraphic::FuInsertGraphic ( ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, - SfxRequest& rReq) - : FuPoor(pViewSh, pWin, pView, pDoc, rReq) + SfxRequest& rReq, + bool replaceExistingImage) + : FuPoor(pViewSh, pWin, pView, pDoc, rReq), + mbReplaceExistingImage(replaceExistingImage) { } -rtl::Reference<FuPoor> FuInsertGraphic::Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq ) +rtl::Reference<FuPoor> FuInsertGraphic::Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, + SdDrawDocument* pDoc, SfxRequest& rReq, bool replaceExistingImage ) { - rtl::Reference<FuPoor> xFunc( new FuInsertGraphic( pViewSh, pWin, pView, pDoc, rReq ) ); + rtl::Reference<FuPoor> xFunc( new FuInsertGraphic( pViewSh, pWin, pView, pDoc, rReq, replaceExistingImage ) ); xFunc->DoExecute(rReq); return xFunc; } @@ -153,14 +156,14 @@ void FuInsertGraphic::DoExecute( SfxRequest& rReq ) if( mpViewShell && dynamic_cast< DrawViewShell *>( mpViewShell ) != nullptr) { sal_Int8 nAction = DND_ACTION_COPY; - SdrObject* pPickObj; + SdrObject* pPickObj = mpView->GetEmptyPresentationObject( PRESOBJ_GRAPHIC ); bool bSelectionReplaced(false); - if( ( pPickObj = mpView->GetSelectedSingleObject( mpView->GetPage() ) ) || ( pPickObj = mpView->GetEmptyPresentationObject( PRESOBJ_GRAPHIC ) ) ) + if( pPickObj ) { nAction = DND_ACTION_LINK; } - else if(1 == mpView->GetMarkedObjectCount()) + else if(mbReplaceExistingImage && mpView->GetMarkedObjectCount() == 1) { pPickObj = mpView->GetMarkedObjectByIndex(0); nAction = DND_ACTION_MOVE; diff --git a/sd/source/ui/inc/fuinsert.hxx b/sd/source/ui/inc/fuinsert.hxx index 74e251a..2a946e8 100644 --- a/sd/source/ui/inc/fuinsert.hxx +++ b/sd/source/ui/inc/fuinsert.hxx @@ -30,7 +30,9 @@ class FuInsertGraphic { public: - static rtl::Reference<FuPoor> Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq ); + static rtl::Reference<FuPoor> Create( ViewShell* pViewSh, ::sd::Window* pWin, + ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq, + bool replaceExistingImage); virtual void DoExecute( SfxRequest& rReq ) override; private: @@ -40,7 +42,10 @@ private: ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, - SfxRequest& rReq); + SfxRequest& rReq, + bool replaceExistingImage); + + bool mbReplaceExistingImage; }; /************************************************************************/ diff --git a/sd/source/ui/view/drviews2.cxx b/sd/source/ui/view/drviews2.cxx index 6a88b01..8d4ebec 100644 --- a/sd/source/ui/view/drviews2.cxx +++ b/sd/source/ui/view/drviews2.cxx @@ -1114,7 +1114,8 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq) case SID_CHANGE_PICTURE: case SID_INSERT_GRAPHIC: { - SetCurrentFunction( FuInsertGraphic::Create( this, GetActiveWindow(), mpDrawView, GetDoc(), rReq ) ); + SetCurrentFunction( FuInsertGraphic::Create( this, GetActiveWindow(), mpDrawView, GetDoc(), rReq, + nSId == SID_CHANGE_PICTURE ) ); Cancel(); rReq.Ignore (); } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits