diff options
author | Jan Arve Sæther <jan-arve.saether@qt.io> | 2021-05-20 11:16:04 +0200 |
---|---|---|
committer | Jan Arve Sæther <jan-arve.saether@qt.io> | 2021-06-03 19:00:37 +0200 |
commit | 491ea140df524a8ea6bafe08b5375583113e5248 (patch) | |
tree | 2ca3edbe0e38c8cf1e008ee5d0d392ee8e325129 /src/gui/accessible | |
parent | f00c63093b0313f3385d158739af5cdc3105d89c (diff) |
Add QAccessibleHyperlinkInterface
This is needed in order to support hyperlinks in text content.
Task-number: QTBUG-67878
Change-Id: I1e990a5db8f0cf78e5cdcec7359e5aabffe42e3d
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'src/gui/accessible')
-rw-r--r-- | src/gui/accessible/qaccessible.cpp | 39 | ||||
-rw-r--r-- | src/gui/accessible/qaccessible.h | 18 |
2 files changed, 56 insertions, 1 deletions
diff --git a/src/gui/accessible/qaccessible.cpp b/src/gui/accessible/qaccessible.cpp index dc6794ac9c..1ba206e82a 100644 --- a/src/gui/accessible/qaccessible.cpp +++ b/src/gui/accessible/qaccessible.cpp @@ -448,6 +448,7 @@ Q_LOGGING_CATEGORY(lcAccessibilityCore, "qt.accessibility.core"); \omitvalue ImageInterface \omit For objects that represent an image. This interface is generally less important. \endomit \value TableInterface For lists, tables and trees. \value TableCellInterface For cells in a TableInterface object. + \value HyperlinkInterface For hyperlink nodes (usually embedded as children of text nodes) \sa QAccessibleInterface::interface_cast(), QAccessibleTextInterface, QAccessibleValueInterface, QAccessibleActionInterface, QAccessibleTableInterface, QAccessibleTableCellInterface */ @@ -2958,6 +2959,44 @@ QString qAccessibleLocalizedActionDescription(const QString &actionName) return accessibleActionStrings()->localizedDescription(actionName); } +/*! + \internal + \fn QString QAccessibleHyperlinkInterface::anchor() const + + The logical/human readable name of the hyperlink +*/ + +/*! + \internal + \fn QString QAccessibleHyperlinkInterface::anchorTarget() const + + The target url of the hyperlink +*/ + +/*! + \internal + \fn int QAccessibleHyperlinkInterface::startIndex() const + + Returns the start index that will refer to the first character in the text where the hyperlink + begins. The index corresponds to the index that the QAccessibleTextInterface needs in order + to find the start of the hyperlink. + +*/ + +/*! + \internal + \fn int QAccessibleHyperlinkInterface::endIndex() const + + Returns the end index that will refer to the first character in the text where the hyperlink + begins. The index corresponds to the index that the QAccessibleTextInterface needs in order + to find the end of the hyperlink. +*/ + +QAccessibleHyperlinkInterface::~QAccessibleHyperlinkInterface() +{ + +} + #endif // QT_NO_ACCESSIBILITY QT_END_NAMESPACE diff --git a/src/gui/accessible/qaccessible.h b/src/gui/accessible/qaccessible.h index c47ff41207..521cfb855b 100644 --- a/src/gui/accessible/qaccessible.h +++ b/src/gui/accessible/qaccessible.h @@ -384,7 +384,8 @@ public: ActionInterface, ImageInterface, TableInterface, - TableCellInterface + TableCellInterface, + HyperlinkInterface }; enum TextBoundaryType { @@ -451,6 +452,7 @@ class QAccessibleActionInterface; class QAccessibleImageInterface; class QAccessibleTableInterface; class QAccessibleTableCellInterface; +class QAccessibleHyperlinkInterface; class QAccessibleTableModelChangeEvent; class Q_GUI_EXPORT QAccessibleInterface @@ -508,6 +510,9 @@ public: inline QAccessibleTableCellInterface *tableCellInterface() { return reinterpret_cast<QAccessibleTableCellInterface *>(interface_cast(QAccessible::TableCellInterface)); } + inline QAccessibleHyperlinkInterface *hyperlinkInterface() + { return reinterpret_cast<QAccessibleHyperlinkInterface *>(interface_cast(QAccessible::HyperlinkInterface)); } + virtual void virtual_hook(int id, void *data); virtual void *interface_cast(QAccessible::InterfaceType) @@ -659,6 +664,17 @@ public: virtual QPoint imagePosition() const = 0; }; +class Q_GUI_EXPORT QAccessibleHyperlinkInterface +{ +public: + virtual ~QAccessibleHyperlinkInterface(); + + virtual QString anchor() const = 0; + virtual QString anchorTarget() const = 0; + virtual int startIndex() const = 0; + virtual int endIndex() const = 0; + virtual bool isValid() const = 0; +}; class Q_GUI_EXPORT QAccessibleEvent { |