sd/source/ui/view/drviews2.cxx | 49 ++++++++++++++++++++--------------------- sd/source/ui/view/drviews7.cxx | 16 ++----------- sd/source/ui/view/drviewsf.cxx | 39 +++++--------------------------- 3 files changed, 34 insertions(+), 70 deletions(-)
New commits: commit 40b9beb175c896c6eb29644f92e07f59353b9eb7 Author: Samuel Mehrbrodt <samuel.mehrbr...@cib.de> AuthorDate: Tue Aug 6 15:14:00 2019 +0200 Commit: Pranam Lashkari <lpra...@collabora.com> CommitDate: Fri Feb 5 09:11:55 2021 +0100 Select hyperlink before editing in sd Otherwise you can't edit a hyperlink when the cursor is behind the field. Change-Id: Iea937e16d5be1187f78cbaa565698232cb10dc64 Reviewed-on: https://gerrit.libreoffice.org/77028 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <samuel.mehrbr...@cib.de> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110315 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> Reviewed-by: Szymon Kłos <szymon.k...@collabora.com> diff --git a/sd/source/ui/view/drviews2.cxx b/sd/source/ui/view/drviews2.cxx index c293d0369266..688400950c9d 100644 --- a/sd/source/ui/view/drviews2.cxx +++ b/sd/source/ui/view/drviews2.cxx @@ -2163,6 +2163,11 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq) case SID_EDIT_HYPERLINK : { + // Ensure the field is selected first + OutlinerView* pOutView = mpDrawView->GetTextEditOutlinerView(); + if (pOutView) + pOutView->GetFieldAtCursor(); + GetViewFrame()->GetDispatcher()->Execute( SID_HYPERLINK_DIALOG ); Cancel(); @@ -2192,35 +2197,31 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq) OutlinerView* pOutView = mpDrawView->GetTextEditOutlinerView(); if ( pOutView ) { - const SvxFieldItem* pFieldItem = pOutView->GetFieldAtSelection(); - if ( pFieldItem ) + const SvxFieldData* pField = pOutView->GetFieldAtCursor(); + if( auto pURLField = dynamic_cast< const SvxURLField *>( pField ) ) { - const SvxFieldData* pField = pFieldItem->GetField(); - if( auto pURLField = dynamic_cast< const SvxURLField *>( pField ) ) - { - SfxStringItem aUrl( SID_FILE_NAME, pURLField->GetURL() ); - SfxStringItem aTarget( SID_TARGETNAME, pURLField->GetTargetFrame() ); + SfxStringItem aUrl( SID_FILE_NAME, pURLField->GetURL() ); + SfxStringItem aTarget( SID_TARGETNAME, pURLField->GetTargetFrame() ); - OUString aReferName; - SfxViewFrame* pFrame = GetViewFrame(); - SfxMedium* pMed = pFrame->GetObjectShell()->GetMedium(); - if (pMed) - aReferName = pMed->GetName(); + OUString aReferName; + SfxViewFrame* pFrame = GetViewFrame(); + SfxMedium* pMed = pFrame->GetObjectShell()->GetMedium(); + if (pMed) + aReferName = pMed->GetName(); - SfxFrameItem aFrm( SID_DOCFRAME, pFrame ); - SfxStringItem aReferer( SID_REFERER, aReferName ); + SfxFrameItem aFrm( SID_DOCFRAME, pFrame ); + SfxStringItem aReferer( SID_REFERER, aReferName ); - SfxBoolItem aNewView( SID_OPEN_NEW_VIEW, false ); - SfxBoolItem aBrowsing( SID_BROWSE, true ); + SfxBoolItem aNewView( SID_OPEN_NEW_VIEW, false ); + SfxBoolItem aBrowsing( SID_BROWSE, true ); - SfxViewFrame* pViewFrm = SfxViewFrame::Current(); - if (pViewFrm) - { - pViewFrm->GetDispatcher()->ExecuteList(SID_OPENDOC, - SfxCallMode::ASYNCHRON | SfxCallMode::RECORD, - { &aUrl, &aTarget, &aFrm, &aReferer, - &aNewView, &aBrowsing }); - } + SfxViewFrame* pViewFrm = SfxViewFrame::Current(); + if (pViewFrm) + { + pViewFrm->GetDispatcher()->ExecuteList(SID_OPENDOC, + SfxCallMode::ASYNCHRON | SfxCallMode::RECORD, + { &aUrl, &aTarget, &aFrm, &aReferer, + &aNewView, &aBrowsing }); } } } commit 7c5b671c5e57782c8872347b9adc91ef0ba8adec Author: Pranam Lashkari <lpra...@collabora.com> AuthorDate: Thu Jan 28 22:20:36 2021 +0530 Commit: Pranam Lashkari <lpra...@collabora.com> CommitDate: Fri Feb 5 09:11:40 2021 +0100 avoid automatical text selection in impress text box to avoid character besides the cursor getting selected after adding hyperlink in text box Change-Id: I35609829fe0f43568001eaf95ca2ebe7c50aa17d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110314 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> Reviewed-by: Szymon Kłos <szymon.k...@collabora.com> diff --git a/sd/source/ui/view/drviews7.cxx b/sd/source/ui/view/drviews7.cxx index bf7e6a426231..a74e9858df4e 100644 --- a/sd/source/ui/view/drviews7.cxx +++ b/sd/source/ui/view/drviews7.cxx @@ -37,6 +37,7 @@ #include <editeng/sizeitem.hxx> #include <editeng/ulspitem.hxx> #include <editeng/lrspitem.hxx> +#include <editeng/urlfieldhelper.hxx> #include <officecfg/Office/Common.hxx> #include <officecfg/Office/Impress.hxx> #include <svx/svxids.hrc> @@ -1443,19 +1444,8 @@ void DrawViewShell::GetMenuState( SfxItemSet &rSet ) { if( mpDrawView->IsTextEdit() ) { - OutlinerView* pOLV = mpDrawView->GetTextEditOutlinerView(); - if (pOLV) - { - const SvxFieldItem* pFieldItem = pOLV->GetFieldUnderMousePointer(); - if (!pFieldItem) - pFieldItem = pOLV->GetFieldAtSelection(); - if (pFieldItem) - { - const SvxFieldData* pField = pFieldItem->GetField(); - if (dynamic_cast<const SvxURLField*>(pField)) - bDisableEditHyperlink = false; - } - } + if (URLFieldHelper::IsCursorAtURLField(mpDrawView->GetTextEditOutlinerView())) + bDisableEditHyperlink = false; } else { diff --git a/sd/source/ui/view/drviewsf.cxx b/sd/source/ui/view/drviewsf.cxx index 24edd1887ad9..28c0c2db8f51 100644 --- a/sd/source/ui/view/drviewsf.cxx +++ b/sd/source/ui/view/drviewsf.cxx @@ -95,41 +95,14 @@ void DrawViewShell::GetCtrlState(SfxItemSet &rSet) if (pOLV) { - bool bField = false; - const SvxFieldItem* pFieldItem = pOLV->GetFieldAtSelection(); - if (pFieldItem) + const SvxFieldData* pField = pOLV->GetFieldAtCursor(); + if( auto pUrlField = dynamic_cast< const SvxURLField *>( pField ) ) { - // Make sure the whole field is selected - ESelection aSel = pOLV->GetSelection(); - if (aSel.nStartPos == aSel.nEndPos) - { - aSel.nEndPos++; - pOLV->SetSelection(aSel); - } - } - if (!pFieldItem) - { - // Cursor probably behind the field - extend selection to select the field - ESelection aSel = pOLV->GetSelection(); - if (aSel.nStartPos == aSel.nEndPos) - { - aSel.nStartPos--; - pOLV->SetSelection(aSel); - pFieldItem = pOLV->GetFieldAtSelection(); - } + aHLinkItem.SetName(pUrlField->GetRepresentation()); + aHLinkItem.SetURL(pUrlField->GetURL()); + aHLinkItem.SetTargetFrame(pUrlField->GetTargetFrame()); } - if (pFieldItem) - { - const SvxFieldData* pField = pFieldItem->GetField(); - if( auto pUrlField = dynamic_cast< const SvxURLField *>( pField ) ) - { - aHLinkItem.SetName(pUrlField->GetRepresentation()); - aHLinkItem.SetURL(pUrlField->GetURL()); - aHLinkItem.SetTargetFrame(pUrlField->GetTargetFrame()); - bField = true; - } - } - if (!bField) + else { // use selected text as name for urls OUString sReturn = pOLV->GetSelected(); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits