From d3996db28d88d219a9a1acc98af0cc862ac3d704 Mon Sep 17 00:00:00 2001 From: Samuel Mehrbrodt Date: Thu, 1 Jun 2023 14:01:45 +0200 Subject: tdf#155504 Add "Go to" function to shapes Change-Id: Ic1f39c65565f92ceb86e3b19d45aed7014b88e2a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152487 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt --- sw/source/core/access/AccessibilityCheck.cxx | 6 +++++- sw/source/core/access/AccessibilityIssue.cxx | 10 +++++++++- sw/source/core/inc/AccessibilityIssue.hxx | 1 + 3 files changed, 15 insertions(+), 2 deletions(-) (limited to 'sw/source') diff --git a/sw/source/core/access/AccessibilityCheck.cxx b/sw/source/core/access/AccessibilityCheck.cxx index e9cead1fe243..4502eae1a01c 100644 --- a/sw/source/core/access/AccessibilityCheck.cxx +++ b/sw/source/core/access/AccessibilityCheck.cxx @@ -1361,7 +1361,11 @@ void AccessibilityCheck::checkObject(SdrObject* pObject) { OUString sName = pObject->GetName(); OUString sIssueText = SwResId(STR_NO_ALT).replaceAll("%OBJECT_NAME%", sName); - lclAddIssue(m_aIssueCollection, sIssueText, sfx::AccessibilityIssueID::NO_ALT_SHAPE); + auto pIssue = lclAddIssue(m_aIssueCollection, sIssueText, + sfx::AccessibilityIssueID::NO_ALT_SHAPE); + pIssue->setIssueObject(IssueObject::SHAPE); + pIssue->setObjectID(pObject->GetName()); + pIssue->setDoc(*m_pDoc); } } } diff --git a/sw/source/core/access/AccessibilityIssue.cxx b/sw/source/core/access/AccessibilityIssue.cxx index 300f42eeaf6a..e11531ecd474 100644 --- a/sw/source/core/access/AccessibilityIssue.cxx +++ b/sw/source/core/access/AccessibilityIssue.cxx @@ -38,7 +38,7 @@ void AccessibilityIssue::setObjectID(OUString const& rID) { m_sObjectID = rID; } bool AccessibilityIssue::canGotoIssue() const { - if (m_eIssueObject != IssueObject::UNKNOWN) + if (m_pDoc && m_eIssueObject != IssueObject::UNKNOWN) return true; return false; } @@ -59,6 +59,14 @@ void AccessibilityIssue::gotoIssue() const pWrtShell->ShowCursor(); } break; + case IssueObject::SHAPE: + { + SwWrtShell* pWrtShell = m_pDoc->GetDocShell()->GetWrtShell(); + pWrtShell->GotoDrawingObject(m_sObjectID); + if (comphelper::LibreOfficeKit::isActive()) + pWrtShell->ShowCursor(); + } + break; case IssueObject::TABLE: { SwWrtShell* pWrtShell = m_pDoc->GetDocShell()->GetWrtShell(); diff --git a/sw/source/core/inc/AccessibilityIssue.hxx b/sw/source/core/inc/AccessibilityIssue.hxx index 9cffdd405b9a..208f2656d0f5 100644 --- a/sw/source/core/inc/AccessibilityIssue.hxx +++ b/sw/source/core/inc/AccessibilityIssue.hxx @@ -21,6 +21,7 @@ enum class IssueObject UNKNOWN, GRAPHIC, OLE, + SHAPE, TABLE, TEXT, }; -- cgit