sw/inc/cmdid.h | 1 + sw/sdi/_basesh.sdi | 6 ++++++ sw/sdi/swriter.sdi | 18 ++++++++++++++++++ sw/source/core/access/AccessibilityCheck.cxx | 8 ++++++-- sw/source/core/access/AccessibilityIssue.cxx | 20 +++++++++++++++++--- sw/source/core/inc/AccessibilityIssue.hxx | 1 + sw/source/uibase/shells/basesh.cxx | 4 ++++ 7 files changed, 53 insertions(+), 5 deletions(-)
New commits: commit d190758ecee87c2d5d3944e40c4cca6850ce7fd2 Author: Balazs Varga <balazs.varga.ext...@allotropia.de> AuthorDate: Tue Aug 8 18:07:11 2023 +0200 Commit: Samuel Mehrbrodt <samuel.mehrbr...@allotropia.de> CommitDate: Thu Aug 10 11:09:00 2023 +0200 tdf#156594 - A11Y - add fix button for "Avoid background images." - add fix button for "Avoid background images." - add .uno:PageAreaDialog command to navigate page style-->Area tab Change-Id: Ibad4e8896d05e72713189a0042c3f156a0733171 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155464 Reviewed-by: Samuel Mehrbrodt <samuel.mehrbr...@allotropia.de> Tested-by: Jenkins diff --git a/sw/inc/cmdid.h b/sw/inc/cmdid.h index 78fce16a7bd5..08f239b3d8d0 100644 --- a/sw/inc/cmdid.h +++ b/sw/inc/cmdid.h @@ -356,6 +356,7 @@ class SwUINumRuleItem; #define FN_FORMAT_FRAME_DLG TypedWhichId<SfxStringItem>(FN_FORMAT + 56) /* frame */ #define FN_FORMAT_GRAFIC_DLG (FN_FORMAT + 58) /* graphic */ #define FN_FORMAT_TABLE_DLG TypedWhichId<SfxStringItem>(FN_FORMAT + 60) /* table */ +#define FN_FORMAT_PAGE_AREA_DLG (FN_FORMAT + 62) /* area/background */ #define FN_UPDATE_STYLE_BY_EXAMPLE (FN_FORMAT + 63) /* update style */ #define FN_FORMAT_FOOTNOTE_DLG (FN_FORMAT + 68) /* footnote dialog */ diff --git a/sw/sdi/_basesh.sdi b/sw/sdi/_basesh.sdi index b338abfe9b7e..6967020afbcc 100644 --- a/sw/sdi/_basesh.sdi +++ b/sw/sdi/_basesh.sdi @@ -289,6 +289,12 @@ interface BaseTextSelection DisableFlags="SfxDisableFlags::SwOnProtectedCursor"; ] + FN_FORMAT_PAGE_AREA_DLG + [ + ExecMethod = ExecDlg ; + DisableFlags="SfxDisableFlags::SwOnProtectedCursor"; + ] + FN_CONVERT_TABLE_TO_TEXT [ ExecMethod = Execute ; diff --git a/sw/sdi/swriter.sdi b/sw/sdi/swriter.sdi index 1ae79b5b2b8b..92fc37a342a3 100644 --- a/sw/sdi/swriter.sdi +++ b/sw/sdi/swriter.sdi @@ -4897,6 +4897,24 @@ SfxVoidItem PageSettingDialog FN_FORMAT_PAGE_SETTING_DLG GroupId = SfxGroupId::Format; ] +SfxVoidItem PageAreaDialog FN_FORMAT_PAGE_AREA_DLG +() +[ + AutoUpdate = FALSE, + FastCall = FALSE, + ReadOnlyDoc = FALSE, + Toggle = FALSE, + Container = FALSE, + RecordAbsolute = FALSE, + RecordPerSet; + Asynchron; + + AccelConfig = TRUE, + MenuConfig = TRUE, + ToolBoxConfig = TRUE, + GroupId = SfxGroupId::Format; +] + SfxVoidItem TitlePageDialog FN_FORMAT_TITLEPAGE_DLG () [ diff --git a/sw/source/core/access/AccessibilityCheck.cxx b/sw/source/core/access/AccessibilityCheck.cxx index 86684ab4d879..19683f9cf761 100644 --- a/sw/source/core/access/AccessibilityCheck.cxx +++ b/sw/source/core/access/AccessibilityCheck.cxx @@ -1453,8 +1453,12 @@ public: drawing::FillStyle aFillStyle = aFillStyleContainer.get<drawing::FillStyle>(); if (aFillStyle == drawing::FillStyle_BITMAP) { - lclAddIssue(m_rIssueCollection, SwResId(STR_AVOID_BACKGROUND_IMAGES), - sfx::AccessibilityIssueID::DOCUMENT_BACKGROUND); + auto pIssue + = lclAddIssue(m_rIssueCollection, SwResId(STR_AVOID_BACKGROUND_IMAGES), + sfx::AccessibilityIssueID::DOCUMENT_BACKGROUND); + + pIssue->setDoc(*pDoc); + pIssue->setIssueObject(IssueObject::DOCUMENT_BACKGROUND); } } } diff --git a/sw/source/core/access/AccessibilityIssue.cxx b/sw/source/core/access/AccessibilityIssue.cxx index adc52b0dfea2..2ec8b5f02e20 100644 --- a/sw/source/core/access/AccessibilityIssue.cxx +++ b/sw/source/core/access/AccessibilityIssue.cxx @@ -10,6 +10,9 @@ #include <com/sun/star/document/XDocumentPropertiesSupplier.hpp> +#include <comphelper/propertyvalue.hxx> +#include <comphelper/dispatchcommand.hxx> + #include <AccessibilityIssue.hxx> #include <AccessibilityCheckStrings.hrc> #include <drawdoc.hxx> @@ -46,7 +49,8 @@ void AccessibilityIssue::setObjectID(OUString const& rID) { m_sObjectID = rID; } bool AccessibilityIssue::canGotoIssue() const { if (m_pDoc && m_eIssueObject != IssueObject::UNKNOWN - && m_eIssueObject != IssueObject::DOCUMENT_TITLE) + && m_eIssueObject != IssueObject::DOCUMENT_TITLE + && m_eIssueObject != IssueObject::DOCUMENT_BACKGROUND) return true; return false; } @@ -139,7 +143,8 @@ bool AccessibilityIssue::canQuickFixIssue() const { return m_eIssueObject == IssueObject::GRAPHIC || m_eIssueObject == IssueObject::OLE || m_eIssueObject == IssueObject::SHAPE || m_eIssueObject == IssueObject::FORM - || m_eIssueObject == IssueObject::DOCUMENT_TITLE; + || m_eIssueObject == IssueObject::DOCUMENT_TITLE + || m_eIssueObject == IssueObject::DOCUMENT_BACKGROUND; } void AccessibilityIssue::quickFixIssue() const @@ -147,7 +152,7 @@ void AccessibilityIssue::quickFixIssue() const if (!m_pDoc) return; - if (m_eIssueObject != IssueObject::UNKNOWN) + if (canGotoIssue()) gotoIssue(); switch (m_eIssueObject) @@ -201,6 +206,15 @@ void AccessibilityIssue::quickFixIssue() const } } break; + case IssueObject::DOCUMENT_BACKGROUND: + { + uno::Reference<frame::XModel> xModel(m_pDoc->GetDocShell()->GetModel(), + uno::UNO_QUERY_THROW); + + comphelper::dispatchCommand(".uno:PageAreaDialog", + xModel->getCurrentController()->getFrame(), {}); + } + break; default: break; } diff --git a/sw/source/core/inc/AccessibilityIssue.hxx b/sw/source/core/inc/AccessibilityIssue.hxx index b7f42165853c..7a793fe8a60e 100644 --- a/sw/source/core/inc/AccessibilityIssue.hxx +++ b/sw/source/core/inc/AccessibilityIssue.hxx @@ -27,6 +27,7 @@ enum class IssueObject TABLE, TEXT, DOCUMENT_TITLE, + DOCUMENT_BACKGROUND, FOOTENDNOTE, TEXTFRAME, }; diff --git a/sw/source/uibase/shells/basesh.cxx b/sw/source/uibase/shells/basesh.cxx index 8e382a0ba6e0..a2ea7501e1e9 100644 --- a/sw/source/uibase/shells/basesh.cxx +++ b/sw/source/uibase/shells/basesh.cxx @@ -2811,6 +2811,7 @@ void SwBaseShell::ExecDlg(SfxRequest &rReq) case FN_FORMAT_PAGE_DLG: case FN_FORMAT_PAGE_COLUMN_DLG: case FN_FORMAT_PAGE_SETTING_DLG: + case FN_FORMAT_PAGE_AREA_DLG: { if( !bBackground ) { @@ -2829,6 +2830,9 @@ void SwBaseShell::ExecDlg(SfxRequest &rReq) case FN_FORMAT_PAGE_SETTING_DLG: sPageId = "page"; break; + case FN_FORMAT_PAGE_AREA_DLG: + sPageId = "area"; + break; case FN_FORMAT_PAGE_DLG: if (pItem) sPageId = static_cast<const SfxStringItem*>(pItem)->GetValue();