From 36202cf8fca822492615d418bd563a40bee4af08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Mill=C3=A1n=20Soto?= Date: Fri, 20 Jan 2012 12:35:15 +0100 Subject: Make copy and cut methods work in QAccessibleTextEdit Correct the implementation of cutText and copyText in QAccessibleTextEdit so they use cut() and copy() methods of QTextEdit Change-Id: I86a531ed7059b1a928cb8515c2743d4d8b596b36 Reviewed-by: Frederik Gladhorn --- src/plugins/accessible/widgets/qaccessiblewidgets.cpp | 13 ++++++++++--- tests/auto/qaccessibility/tst_qaccessibility.cpp | 6 ++++++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/plugins/accessible/widgets/qaccessiblewidgets.cpp b/src/plugins/accessible/widgets/qaccessiblewidgets.cpp index 91bdc02..61cbacf 100644 --- a/src/plugins/accessible/widgets/qaccessiblewidgets.cpp +++ b/src/plugins/accessible/widgets/qaccessiblewidgets.cpp @@ -1645,12 +1645,17 @@ static QTextCursor cursorForRange(QTextEdit *textEdit, int startOffset, int endO void QAccessibleTextEdit::copyText(int startOffset, int endOffset) { +#ifndef QT_NO_CLIPBOARD + QTextCursor previousCursor = textEdit()->textCursor(); QTextCursor cursor = cursorForRange(textEdit(), startOffset, endOffset); if (!cursor.hasSelection()) return; -// QApplication::clipboard()->setMimeData(new QTextEditMimeData(cursor.selection())); + textEdit()->setTextCursor(cursor); + textEdit()->copy(); + textEdit()->setTextCursor(previousCursor); +#endif } void QAccessibleTextEdit::deleteText(int startOffset, int endOffset) @@ -1670,13 +1675,15 @@ void QAccessibleTextEdit::insertText(int offset, const QString &text) void QAccessibleTextEdit::cutText(int startOffset, int endOffset) { +#ifndef QT_NO_CLIPBOARD QTextCursor cursor = cursorForRange(textEdit(), startOffset, endOffset); if (!cursor.hasSelection()) return; -// QApplication::clipboard()->setMimeData(new QTextEditMimeData(cursor.selection())); - cursor.removeSelectedText(); + textEdit()->setTextCursor(cursor); + textEdit()->cut(); +#endif } void QAccessibleTextEdit::pasteText(int offset) diff --git a/tests/auto/qaccessibility/tst_qaccessibility.cpp b/tests/auto/qaccessibility/tst_qaccessibility.cpp index 1b35349..d09e796 100644 --- a/tests/auto/qaccessibility/tst_qaccessibility.cpp +++ b/tests/auto/qaccessibility/tst_qaccessibility.cpp @@ -2740,6 +2740,12 @@ void tst_QAccessibility::textEditTest() QCOMPARE(iface->textInterface()->characterRect(0, QAccessible2::RelativeToParent).size(), QSize(fm.width("h"), fm.height())); QCOMPARE(iface->textInterface()->characterRect(5, QAccessible2::RelativeToParent).size(), QSize(fm.width(" "), fm.height())); QCOMPARE(iface->textInterface()->characterRect(6, QAccessible2::RelativeToParent).size(), QSize(fm.width("w"), fm.height())); + + iface->editableTextInterface()->copyText(6, 11); + QCOMPARE(QApplication::clipboard()->text(), QLatin1String("world")); + iface->editableTextInterface()->cutText(12, 16); + QCOMPARE(QApplication::clipboard()->text(), QLatin1String("how ")); + QCOMPARE(iface->textInterface()->text(12, 15), QLatin1String("are")); } QTestAccessibility::clearEvents(); } -- cgit v0.12