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(-)

New commits:
commit d3996db28d88d219a9a1acc98af0cc862ac3d704
Author:     Samuel Mehrbrodt <samuel.mehrbr...@allotropia.de>
AuthorDate: Thu Jun 1 14:01:45 2023 +0200
Commit:     Samuel Mehrbrodt <samuel.mehrbr...@allotropia.de>
CommitDate: Thu Jun 1 15:53:13 2023 +0200

    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 <samuel.mehrbr...@allotropia.de>

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,
 };

Reply via email to