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

Reply via email to