diff options
author | Jan-Arve Saether <jan-arve.saether@nokia.com> | 2012-03-07 11:59:30 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-07-11 02:47:34 +0200 |
commit | 159b28d97226c9b40e3e47188396a17cee70852e (patch) | |
tree | 1abec302b1433a111a6df8127ce5a15ce88252ce /src/plugins/accessible/widgets/qaccessiblewidgets.cpp | |
parent | 825cd7b9e5ac16546fe224d48e5ea319fc171248 (diff) |
Remove clipboard operations from QAccessibleEditableTextInterface
Also, remove its subclass QAccessibleSimpleEditableTextInterface
Instead of having the subclass that implements this conveniently,
we move this behaviour over to the bridge. The bridge should
check if role() == EditableText is set, and then it should try to
support the IAccessibleEditableText interface (i.e.
it should accept the calls to replaceText(), deleteText() and
insertText()) and change the text with the following operations:
1. Query the text using QAccessibleTextInterface::text() or by
using QAccessibleInterface::text(QAccessible::Value) as a fallback
2. Do the requested delete/insert/replace manipulation
3. Update the text with setText(QAccessible::Value, newText);
Change-Id: Iee5e41faf14351951e2bfca8c9eac970a113e878
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
Diffstat (limited to 'src/plugins/accessible/widgets/qaccessiblewidgets.cpp')
-rw-r--r-- | src/plugins/accessible/widgets/qaccessiblewidgets.cpp | 62 |
1 files changed, 10 insertions, 52 deletions
diff --git a/src/plugins/accessible/widgets/qaccessiblewidgets.cpp b/src/plugins/accessible/widgets/qaccessiblewidgets.cpp index a002b8bf26..f6ec940b58 100644 --- a/src/plugins/accessible/widgets/qaccessiblewidgets.cpp +++ b/src/plugins/accessible/widgets/qaccessiblewidgets.cpp @@ -142,12 +142,20 @@ void QAccessibleTextEdit::setText(QAccessible::Text t, const QString &text) textEdit()->setText(text); } +QAccessible::State QAccessibleTextEdit::state() const +{ + QAccessible::State st = QAccessibleWidget::state(); + if (textEdit()->isReadOnly()) + st.readOnly = true; + else + st.editable = true; + return st; +} + void *QAccessibleTextEdit::interface_cast(QAccessible::InterfaceType t) { if (t == QAccessible::TextInterface) return static_cast<QAccessibleTextInterface*>(this); - else if (t == QAccessible::EditableTextInterface) - return static_cast<QAccessibleEditableTextInterface*>(this); return QAccessibleWidget::interface_cast(t); } @@ -467,24 +475,9 @@ static QTextCursor cursorForRange(QTextEdit *textEdit, int startOffset, int endO QTextCursor cursor(textEdit->document()); cursor.setPosition(startOffset, QTextCursor::MoveAnchor); cursor.setPosition(endOffset, QTextCursor::KeepAnchor); - return cursor; } -void QAccessibleTextEdit::copyText(int startOffset, int endOffset) const -{ -#ifndef QT_NO_CLIPBOARD - QTextCursor previousCursor = textEdit()->textCursor(); - QTextCursor cursor = cursorForRange(textEdit(), startOffset, endOffset); - - if (!cursor.hasSelection()) - return; - - textEdit()->setTextCursor(cursor); - textEdit()->copy(); - textEdit()->setTextCursor(previousCursor); -#endif -} void QAccessibleTextEdit::deleteText(int startOffset, int endOffset) { @@ -501,34 +494,6 @@ void QAccessibleTextEdit::insertText(int offset, const QString &text) cursor.insertText(text); } -void QAccessibleTextEdit::cutText(int startOffset, int endOffset) -{ -#ifndef QT_NO_CLIPBOARD - QTextCursor cursor = cursorForRange(textEdit(), startOffset, endOffset); - - if (!cursor.hasSelection()) - return; - - textEdit()->setTextCursor(cursor); - textEdit()->cut(); -#endif -} - -void QAccessibleTextEdit::pasteText(int offset) -{ - QTextEdit *edit = textEdit(); - - QTextCursor oldCursor = edit->textCursor(); - QTextCursor newCursor = oldCursor; - newCursor.setPosition(offset); - - edit->setTextCursor(newCursor); -#ifndef QT_NO_CLIPBOARD - edit->paste(); -#endif - edit->setTextCursor(oldCursor); -} - void QAccessibleTextEdit::replaceText(int startOffset, int endOffset, const QString &text) { QTextCursor cursor = cursorForRange(textEdit(), startOffset, endOffset); @@ -537,13 +502,6 @@ void QAccessibleTextEdit::replaceText(int startOffset, int endOffset, const QStr cursor.insertText(text); } -void QAccessibleTextEdit::setAttributes(int startOffset, int endOffset, const QString &attributes) -{ - // TODO - Q_UNUSED(startOffset); - Q_UNUSED(endOffset); - Q_UNUSED(attributes); -} #endif // QT_NO_TEXTEDIT #ifndef QT_NO_STACKEDWIDGET |