cui/source/options/optopencl.hxx | 6 cui/source/options/optsave.hxx | 5 include/svx/AccessibilityCheck.hxx | 7 - include/svx/AccessibilityCheckDialog.hxx | 12 - include/svx/AccessibilityIssue.hxx | 13 + svx/source/dialog/AccessibilityCheckDialog.cxx | 17 +- sw/qa/core/accessibilitycheck/AccessibilityCheckTest.cxx | 6 sw/source/core/access/AccessibilityCheck.cxx | 100 +++++++-------- sw/source/core/inc/AccessibilityIssue.hxx | 31 ++++ 9 files changed, 113 insertions(+), 84 deletions(-)
New commits: commit 22db41d4078f56d03905efbc71c16c322b2df091 Author: erto <yigitdemiral...@gmail.com> AuthorDate: Fri Dec 20 21:22:06 2019 +0300 Commit: Muhammet Kara <muhammet.k...@collabora.com> CommitDate: Sun Dec 29 17:00:18 2019 +0100 tdf#124176 Use pragma once instead of header guard Change-Id: I904c2b37a51c03d51503c0b460201392ec8894a4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/85628 Tested-by: Jenkins Reviewed-by: Muhammet Kara <muhammet.k...@collabora.com> diff --git a/cui/source/options/optopencl.hxx b/cui/source/options/optopencl.hxx index f9fbca43edf1..f7097d3fdba6 100644 --- a/cui/source/options/optopencl.hxx +++ b/cui/source/options/optopencl.hxx @@ -16,9 +16,7 @@ * except in compliance with the License. You may obtain a copy of * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ - -#ifndef INCLUDED_CUI_SOURCE_OPTIONS_OPTOPENCL_HXX -#define INCLUDED_CUI_SOURCE_OPTIONS_OPTOPENCL_HXX +#pragma once #include <opencl/openclconfig.hxx> #include <sfx2/tabdlg.hxx> @@ -41,6 +39,4 @@ public: virtual void Reset( const SfxItemSet* rSet ) override; }; -#endif - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cui/source/options/optsave.hxx b/cui/source/options/optsave.hxx index 4314bdda1ddf..6c9226285972 100644 --- a/cui/source/options/optsave.hxx +++ b/cui/source/options/optsave.hxx @@ -16,8 +16,7 @@ * except in compliance with the License. You may obtain a copy of * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ -#ifndef INCLUDED_CUI_SOURCE_OPTIONS_OPTSAVE_HXX -#define INCLUDED_CUI_SOURCE_OPTIONS_OPTSAVE_HXX +#pragma once #include <memory> #include <sfx2/tabdlg.hxx> @@ -79,6 +78,4 @@ public: virtual void Reset( const SfxItemSet* rSet ) override; }; -#endif // INCLUDED_CUI_SOURCE_OPTIONS_OPTSAVE_HXX - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ commit 976960791fb3c770c00ee8e94ee4f56bfe610eeb Author: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> AuthorDate: Fri Dec 20 09:57:23 2019 +0100 Commit: Tomaž Vajngerl <qui...@gmail.com> CommitDate: Sun Dec 29 17:00:14 2019 +0100 acc. check: add writer specific accessibility issue This adds sw::AccessibilityIssue and refactors the existing code to work with it. In addition adds AccessibilityIssueCollection which holds the vector of results. Change-Id: Ide0fdbdba337bbf8c2fd18770895fb63a22528b6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/85919 Reviewed-by: Tomaž Vajngerl <qui...@gmail.com> Tested-by: Tomaž Vajngerl <qui...@gmail.com> diff --git a/include/svx/AccessibilityCheck.hxx b/include/svx/AccessibilityCheck.hxx index 14e31065b879..f31b39d1d165 100644 --- a/include/svx/AccessibilityCheck.hxx +++ b/include/svx/AccessibilityCheck.hxx @@ -11,9 +11,10 @@ #ifndef INCLUDED_SVX_ACCESSIBILITYCHECK_HXX #define INCLUDED_SVX_ACCESSIBILITYCHECK_HXX +#include <svx/svxdllapi.h> #include <vector> +#include <memory> #include <rtl/ustring.hxx> -#include <svx/svxdllapi.h> #include <svx/AccessibilityIssue.hxx> namespace svx @@ -21,14 +22,14 @@ namespace svx class SVX_DLLPUBLIC AccessibilityCheck { protected: - std::vector<AccessibilityIssue> m_aIssueCollection; + AccessibilityIssueCollection m_aIssueCollection; public: virtual ~AccessibilityCheck() {} virtual void check() = 0; - std::vector<svx::AccessibilityIssue> const& getIssueCollecton() { return m_aIssueCollection; } + AccessibilityIssueCollection& getIssueCollecton() { return m_aIssueCollection; } }; } // end svx namespace diff --git a/include/svx/AccessibilityCheckDialog.hxx b/include/svx/AccessibilityCheckDialog.hxx index c55d69cbc696..d1cb2b8e20ab 100644 --- a/include/svx/AccessibilityCheckDialog.hxx +++ b/include/svx/AccessibilityCheckDialog.hxx @@ -27,27 +27,27 @@ private: std::unique_ptr<weld::Container> m_xContainer; std::unique_ptr<weld::Label> m_xLabel; - svx::AccessibilityIssue const& m_rAccessibilityIssue; + std::shared_ptr<AccessibilityIssue> const& m_pAccessibilityIssue; public: AccessibilityCheckEntry(weld::Container* pParent, - svx::AccessibilityIssue const& rAccessibilityIssue); + std::shared_ptr<AccessibilityIssue> const& pAccessibilityIssue); + weld::Widget* get_widget() const { return m_xContainer.get(); } }; class SVX_DLLPUBLIC AccessibilityCheckDialog final : public weld::GenericDialogController { private: - std::vector<svx::AccessibilityIssue> m_rAccessibilityIssueCollection; + AccessibilityIssueCollection m_aIssueCollection; std::vector<std::unique_ptr<AccessibilityCheckEntry>> m_aAccessibilityCheckEntries; // Controls std::unique_ptr<weld::Box> m_xAccessibilityCheckBox; public: - AccessibilityCheckDialog( - weld::Window* pParent, - std::vector<svx::AccessibilityIssue> const& rAccessibilityIssueCollection); + AccessibilityCheckDialog(weld::Window* pParent, + AccessibilityIssueCollection const& rIssueCollection); virtual ~AccessibilityCheckDialog() override; virtual short run() override; }; diff --git a/include/svx/AccessibilityIssue.hxx b/include/svx/AccessibilityIssue.hxx index 9d9143aef683..1f5089d97064 100644 --- a/include/svx/AccessibilityIssue.hxx +++ b/include/svx/AccessibilityIssue.hxx @@ -30,11 +30,22 @@ public: : m_eIssueID(eIssueID) { } + virtual ~AccessibilityIssue() {} AccessibilityIssueID m_eIssueID; OUString m_aIssueText; }; -} + +class SVX_DLLPUBLIC AccessibilityIssueCollection +{ +private: + std::vector<std::shared_ptr<AccessibilityIssue>> m_aIssues; + +public: + std::vector<std::shared_ptr<AccessibilityIssue>>& getIssues() { return m_aIssues; } +}; + +} // end svx namespace #endif // INCLUDED_SVX_ACCESSIBILITYISSUE_HXX diff --git a/svx/source/dialog/AccessibilityCheckDialog.cxx b/svx/source/dialog/AccessibilityCheckDialog.cxx index 06ab21d7611b..5459cb5ea5f5 100644 --- a/svx/source/dialog/AccessibilityCheckDialog.cxx +++ b/svx/source/dialog/AccessibilityCheckDialog.cxx @@ -14,23 +14,22 @@ namespace svx { -AccessibilityCheckEntry::AccessibilityCheckEntry(weld::Container* pParent, - AccessibilityIssue const& rAccessibilityIssue) +AccessibilityCheckEntry::AccessibilityCheckEntry( + weld::Container* pParent, std::shared_ptr<AccessibilityIssue> const& rAccessibilityIssue) : m_xBuilder(Application::CreateBuilder(pParent, "svx/ui/accessibilitycheckentry.ui")) , m_xContainer(m_xBuilder->weld_container("accessibilityCheckEntryBox")) , m_xLabel(m_xBuilder->weld_label("accessibilityCheckEntryLabel")) - , m_rAccessibilityIssue(rAccessibilityIssue) + , m_pAccessibilityIssue(rAccessibilityIssue) { - m_xLabel->set_label(m_rAccessibilityIssue.m_aIssueText); + m_xLabel->set_label(m_pAccessibilityIssue->m_aIssueText); m_xContainer->show(); } AccessibilityCheckDialog::AccessibilityCheckDialog( - weld::Window* pParent, - std::vector<svx::AccessibilityIssue> const& rAccessibilityIssueCollection) + weld::Window* pParent, AccessibilityIssueCollection const& rIssueCollection) : GenericDialogController(pParent, "svx/ui/accessibilitycheckdialog.ui", "AccessibilityCheckDialog") - , m_rAccessibilityIssueCollection(rAccessibilityIssueCollection) + , m_aIssueCollection(rIssueCollection) , m_xAccessibilityCheckBox(m_xBuilder->weld_box("accessibilityCheckBox")) { } @@ -41,10 +40,10 @@ short AccessibilityCheckDialog::run() { sal_Int32 i = 0; - for (svx::AccessibilityIssue const& rResult : m_rAccessibilityIssueCollection) + for (std::shared_ptr<AccessibilityIssue> const& pIssue : m_aIssueCollection.getIssues()) { auto xEntry - = std::make_unique<AccessibilityCheckEntry>(m_xAccessibilityCheckBox.get(), rResult); + = std::make_unique<AccessibilityCheckEntry>(m_xAccessibilityCheckBox.get(), pIssue); m_xAccessibilityCheckBox->reorder_child(xEntry->get_widget(), i++); m_aAccessibilityCheckEntries.push_back(std::move(xEntry)); } diff --git a/sw/qa/core/accessibilitycheck/AccessibilityCheckTest.cxx b/sw/qa/core/accessibilitycheck/AccessibilityCheckTest.cxx index 1f114c004a6c..4f71190554ba 100644 --- a/sw/qa/core/accessibilitycheck/AccessibilityCheckTest.cxx +++ b/sw/qa/core/accessibilitycheck/AccessibilityCheckTest.cxx @@ -29,10 +29,10 @@ CPPUNIT_TEST_FIXTURE(AccessibilityCheckTest, testCheck) CPPUNIT_ASSERT(pDoc); sw::AccessibilityCheck aCheck(pDoc); aCheck.check(); - auto& aIssues = aCheck.getIssueCollecton(); + auto& aIssues = aCheck.getIssueCollecton().getIssues(); CPPUNIT_ASSERT_EQUAL(size_t(2), aIssues.size()); - CPPUNIT_ASSERT_EQUAL(svx::AccessibilityIssueID::DOCUMENT_LANGUAGE, aIssues[0].m_eIssueID); - CPPUNIT_ASSERT_EQUAL(svx::AccessibilityIssueID::DOCUMENT_TITLE, aIssues[1].m_eIssueID); + CPPUNIT_ASSERT_EQUAL(svx::AccessibilityIssueID::DOCUMENT_LANGUAGE, aIssues[0]->m_eIssueID); + CPPUNIT_ASSERT_EQUAL(svx::AccessibilityIssueID::DOCUMENT_TITLE, aIssues[1]->m_eIssueID); } CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/sw/source/core/access/AccessibilityCheck.cxx b/sw/source/core/access/AccessibilityCheck.cxx index bf4fa661429e..dc82b4c17e48 100644 --- a/sw/source/core/access/AccessibilityCheck.cxx +++ b/sw/source/core/access/AccessibilityCheck.cxx @@ -9,6 +9,7 @@ */ #include <AccessibilityCheck.hxx> +#include <AccessibilityIssue.hxx> #include <ndgrf.hxx> #include <ndole.hxx> #include <ndtxt.hxx> @@ -45,13 +46,21 @@ OUString sTextBlinking("Blinking text."); OUString sAvoidFootnotes("Avoid footnotes."); OUString sAvoidEndnotes("Avoid endnotes."); +void lclAddIssue(svx::AccessibilityIssueCollection& rIssueCollection, OUString const& rText, + svx::AccessibilityIssueID eIssue = svx::AccessibilityIssueID::UNSPECIFIED) +{ + auto pIssue = std::make_shared<sw::AccessibilityIssue>(eIssue); + pIssue->m_aIssueText = rText; + rIssueCollection.getIssues().push_back(pIssue); +} + class BaseCheck { protected: - std::vector<svx::AccessibilityIssue>& m_rIssueCollection; + svx::AccessibilityIssueCollection& m_rIssueCollection; public: - BaseCheck(std::vector<svx::AccessibilityIssue>& rIssueCollection) + BaseCheck(svx::AccessibilityIssueCollection& rIssueCollection) : m_rIssueCollection(rIssueCollection) { } @@ -61,7 +70,7 @@ public: class NodeCheck : public BaseCheck { public: - NodeCheck(std::vector<svx::AccessibilityIssue>& rIssueCollection) + NodeCheck(svx::AccessibilityIssueCollection& rIssueCollection) : BaseCheck(rIssueCollection) { } @@ -81,14 +90,14 @@ class NoTextNodeAltTextCheck : public NodeCheck if (sAlternative.isEmpty()) { OUString sName = pNoTextNode->GetFlyFormat()->GetName(); - svx::AccessibilityIssue aIssue; - aIssue.m_aIssueText = sNoAlt.replaceAll("%OBJECT_NAME%", sName); - m_rIssueCollection.push_back(aIssue); + + OUString sIssueText = sNoAlt.replaceAll("%OBJECT_NAME%", sName); + lclAddIssue(m_rIssueCollection, sIssueText); } } public: - NoTextNodeAltTextCheck(std::vector<svx::AccessibilityIssue>& rIssueCollection) + NoTextNodeAltTextCheck(svx::AccessibilityIssueCollection& rIssueCollection) : NodeCheck(rIssueCollection) { } @@ -117,9 +126,8 @@ private: if (rTable.IsTableComplex()) { OUString sName = rTable.GetTableStyleName(); - svx::AccessibilityIssue aIssue; - aIssue.m_aIssueText = sTableMergeSplit.replaceAll("%OBJECT_NAME%", sName); - m_rIssueCollection.push_back(aIssue); + OUString sIssueText = sTableMergeSplit.replaceAll("%OBJECT_NAME%", sName); + lclAddIssue(m_rIssueCollection, sIssueText); } else { @@ -148,17 +156,16 @@ private: if (!bAllColumnsSameSize) { OUString sName = rTable.GetTableStyleName(); - svx::AccessibilityIssue aIssue; - aIssue.m_aIssueText = sTableMergeSplit.replaceAll("%OBJECT_NAME%", sName); - m_rIssueCollection.push_back(aIssue); + OUString sIssueText = sTableMergeSplit.replaceAll("%OBJECT_NAME%", sName); + lclAddIssue(m_rIssueCollection, sIssueText); } } } } public: - TableNodeMergeSplitCheck(std::vector<svx::AccessibilityIssue>& rAccessibilityIssueCollection) - : NodeCheck(rAccessibilityIssueCollection) + TableNodeMergeSplitCheck(svx::AccessibilityIssueCollection& rIssueCollection) + : NodeCheck(rIssueCollection) { } @@ -184,7 +191,7 @@ private: }; public: - NumberingCheck(std::vector<svx::AccessibilityIssue>& rIssueCollection) + NumberingCheck(svx::AccessibilityIssueCollection& rIssueCollection) : NodeCheck(rIssueCollection) , pPreviousTextNode(nullptr) { @@ -201,10 +208,9 @@ public: if (pCurrent->GetTextNode()->GetText().startsWith(rPair.second) && pPreviousTextNode->GetText().startsWith(rPair.first)) { - svx::AccessibilityIssue aIssue; OUString sNumbering = rPair.first + " " + rPair.second + "..."; - aIssue.m_aIssueText = sFakeNumbering.replaceAll("%NUMBERING%", sNumbering); - m_rIssueCollection.push_back(aIssue); + OUString sIssueText = sFakeNumbering.replaceAll("%NUMBERING%", sNumbering); + lclAddIssue(m_rIssueCollection, sIssueText); } } } @@ -228,16 +234,15 @@ private: OUString sText = xTextRange->getString(); if (INetURLObject(sText) == INetURLObject(sHyperlink)) { - svx::AccessibilityIssue aIssue; - aIssue.m_aIssueText = sHyperlinkTextIsLink.replaceFirst("%LINK%", sHyperlink); - m_rIssueCollection.push_back(aIssue); + OUString sIssueText = sHyperlinkTextIsLink.replaceFirst("%LINK%", sHyperlink); + lclAddIssue(m_rIssueCollection, sIssueText); } } } } public: - HyperlinkCheck(std::vector<svx::AccessibilityIssue>& rIssueCollection) + HyperlinkCheck(svx::AccessibilityIssueCollection& rIssueCollection) : NodeCheck(rIssueCollection) { } @@ -361,15 +366,13 @@ private: double fContrastRatio = calculateContrastRatio(aForegroundColor, aBackgroundColor); if (fContrastRatio < 4.5) { - svx::AccessibilityIssue aIssue; - aIssue.m_aIssueText = sTextContrast; - m_rIssueCollection.push_back(aIssue); + lclAddIssue(m_rIssueCollection, sTextContrast); } } } public: - TextContrastCheck(std::vector<svx::AccessibilityIssue>& rIssueCollection) + TextContrastCheck(svx::AccessibilityIssueCollection& rIssueCollection) : NodeCheck(rIssueCollection) { } @@ -411,15 +414,13 @@ private: if (bBlinking) { - svx::AccessibilityIssue aIssue; - aIssue.m_aIssueText = sTextBlinking; - m_rIssueCollection.push_back(aIssue); + lclAddIssue(m_rIssueCollection, sTextBlinking); } } } public: - BlinkingTextCheck(std::vector<svx::AccessibilityIssue>& rIssueCollection) + BlinkingTextCheck(svx::AccessibilityIssueCollection& rIssueCollection) : NodeCheck(rIssueCollection) { } @@ -451,7 +452,7 @@ public: class DocumentCheck : public BaseCheck { public: - DocumentCheck(std::vector<svx::AccessibilityIssue>& rIssueCollection) + DocumentCheck(svx::AccessibilityIssueCollection& rIssueCollection) : BaseCheck(rIssueCollection) { } @@ -463,7 +464,7 @@ public: class DocumentDefaultLanguageCheck : public DocumentCheck { public: - DocumentDefaultLanguageCheck(std::vector<svx::AccessibilityIssue>& rIssueCollection) + DocumentDefaultLanguageCheck(svx::AccessibilityIssueCollection& rIssueCollection) : DocumentCheck(rIssueCollection) { } @@ -475,9 +476,8 @@ public: LanguageType eLanguage = rLang.GetLanguage(); if (eLanguage == LANGUAGE_NONE) { - svx::AccessibilityIssue aIssue(svx::AccessibilityIssueID::DOCUMENT_LANGUAGE); - aIssue.m_aIssueText = sDocumentDefaultLanguage; - m_rIssueCollection.push_back(aIssue); + lclAddIssue(m_rIssueCollection, sDocumentDefaultLanguage, + svx::AccessibilityIssueID::DOCUMENT_LANGUAGE); } else { @@ -486,10 +486,10 @@ public: const SwAttrSet& rAttrSet = pTextFormatCollection->GetAttrSet(); if (rAttrSet.GetLanguage(false).GetLanguage() == LANGUAGE_NONE) { - svx::AccessibilityIssue aIssue(svx::AccessibilityIssueID::STYLE_LANGUAGE); OUString sName = pTextFormatCollection->GetName(); - aIssue.m_aIssueText = sStyleNoLanguage.replaceAll("%STYLE_NAME%", sName); - m_rIssueCollection.push_back(aIssue); + OUString sIssueText = sStyleNoLanguage.replaceAll("%STYLE_NAME%", sName); + lclAddIssue(m_rIssueCollection, sIssueText, + svx::AccessibilityIssueID::STYLE_LANGUAGE); } } } @@ -499,7 +499,7 @@ public: class DocumentTitleCheck : public DocumentCheck { public: - DocumentTitleCheck(std::vector<svx::AccessibilityIssue>& rIssueCollection) + DocumentTitleCheck(svx::AccessibilityIssueCollection& rIssueCollection) : DocumentCheck(rIssueCollection) { } @@ -516,9 +516,8 @@ public: OUString sTitle = xDocumentProperties->getTitle(); if (sTitle.isEmpty()) { - svx::AccessibilityIssue aIssue(svx::AccessibilityIssueID::DOCUMENT_TITLE); - aIssue.m_aIssueText = sDocumentTitle; - m_rIssueCollection.push_back(aIssue); + lclAddIssue(m_rIssueCollection, sDocumentTitle, + svx::AccessibilityIssueID::DOCUMENT_TITLE); } } } @@ -527,7 +526,7 @@ public: class FootnoteEndnoteCheck : public DocumentCheck { public: - FootnoteEndnoteCheck(std::vector<svx::AccessibilityIssue>& rIssueCollection) + FootnoteEndnoteCheck(svx::AccessibilityIssueCollection& rIssueCollection) : DocumentCheck(rIssueCollection) { } @@ -539,15 +538,11 @@ public: SwFormatFootnote const& rFootnote = pTextFootnote->GetFootnote(); if (rFootnote.IsEndNote()) { - svx::AccessibilityIssue aIssue; - aIssue.m_aIssueText = sAvoidEndnotes; - m_rIssueCollection.push_back(aIssue); + lclAddIssue(m_rIssueCollection, sAvoidEndnotes); } else { - svx::AccessibilityIssue aIssue; - aIssue.m_aIssueText = sAvoidFootnotes; - m_rIssueCollection.push_back(aIssue); + lclAddIssue(m_rIssueCollection, sAvoidFootnotes); } } } @@ -567,9 +562,8 @@ void AccessibilityCheck::checkObject(SdrObject* pObject) if (sAlternative.isEmpty()) { OUString sName = pObject->GetName(); - svx::AccessibilityIssue aIssue; - aIssue.m_aIssueText = sNoAlt.replaceAll("%OBJECT_NAME%", sName); - m_aIssueCollection.push_back(aIssue); + OUString sIssueText = sNoAlt.replaceAll("%OBJECT_NAME%", sName); + lclAddIssue(m_aIssueCollection, sIssueText); } } } diff --git a/sw/source/core/inc/AccessibilityIssue.hxx b/sw/source/core/inc/AccessibilityIssue.hxx new file mode 100644 index 000000000000..c0eaf73b1df6 --- /dev/null +++ b/sw/source/core/inc/AccessibilityIssue.hxx @@ -0,0 +1,31 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + */ + +#ifndef INCLUDED_SW_SOURCE_CORE_ACCESSIBILITYISSUE_HXX +#define INCLUDED_SW_SOURCE_CORE_ACCESSIBILITYISSUE_HXX + +#include <svx/AccessibilityIssue.hxx> + +namespace sw +{ +class SW_DLLPUBLIC AccessibilityIssue final : public svx::AccessibilityIssue +{ +public: + AccessibilityIssue(svx::AccessibilityIssueID eIssueID = svx::AccessibilityIssueID::UNSPECIFIED) + : svx::AccessibilityIssue(eIssueID) + { + } +}; + +} // end sw namespace + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits