Merge integration refs/builds/qtci/dev/1617094992
This commit is contained in:
commit
7ae037bc82
@ -367,11 +367,6 @@ set(QT_PLATFORM_DEFINITION_DIR "${QT_DEFAULT_PLATFORM_DEFINITION_DIR}"
|
|||||||
set(QT_PLATFORM_DEFINITION_DIR_ABSOLUTE "${QT_DEFAULT_PLATFORM_DEFINITION_DIR_ABSOLUTE}"
|
set(QT_PLATFORM_DEFINITION_DIR_ABSOLUTE "${QT_DEFAULT_PLATFORM_DEFINITION_DIR_ABSOLUTE}"
|
||||||
CACHE INTERNAL "Path to directory that contains qplatformdefs.h")
|
CACHE INTERNAL "Path to directory that contains qplatformdefs.h")
|
||||||
set(QT_NAMESPACE "" CACHE STRING "Qt Namespace")
|
set(QT_NAMESPACE "" CACHE STRING "Qt Namespace")
|
||||||
if(QT_NAMESPACE STREQUAL "")
|
|
||||||
set(QT_HAS_NAMESPACE OFF)
|
|
||||||
else()
|
|
||||||
set(QT_HAS_NAMESPACE ON)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
include(QtGlobalStateHelpers)
|
include(QtGlobalStateHelpers)
|
||||||
|
|
||||||
|
@ -566,9 +566,7 @@ public class QtActivityDelegate
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (QtNative.hasClipboardText())
|
if (!QtNative.hasClipboardText())
|
||||||
editButtons |= EditContextView.PASTE_BUTTON;
|
|
||||||
else
|
|
||||||
editButtons &= ~EditContextView.PASTE_BUTTON;
|
editButtons &= ~EditContextView.PASTE_BUTTON;
|
||||||
|
|
||||||
if ((mode & CursorHandleShowEdit) == CursorHandleShowEdit && editButtons != 0) {
|
if ((mode & CursorHandleShowEdit) == CursorHandleShowEdit && editButtons != 0) {
|
||||||
|
@ -273,8 +273,7 @@ add_dependencies(Core ${QT_CMAKE_EXPORT_NAMESPACE}::rcc)
|
|||||||
add_dependencies(CorePrivate ${QT_CMAKE_EXPORT_NAMESPACE}::moc)
|
add_dependencies(CorePrivate ${QT_CMAKE_EXPORT_NAMESPACE}::moc)
|
||||||
add_dependencies(CorePrivate ${QT_CMAKE_EXPORT_NAMESPACE}::rcc)
|
add_dependencies(CorePrivate ${QT_CMAKE_EXPORT_NAMESPACE}::rcc)
|
||||||
|
|
||||||
if (QT_NAMESPACE STREQUAL "")
|
if (NOT QT_NAMESPACE STREQUAL "")
|
||||||
else()
|
|
||||||
target_compile_definitions(Core PUBLIC "QT_NAMESPACE=${QT_NAMESPACE}")
|
target_compile_definitions(Core PUBLIC "QT_NAMESPACE=${QT_NAMESPACE}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@ -1394,6 +1394,7 @@ namespace Qt {
|
|||||||
ImAnchorRectangle = 0x4000,
|
ImAnchorRectangle = 0x4000,
|
||||||
ImInputItemClipRectangle = 0x8000,
|
ImInputItemClipRectangle = 0x8000,
|
||||||
|
|
||||||
|
ImReadOnly = 0x10000,
|
||||||
ImPlatformData = 0x80000000,
|
ImPlatformData = 0x80000000,
|
||||||
ImQueryInput = ImCursorRectangle | ImCursorPosition | ImSurroundingText |
|
ImQueryInput = ImCursorRectangle | ImCursorPosition | ImSurroundingText |
|
||||||
ImCurrentSelection | ImAnchorRectangle | ImAnchorPosition,
|
ImCurrentSelection | ImAnchorRectangle | ImAnchorPosition,
|
||||||
|
@ -604,34 +604,34 @@ void QAndroidInputContext::updateCursorPosition()
|
|||||||
void QAndroidInputContext::updateSelectionHandles()
|
void QAndroidInputContext::updateSelectionHandles()
|
||||||
{
|
{
|
||||||
static bool noHandles = qEnvironmentVariableIntValue("QT_QPA_NO_TEXT_HANDLES");
|
static bool noHandles = qEnvironmentVariableIntValue("QT_QPA_NO_TEXT_HANDLES");
|
||||||
if (noHandles)
|
if (noHandles || !m_focusObject)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
auto im = qGuiApp->inputMethod();
|
auto im = qGuiApp->inputMethod();
|
||||||
if (!m_focusObject || ((m_handleMode & 0xff) == Hidden)) {
|
|
||||||
// Hide the handles
|
|
||||||
QtAndroidInput::updateHandles(Hidden);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
QInputMethodQueryEvent query(Qt::ImCursorPosition | Qt::ImAnchorPosition | Qt::ImEnabled | Qt::ImCurrentSelection | Qt::ImHints | Qt::ImSurroundingText);
|
|
||||||
|
QInputMethodQueryEvent query(Qt::ImCursorPosition | Qt::ImAnchorPosition | Qt::ImEnabled
|
||||||
|
| Qt::ImCurrentSelection | Qt::ImHints | Qt::ImSurroundingText
|
||||||
|
| Qt::ImReadOnly);
|
||||||
QCoreApplication::sendEvent(m_focusObject, &query);
|
QCoreApplication::sendEvent(m_focusObject, &query);
|
||||||
|
|
||||||
int cpos = query.value(Qt::ImCursorPosition).toInt();
|
int cpos = query.value(Qt::ImCursorPosition).toInt();
|
||||||
int anchor = query.value(Qt::ImAnchorPosition).toInt();
|
int anchor = query.value(Qt::ImAnchorPosition).toInt();
|
||||||
|
const QVariant readOnlyVariant = query.value(Qt::ImReadOnly);
|
||||||
|
bool readOnly = readOnlyVariant.toBool();
|
||||||
|
|
||||||
|
if ( cpos == anchor && (!readOnlyVariant.isValid() || readOnly)) {
|
||||||
|
QtAndroidInput::updateHandles(Hidden);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (cpos == anchor || im->anchorRectangle().isNull()) {
|
if (cpos == anchor || im->anchorRectangle().isNull()) {
|
||||||
if (!query.value(Qt::ImEnabled).toBool()) {
|
|
||||||
QtAndroidInput::updateHandles(Hidden);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
auto curRect = cursorRectangle();
|
auto curRect = cursorRectangle();
|
||||||
QPoint cursorPoint = qGuiApp->focusWindow()->handle()->mapToGlobal(QPoint(curRect.x() + (curRect.width() / 2), curRect.y() + curRect.height()));
|
QPoint cursorPoint = qGuiApp->focusWindow()->handle()->mapToGlobal(QPoint(curRect.x() + (curRect.width() / 2), curRect.y() + curRect.height()));
|
||||||
QPoint editMenuPoint(cursorPoint.x(), cursorPoint.y());
|
QPoint editMenuPoint(cursorPoint.x(), cursorPoint.y());
|
||||||
m_handleMode &= ShowEditPopup;
|
m_handleMode &= ShowEditPopup;
|
||||||
m_handleMode |= ShowCursor;
|
m_handleMode |= ShowCursor;
|
||||||
uint32_t buttons = EditContext::PasteButton;
|
uint32_t buttons = readOnly ? 0 : EditContext::PasteButton;
|
||||||
if (!query.value(Qt::ImSurroundingText).toString().isEmpty())
|
if (!query.value(Qt::ImSurroundingText).toString().isEmpty())
|
||||||
buttons |= EditContext::SelectAllButton;
|
buttons |= EditContext::SelectAllButton;
|
||||||
QtAndroidInput::updateHandles(m_handleMode, editMenuPoint, buttons, cursorPoint);
|
QtAndroidInput::updateHandles(m_handleMode, editMenuPoint, buttons, cursorPoint);
|
||||||
@ -650,7 +650,10 @@ void QAndroidInputContext::updateSelectionHandles()
|
|||||||
QPoint leftPoint(leftRect.bottomLeft().toPoint());
|
QPoint leftPoint(leftRect.bottomLeft().toPoint());
|
||||||
QPoint righPoint(rightRect.bottomRight().toPoint());
|
QPoint righPoint(rightRect.bottomRight().toPoint());
|
||||||
QPoint editPoint(leftRect.united(rightRect).topLeft().toPoint());
|
QPoint editPoint(leftRect.united(rightRect).topLeft().toPoint());
|
||||||
QtAndroidInput::updateHandles(m_handleMode, editPoint, EditContext::AllButtons, leftPoint, righPoint,
|
uint32_t buttons = readOnly ? EditContext::CopyButton | EditContext::SelectAllButton
|
||||||
|
: EditContext::AllButtons;
|
||||||
|
|
||||||
|
QtAndroidInput::updateHandles(m_handleMode, editPoint, buttons, leftPoint, righPoint,
|
||||||
query.value(Qt::ImCurrentSelection).toString().isRightToLeft());
|
query.value(Qt::ImCurrentSelection).toString().isRightToLeft());
|
||||||
m_hideCursorHandleTimer.stop();
|
m_hideCursorHandleTimer.stop();
|
||||||
}
|
}
|
||||||
|
@ -439,7 +439,7 @@ void QAbstractItemModelTesterPrivate::parent()
|
|||||||
// when asked for the parent of an invalid index.
|
// when asked for the parent of an invalid index.
|
||||||
MODELTESTER_VERIFY(!model->parent(QModelIndex()).isValid());
|
MODELTESTER_VERIFY(!model->parent(QModelIndex()).isValid());
|
||||||
|
|
||||||
if (model->rowCount() == 0)
|
if (model->rowCount() == 0 || model->columnCount() == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// Column 0 | Column 1 |
|
// Column 0 | Column 1 |
|
||||||
|
@ -1806,7 +1806,7 @@ QRect QLineEdit::cursorRect() const
|
|||||||
void QLineEdit::inputMethodEvent(QInputMethodEvent *e)
|
void QLineEdit::inputMethodEvent(QInputMethodEvent *e)
|
||||||
{
|
{
|
||||||
Q_D(QLineEdit);
|
Q_D(QLineEdit);
|
||||||
if (d->control->isReadOnly()) {
|
if (!d->shouldEnableInputMethod()) {
|
||||||
e->ignore();
|
e->ignore();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1874,6 +1874,20 @@ QVariant QLineEdit::inputMethodQuery(Qt::InputMethodQuery property, QVariant arg
|
|||||||
return QVariant(d->control->selectionEnd());
|
return QVariant(d->control->selectionEnd());
|
||||||
else
|
else
|
||||||
return QVariant(d->control->selectionStart());
|
return QVariant(d->control->selectionStart());
|
||||||
|
case Qt::ImReadOnly:
|
||||||
|
return isReadOnly();
|
||||||
|
case Qt::ImTextBeforeCursor: {
|
||||||
|
const QPointF pt = argument.toPointF();
|
||||||
|
if (!pt.isNull())
|
||||||
|
return d->textBeforeCursor(d->xToPos(pt.x(), QTextLine::CursorBetweenCharacters));
|
||||||
|
else
|
||||||
|
return d->textBeforeCursor(d->control->cursor()); }
|
||||||
|
case Qt::ImTextAfterCursor: {
|
||||||
|
const QPointF pt = argument.toPointF();
|
||||||
|
if (!pt.isNull())
|
||||||
|
return d->textAfterCursor(d->xToPos(pt.x(), QTextLine::CursorBetweenCharacters));
|
||||||
|
else
|
||||||
|
return d->textAfterCursor(d->control->cursor()); }
|
||||||
default:
|
default:
|
||||||
return QWidget::inputMethodQuery(property);
|
return QWidget::inputMethodQuery(property);
|
||||||
}
|
}
|
||||||
|
@ -86,6 +86,18 @@ int QLineEditPrivate::xToPos(int x, QTextLine::CursorPosition betweenOrOn) const
|
|||||||
return control->xToPos(x, betweenOrOn);
|
return control->xToPos(x, betweenOrOn);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString QLineEditPrivate::textBeforeCursor(int curPos) const
|
||||||
|
{
|
||||||
|
const QString &text = control->text();
|
||||||
|
return text.mid(0, curPos);
|
||||||
|
}
|
||||||
|
|
||||||
|
QString QLineEditPrivate::textAfterCursor(int curPos) const
|
||||||
|
{
|
||||||
|
const QString &text = control->text();
|
||||||
|
return text.mid(curPos);
|
||||||
|
}
|
||||||
|
|
||||||
bool QLineEditPrivate::inSelection(int x) const
|
bool QLineEditPrivate::inSelection(int x) const
|
||||||
{
|
{
|
||||||
x -= adjustedContentsRect().x() - hscroll + horizontalMargin;
|
x -= adjustedContentsRect().x() - hscroll + horizontalMargin;
|
||||||
|
@ -179,13 +179,19 @@ public:
|
|||||||
void setCursorVisible(bool visible);
|
void setCursorVisible(bool visible);
|
||||||
void setText(const QString& text);
|
void setText(const QString& text);
|
||||||
|
|
||||||
|
QString textBeforeCursor(int curPos) const;
|
||||||
|
QString textAfterCursor(int curPos) const;
|
||||||
void updatePasswordEchoEditing(bool);
|
void updatePasswordEchoEditing(bool);
|
||||||
|
|
||||||
void resetInputMethod();
|
void resetInputMethod();
|
||||||
|
|
||||||
inline bool shouldEnableInputMethod() const
|
inline bool shouldEnableInputMethod() const
|
||||||
{
|
{
|
||||||
|
#if defined (Q_OS_ANDROID)
|
||||||
|
return !control->isReadOnly() || control->isSelectableByMouse();
|
||||||
|
#else
|
||||||
return !control->isReadOnly();
|
return !control->isReadOnly();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
inline bool shouldShowPlaceholderText() const
|
inline bool shouldShowPlaceholderText() const
|
||||||
{
|
{
|
||||||
|
@ -71,9 +71,14 @@
|
|||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
|
|
||||||
static inline bool shouldEnableInputMethod(QPlainTextEdit *plaintextedit)
|
static inline bool shouldEnableInputMethod(QPlainTextEdit *control)
|
||||||
{
|
{
|
||||||
return !plaintextedit->isReadOnly();
|
#if defined(Q_OS_ANDROID)
|
||||||
|
Q_UNUSED(control);
|
||||||
|
return !control->isReadOnly() || (control->textInteractionFlags() & Qt::TextSelectableByMouse);
|
||||||
|
#else
|
||||||
|
return !control->isReadOnly();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
class QPlainTextDocumentLayoutPrivate : public QAbstractTextDocumentLayoutPrivate
|
class QPlainTextDocumentLayoutPrivate : public QAbstractTextDocumentLayoutPrivate
|
||||||
@ -2238,6 +2243,8 @@ QVariant QPlainTextEdit::inputMethodQuery(Qt::InputMethodQuery query, QVariant a
|
|||||||
case Qt::ImHints:
|
case Qt::ImHints:
|
||||||
case Qt::ImInputItemClipRectangle:
|
case Qt::ImInputItemClipRectangle:
|
||||||
return QWidget::inputMethodQuery(query);
|
return QWidget::inputMethodQuery(query);
|
||||||
|
case Qt::ImReadOnly:
|
||||||
|
return isReadOnly();
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -57,6 +57,15 @@
|
|||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
|
|
||||||
|
static inline bool shouldEnableInputMethod(QTextBrowser *texbrowser)
|
||||||
|
{
|
||||||
|
#if defined (Q_OS_ANDROID)
|
||||||
|
return !texbrowser->isReadOnly() || (texbrowser->textInteractionFlags() & Qt::TextSelectableByMouse);
|
||||||
|
#else
|
||||||
|
return !texbrowser->isReadOnly();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
Q_LOGGING_CATEGORY(lcBrowser, "qt.text.browser")
|
Q_LOGGING_CATEGORY(lcBrowser, "qt.text.browser")
|
||||||
|
|
||||||
class QTextBrowserPrivate : public QTextEditPrivate
|
class QTextBrowserPrivate : public QTextEditPrivate
|
||||||
@ -692,7 +701,7 @@ void QTextBrowserPrivate::init()
|
|||||||
#ifndef QT_NO_CURSOR
|
#ifndef QT_NO_CURSOR
|
||||||
viewport->setCursor(oldCursor);
|
viewport->setCursor(oldCursor);
|
||||||
#endif
|
#endif
|
||||||
q->setAttribute(Qt::WA_InputMethodEnabled, !q->isReadOnly());
|
q->setAttribute(Qt::WA_InputMethodEnabled, shouldEnableInputMethod(q));
|
||||||
q->setUndoRedoEnabled(false);
|
q->setUndoRedoEnabled(false);
|
||||||
viewport->setMouseTracking(true);
|
viewport->setMouseTracking(true);
|
||||||
QObject::connect(q->document(), SIGNAL(contentsChanged()), q, SLOT(_q_documentModified()));
|
QObject::connect(q->document(), SIGNAL(contentsChanged()), q, SLOT(_q_documentModified()));
|
||||||
|
@ -79,7 +79,11 @@ QT_BEGIN_NAMESPACE
|
|||||||
|
|
||||||
static inline bool shouldEnableInputMethod(QTextEdit *textedit)
|
static inline bool shouldEnableInputMethod(QTextEdit *textedit)
|
||||||
{
|
{
|
||||||
|
#if defined (Q_OS_ANDROID)
|
||||||
|
return !textedit->isReadOnly() || (textedit->textInteractionFlags() & Qt::TextSelectableByMouse);
|
||||||
|
#else
|
||||||
return !textedit->isReadOnly();
|
return !textedit->isReadOnly();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
class QTextEditControl : public QWidgetTextControl
|
class QTextEditControl : public QWidgetTextControl
|
||||||
@ -1832,6 +1836,8 @@ QVariant QTextEdit::inputMethodQuery(Qt::InputMethodQuery query, QVariant argume
|
|||||||
case Qt::ImHints:
|
case Qt::ImHints:
|
||||||
case Qt::ImInputItemClipRectangle:
|
case Qt::ImInputItemClipRectangle:
|
||||||
return QWidget::inputMethodQuery(query);
|
return QWidget::inputMethodQuery(query);
|
||||||
|
case Qt::ImReadOnly:
|
||||||
|
return isReadOnly();
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -164,6 +164,9 @@ public:
|
|||||||
|
|
||||||
int selectionStart() const { return hasSelectedText() ? m_selstart : -1; }
|
int selectionStart() const { return hasSelectedText() ? m_selstart : -1; }
|
||||||
int selectionEnd() const { return hasSelectedText() ? m_selend : -1; }
|
int selectionEnd() const { return hasSelectedText() ? m_selend : -1; }
|
||||||
|
#if defined (Q_OS_ANDROID)
|
||||||
|
bool isSelectableByMouse() const { return true; }
|
||||||
|
#endif
|
||||||
bool inSelection(int x) const
|
bool inSelection(int x) const
|
||||||
{
|
{
|
||||||
if (m_selstart >= m_selend)
|
if (m_selstart >= m_selend)
|
||||||
|
@ -2039,7 +2039,7 @@ bool QWidgetTextControlPrivate::dropEvent(const QMimeData *mimeData, const QPoin
|
|||||||
void QWidgetTextControlPrivate::inputMethodEvent(QInputMethodEvent *e)
|
void QWidgetTextControlPrivate::inputMethodEvent(QInputMethodEvent *e)
|
||||||
{
|
{
|
||||||
Q_Q(QWidgetTextControl);
|
Q_Q(QWidgetTextControl);
|
||||||
if (!(interactionFlags & Qt::TextEditable) || cursor.isNull()) {
|
if (!(interactionFlags & (Qt::TextEditable | Qt::TextSelectableByMouse)) || cursor.isNull()) {
|
||||||
e->ignore();
|
e->ignore();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -41,6 +41,7 @@ private slots:
|
|||||||
void stringListModel();
|
void stringListModel();
|
||||||
void treeWidgetModel();
|
void treeWidgetModel();
|
||||||
void standardItemModel();
|
void standardItemModel();
|
||||||
|
void standardItemModelZeroColumns();
|
||||||
void testInsertThroughProxy();
|
void testInsertThroughProxy();
|
||||||
void moveSourceItems();
|
void moveSourceItems();
|
||||||
void testResetThroughProxy();
|
void testResetThroughProxy();
|
||||||
@ -105,6 +106,15 @@ void tst_QAbstractItemModelTester::standardItemModel()
|
|||||||
model.insertColumns(0, 5, model.index(1, 3));
|
model.insertColumns(0, 5, model.index(1, 3));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void tst_QAbstractItemModelTester::standardItemModelZeroColumns() // QTBUG-92220
|
||||||
|
{
|
||||||
|
QStandardItemModel model;
|
||||||
|
|
||||||
|
QAbstractItemModelTester t1(&model);
|
||||||
|
model.insertRows(0, 5);
|
||||||
|
model.removeRows(0, 5);
|
||||||
|
}
|
||||||
|
|
||||||
void tst_QAbstractItemModelTester::testInsertThroughProxy()
|
void tst_QAbstractItemModelTester::testInsertThroughProxy()
|
||||||
{
|
{
|
||||||
DynamicTreeModel *model = new DynamicTreeModel(this);
|
DynamicTreeModel *model = new DynamicTreeModel(this);
|
||||||
|
@ -466,11 +466,29 @@ void tst_QTextBrowser::textInteractionFlags_vs_readOnly()
|
|||||||
void tst_QTextBrowser::inputMethodAttribute_vs_readOnly()
|
void tst_QTextBrowser::inputMethodAttribute_vs_readOnly()
|
||||||
{
|
{
|
||||||
QVERIFY(browser->isReadOnly());
|
QVERIFY(browser->isReadOnly());
|
||||||
|
#if defined(Q_OS_ANDROID)
|
||||||
|
QInputMethodQueryEvent query(Qt::ImReadOnly);
|
||||||
|
QCoreApplication::sendEvent(browser, &query);
|
||||||
|
QVERIFY(query.value(Qt::ImReadOnly).toBool());
|
||||||
|
#else
|
||||||
QVERIFY(!browser->testAttribute(Qt::WA_InputMethodEnabled));
|
QVERIFY(!browser->testAttribute(Qt::WA_InputMethodEnabled));
|
||||||
|
#endif
|
||||||
|
|
||||||
browser->setReadOnly(false);
|
browser->setReadOnly(false);
|
||||||
|
#if defined(Q_OS_ANDROID)
|
||||||
|
QCoreApplication::sendEvent(browser, &query);
|
||||||
|
QVERIFY(!query.value(Qt::ImReadOnly).toBool());
|
||||||
|
#else
|
||||||
QVERIFY(browser->testAttribute(Qt::WA_InputMethodEnabled));
|
QVERIFY(browser->testAttribute(Qt::WA_InputMethodEnabled));
|
||||||
|
#endif
|
||||||
|
|
||||||
browser->setReadOnly(true);
|
browser->setReadOnly(true);
|
||||||
|
#if defined(Q_OS_ANDROID)
|
||||||
|
QCoreApplication::sendEvent(browser, &query);
|
||||||
|
QVERIFY(query.value(Qt::ImReadOnly).toBool());
|
||||||
|
#else
|
||||||
QVERIFY(!browser->testAttribute(Qt::WA_InputMethodEnabled));
|
QVERIFY(!browser->testAttribute(Qt::WA_InputMethodEnabled));
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void tst_QTextBrowser::anchorsWithSelfBuiltHtml()
|
void tst_QTextBrowser::anchorsWithSelfBuiltHtml()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user