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 Cherry picked from Qt 4 - 36202cf8fca822492615d418bd563a40bee4af08 Change-Id: I86a531ed7059b1a928cb8515c2743d4d8b596b36 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>bb10
parent
6b807a283c
commit
4c9266fd16
|
|
@ -87,7 +87,7 @@ QList<QWidget*> childWidgets(const QWidget *widget, bool includeTopLevel)
|
|||
if (!w)
|
||||
continue;
|
||||
QString objectName = w->objectName();
|
||||
if ((includeTopLevel || !w->isWindow())
|
||||
if ((includeTopLevel || !w->isWindow())
|
||||
&& !qobject_cast<QFocusFrame*>(w)
|
||||
&& !qobject_cast<QMenu*>(w)
|
||||
&& objectName != QLatin1String("qt_rubberband")
|
||||
|
|
@ -483,12 +483,17 @@ static QTextCursor cursorForRange(QTextEdit *textEdit, int startOffset, int endO
|
|||
|
||||
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;
|
||||
|
||||
// QApplication::clipboard()->setMimeData(new QTextEditMimeData(cursor.selection()));
|
||||
textEdit()->setTextCursor(cursor);
|
||||
textEdit()->copy();
|
||||
textEdit()->setTextCursor(previousCursor);
|
||||
#endif
|
||||
}
|
||||
|
||||
void QAccessibleTextEdit::deleteText(int startOffset, int endOffset)
|
||||
|
|
@ -508,13 +513,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)
|
||||
|
|
|
|||
|
|
@ -1516,6 +1516,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();
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue