summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>2021-07-27 14:10:27 +0200
committerSamuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>2021-07-27 16:19:17 +0200
commit3c6b0322e2dc897bdd986afe0fe876a5d429528a (patch)
tree086bb5e417a1df5a8dbfeadd791aae9210d7bc3b
parentcec95cd93ce002ff57e9a530ee920170f5d36e38 (diff)
tdf#123626 Add "Open hyperlink" context menu to hyperlinked shapes
Was missing in a23b44fd9f0119f7ea3523e32875f55c1a07c1cd Change-Id: Ifcee4af79a00c77206be4c2d5ff621f56f2d0018 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119551 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>
-rw-r--r--sw/sdi/_drwbase.sdi6
-rw-r--r--sw/source/uibase/shells/drwbassh.cxx14
2 files changed, 18 insertions, 2 deletions
diff --git a/sw/sdi/_drwbase.sdi b/sw/sdi/_drwbase.sdi
index e90d50cb92fb..6c700380ed10 100644
--- a/sw/sdi/_drwbase.sdi
+++ b/sw/sdi/_drwbase.sdi
@@ -117,6 +117,12 @@ interface BaseTextDrawBase
StateMethod = GetState ;
DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
]
+ SID_OPEN_HYPERLINK
+ [
+ ExecMethod = Execute ;
+ StateMethod = GetState ;
+ DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
+ ]
SID_EDIT_HYPERLINK
[
ExecMethod = Execute ;
diff --git a/sw/source/uibase/shells/drwbassh.cxx b/sw/source/uibase/shells/drwbassh.cxx
index 29b7ec39a2a6..14c07162d711 100644
--- a/sw/source/uibase/shells/drwbassh.cxx
+++ b/sw/source/uibase/shells/drwbassh.cxx
@@ -605,6 +605,15 @@ void SwDrawBaseShell::Execute(SfxRequest const &rReq)
break;
}
+ case SID_OPEN_HYPERLINK:
+ {
+ const SdrMarkList& rMarkList = pSdrView->GetMarkedObjectList();
+ SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
+ LoadURL(GetShell(), pObj->getHyperlink(), LoadUrlFlags::NewView,
+ /*rTargetFrameName=*/OUString());
+ break;
+ }
+
case SID_EDIT_HYPERLINK:
case SID_HYPERLINK_DIALOG:
{
@@ -837,6 +846,7 @@ void SwDrawBaseShell::GetState(SfxItemSet& rSet)
}
break;
+ case SID_OPEN_HYPERLINK:
case SID_EDIT_HYPERLINK:
case SID_HYPERLINK_DIALOG:
case SID_REMOVE_HYPERLINK:
@@ -844,8 +854,8 @@ void SwDrawBaseShell::GetState(SfxItemSet& rSet)
{
if (pSdrView->GetMarkedObjectCount() != 1)
rSet.DisableItem(nWhich);
- else if (nWhich == SID_REMOVE_HYPERLINK || nWhich == SID_EDIT_HYPERLINK
- || nWhich == SID_COPY_HYPERLINK_LOCATION)
+ else if (nWhich == SID_OPEN_HYPERLINK || nWhich == SID_REMOVE_HYPERLINK
+ || nWhich == SID_EDIT_HYPERLINK || nWhich == SID_COPY_HYPERLINK_LOCATION)
{
const SdrMarkList& rMarkList = pSdrView->GetMarkedObjectList();
SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj();