vcl/inc/qt5/Qt5AccessibleWidget.hxx | 6 ++++++ vcl/qt5/Qt5AccessibleWidget.cxx | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+)
New commits: commit 1c712a4447f560b8dc63a3e1e775ab04ef54f988 Author: Samuel Mehrbrodt <samuel.mehrbr...@cib.de> AuthorDate: Wed Oct 31 09:21:17 2018 +0100 Commit: Samuel Mehrbrodt <samuel.mehrbr...@cib.de> CommitDate: Wed Oct 31 12:39:50 2018 +0100 qt5 a11y: Implement QAccessibleEditableTextInterface Change-Id: I21106ac31484c4bf47363e3805315c5fb698e172 Reviewed-on: https://gerrit.libreoffice.org/62682 Reviewed-by: Samuel Mehrbrodt <samuel.mehrbr...@cib.de> Tested-by: Samuel Mehrbrodt <samuel.mehrbr...@cib.de> diff --git a/vcl/inc/qt5/Qt5AccessibleWidget.hxx b/vcl/inc/qt5/Qt5AccessibleWidget.hxx index af4b3c858983..ff4dab306a58 100644 --- a/vcl/inc/qt5/Qt5AccessibleWidget.hxx +++ b/vcl/inc/qt5/Qt5AccessibleWidget.hxx @@ -34,6 +34,7 @@ class VCLPLUG_QT5_PUBLIC Qt5AccessibleWidget : public QObject, public QAccessibleInterface, public QAccessibleActionInterface, public QAccessibleTextInterface, + public QAccessibleEditableTextInterface, public QAccessibleTableInterface, public QAccessibleValueInterface { @@ -96,6 +97,11 @@ public: QString textBeforeOffset(int offset, QAccessible::TextBoundaryType boundaryType, int* startOffset, int* endOffset) const override; + // QAccessibleEditableTextInterface + virtual void deleteText(int startOffset, int endOffset) override; + virtual void insertText(int offset, const QString& text) override; + virtual void replaceText(int startOffset, int endOffset, const QString& text) override; + // QAccessibleValueInterface QVariant currentValue() const override; QVariant maximumValue() const override; diff --git a/vcl/qt5/Qt5AccessibleWidget.cxx b/vcl/qt5/Qt5AccessibleWidget.cxx index 4eb1f7022664..dd50a3ef57ab 100644 --- a/vcl/qt5/Qt5AccessibleWidget.cxx +++ b/vcl/qt5/Qt5AccessibleWidget.cxx @@ -34,6 +34,7 @@ #include <com/sun/star/accessibility/XAccessible.hpp> #include <com/sun/star/accessibility/XAccessibleAction.hpp> #include <com/sun/star/accessibility/XAccessibleComponent.hpp> +#include <com/sun/star/accessibility/XAccessibleEditableText.hpp> #include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp> #include <com/sun/star/accessibility/XAccessibleEventListener.hpp> #include <com/sun/star/accessibility/XAccessibleKeyBinding.hpp> @@ -624,6 +625,8 @@ void* Qt5AccessibleWidget::interface_cast(QAccessible::InterfaceType t) return static_cast<QAccessibleActionInterface*>(this); if (t == QAccessible::TextInterface) return static_cast<QAccessibleTextInterface*>(this); + if (t == QAccessible::EditableTextInterface) + return static_cast<QAccessibleEditableTextInterface*>(this); if (t == QAccessible::ValueInterface) return static_cast<QAccessibleValueInterface*>(this); if (t == QAccessible::TableInterface) @@ -893,6 +896,35 @@ QString Qt5AccessibleWidget::textBeforeOffset(int /* offset */, return QString(); } +// QAccessibleEditableTextInterface + +void Qt5AccessibleWidget::deleteText(int startOffset, int endOffset) +{ + Reference<XAccessibleEditableText> xEditableText(m_xAccessible->getAccessibleContext(), + UNO_QUERY); + if (!xEditableText.is()) + return; + xEditableText->deleteText(startOffset, endOffset); +} + +void Qt5AccessibleWidget::insertText(int offset, const QString& text) +{ + Reference<XAccessibleEditableText> xEditableText(m_xAccessible->getAccessibleContext(), + UNO_QUERY); + if (!xEditableText.is()) + return; + xEditableText->insertText(toOUString(text), offset); +} + +void Qt5AccessibleWidget::replaceText(int startOffset, int endOffset, const QString& text) +{ + Reference<XAccessibleEditableText> xEditableText(m_xAccessible->getAccessibleContext(), + UNO_QUERY); + if (!xEditableText.is()) + return; + xEditableText->replaceText(startOffset, endOffset, toOUString(text)); +} + // QAccessibleValueInterface QVariant Qt5AccessibleWidget::currentValue() const { _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits