sw: run document properties a11y checks on a loaded document
Change-Id: Iba98a91a61955af52651348409f88244d1eed2c1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142216
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
diff --git a/sw/inc/OnlineAccessibilityCheck.hxx b/sw/inc/OnlineAccessibilityCheck.hxx
index fe46529..3d68a71 100644
--- a/sw/inc/OnlineAccessibilityCheck.hxx
+++ b/sw/inc/OnlineAccessibilityCheck.hxx
@@ -53,6 +53,7 @@ private:
sal_Int32 m_nAccessibilityIssues;
bool m_bInitialCheck;
bool m_bOnlineCheckStatus;
std::unique_ptr<sfx::AccessibilityIssueCollection> m_pDocumentAccessibilityIssues;
void runAccessibilityCheck(SwNode* pNode);
void updateStatusbar();
@@ -60,6 +61,7 @@ private:
void initialCheck();
void lookForPreviousNodeAndUpdate(SwPosition const& rNewPos);
void clearAccessibilityIssuesFromAllNodes();
void runDocumentLevelAccessibilityCheck();
public:
OnlineAccessibilityCheck(SwDoc& rDocument);
diff --git a/sw/source/core/access/AccessibilityCheck.cxx b/sw/source/core/access/AccessibilityCheck.cxx
index 802dda2..ac558a4 100644
--- a/sw/source/core/access/AccessibilityCheck.cxx
+++ b/sw/source/core/access/AccessibilityCheck.cxx
@@ -1411,7 +1411,7 @@ void AccessibilityCheck::checkNode(SwNode* pNode)
}
}
void AccessibilityCheck::check()
void AccessibilityCheck::checkDocumentProperties()
{
if (m_pDoc == nullptr)
return;
@@ -1424,6 +1424,16 @@ void AccessibilityCheck::check()
if (pDocumentCheck)
pDocumentCheck->check(m_pDoc);
}
}
void AccessibilityCheck::check()
{
if (m_pDoc == nullptr)
return;
init();
checkDocumentProperties();
auto const& pNodes = m_pDoc->GetNodes();
SwNode* pNode = nullptr;
diff --git a/sw/source/core/inc/AccessibilityCheck.hxx b/sw/source/core/inc/AccessibilityCheck.hxx
index 1ff4cf5..c7613e8 100644
--- a/sw/source/core/inc/AccessibilityCheck.hxx
+++ b/sw/source/core/inc/AccessibilityCheck.hxx
@@ -51,6 +51,7 @@ public:
void check() override;
void checkObject(SdrObject* pObject);
void checkNode(SwNode* pNode);
void checkDocumentProperties();
};
} // end sw namespace
diff --git a/sw/source/core/txtnode/OnlineAccessibilityCheck.cxx b/sw/source/core/txtnode/OnlineAccessibilityCheck.cxx
index db12126..1188bc7 100644
--- a/sw/source/core/txtnode/OnlineAccessibilityCheck.cxx
+++ b/sw/source/core/txtnode/OnlineAccessibilityCheck.cxx
@@ -135,11 +135,22 @@ void OnlineAccessibilityCheck::runAccessibilityCheck(SwNode* pNode)
= std::make_unique<sfx::AccessibilityIssueCollection>(aCollection);
}
void OnlineAccessibilityCheck::runDocumentLevelAccessibilityCheck()
{
m_aAccessibilityCheck.getIssueCollection().clear();
m_aAccessibilityCheck.checkDocumentProperties();
auto aCollection = m_aAccessibilityCheck.getIssueCollection();
m_pDocumentAccessibilityIssues
= std::make_unique<sfx::AccessibilityIssueCollection>(aCollection);
}
void OnlineAccessibilityCheck::initialCheck()
{
if (m_bInitialCheck)
return;
runDocumentLevelAccessibilityCheck();
auto const& pNodes = m_rDocument.GetNodes();
for (SwNodeOffset n(0); n < pNodes.Count(); ++n)
{