diff options
-rw-r--r-- | src/quick/items/qquicktextcontrol.cpp | 50 | ||||
-rw-r--r-- | src/quick/items/qquicktextcontrol_p.h | 5 | ||||
-rw-r--r-- | src/quick/items/qquicktextedit.cpp | 2 |
3 files changed, 20 insertions, 37 deletions
diff --git a/src/quick/items/qquicktextcontrol.cpp b/src/quick/items/qquicktextcontrol.cpp index 1a0f79adc4..f50e70a74e 100644 --- a/src/quick/items/qquicktextcontrol.cpp +++ b/src/quick/items/qquicktextcontrol.cpp @@ -240,7 +240,6 @@ bool QQuickTextControlPrivate::cursorMoveKeyEvent(QKeyEvent *e) cursor.setVisualNavigation(true); const bool moved = cursor.movePosition(op, mode); cursor.setVisualNavigation(visualNavigation); - q->ensureCursorVisible(); bool isNavigationEvent = e->key() == Qt::Key_Up @@ -251,7 +250,7 @@ bool QQuickTextControlPrivate::cursorMoveKeyEvent(QKeyEvent *e) if (moved) { if (cursor.position() != oldCursorPos) emit q->cursorPositionChanged(); - emit q->microFocusChanged(); + emit q->cursorRectangleChanged(); } else if (isNavigationEvent && oldSelection.anchor() == cursor.anchor()) { return false; } @@ -273,7 +272,7 @@ void QQuickTextControlPrivate::updateCurrentCharFormat() lastCharFormat = fmt; emit q->currentCharFormatChanged(fmt); - emit q->microFocusChanged(); + emit q->cursorRectangleChanged(); } void QQuickTextControlPrivate::init(Qt::TextFormat format, const QString &text, QTextDocument *document) @@ -369,7 +368,7 @@ void QQuickTextControlPrivate::setContent(Qt::TextFormat format, const QString & if (!document) doc->setModified(false); - q->ensureCursorVisible(); + emit q->cursorRectangleChanged(); emit q->cursorPositionChanged(); } @@ -440,7 +439,7 @@ void QQuickTextControlPrivate::selectionChanged(bool forceEmitSelectionChanged / emit q->copyAvailable(current); if (!forceEmitSelectionChanged) emit q->selectionChanged(); - emit q->microFocusChanged(); + emit q->cursorRectangleChanged(); } void QQuickTextControlPrivate::_q_updateCurrentCharFormatAndSelection() @@ -466,7 +465,7 @@ void QQuickTextControlPrivate::_q_emitCursorPosChanged(const QTextCursor &someCu Q_Q(QQuickTextControl); if (someCursor.isCopyOf(cursor)) { emit q->cursorPositionChanged(); - emit q->microFocusChanged(); + emit q->cursorRectangleChanged(); } } @@ -613,8 +612,7 @@ void QQuickTextControl::undo() d->doc->undo(&d->cursor); if (d->cursor.position() != oldCursorPos) emit cursorPositionChanged(); - emit microFocusChanged(); - ensureCursorVisible(); + emit cursorRectangleChanged(); } void QQuickTextControl::redo() @@ -625,8 +623,7 @@ void QQuickTextControl::redo() d->doc->redo(&d->cursor); if (d->cursor.position() != oldCursorPos) emit cursorPositionChanged(); - emit microFocusChanged(); - ensureCursorVisible(); + emit cursorRectangleChanged(); } QQuickTextControl::QQuickTextControl(QTextDocument *doc, QObject *parent) @@ -668,7 +665,7 @@ void QQuickTextControl::setTextCursor(const QTextCursor &cursor) d->cursor = cursor; d->cursorOn = d->hasFocus && (d->interactionFlags & Qt::TextEditable); d->_q_updateCurrentCharFormatAndSelection(); - ensureCursorVisible(); + emit cursorRectangleChanged(); d->repaintOldAndNewSelection(oldSelection); if (posChanged) emit cursorPositionChanged(); @@ -999,7 +996,7 @@ process: e->accept(); cursorOn = true; - q->ensureCursorVisible(); + emit q->cursorRectangleChanged(); updateCurrentCharFormat(); } @@ -1238,14 +1235,14 @@ void QQuickTextControlPrivate::mousePressEvent(QMouseEvent *e, const QPointF &po } if (interactionFlags & Qt::TextEditable) { - q->ensureCursorVisible(); + emit q->cursorRectangleChanged(); if (cursor.position() != oldCursorPos) emit q->cursorPositionChanged(); _q_updateCurrentCharFormatAndSelection(); } else { if (cursor.position() != oldCursorPos) { emit q->cursorPositionChanged(); - emit q->microFocusChanged(); + emit q->cursorRectangleChanged(); } selectionChanged(); } @@ -1317,11 +1314,8 @@ void QQuickTextControlPrivate::mouseMoveEvent(QMouseEvent *e, const QPointF &mou _q_updateCurrentCharFormatAndSelection(); if (qGuiApp) qGuiApp->inputPanel()->update(Qt::ImQueryInput); - } else { - if (cursor.position() != oldCursorPos) { - emit q->cursorPositionChanged(); - emit q->microFocusChanged(); - } + } else if (cursor.position() != oldCursorPos) { + emit q->cursorPositionChanged(); } selectionChanged(true); repaintOldAndNewSelection(oldSelection); @@ -1359,7 +1353,7 @@ void QQuickTextControlPrivate::mouseReleaseEvent(QMouseEvent *e, const QPointF & if (cursor.position() != oldCursorPos) { emit q->cursorPositionChanged(); - emit q->microFocusChanged(); + emit q->cursorRectangleChanged(); } if (interactionFlags & Qt::LinksAccessibleByMouse) { @@ -1478,7 +1472,7 @@ void QQuickTextControlPrivate::inputMethodEvent(QInputMethodEvent *e) int blockStart = a.start + cursor.block().position(); cursor.setPosition(blockStart, QTextCursor::MoveAnchor); cursor.setPosition(blockStart + a.length, QTextCursor::KeepAnchor); - q->ensureCursorVisible(); + emit q->cursorRectangleChanged(); repaintOldAndNewSelection(oldCursor); forceSelectionChanged = true; } @@ -1517,7 +1511,7 @@ void QQuickTextControlPrivate::inputMethodEvent(QInputMethodEvent *e) if (cursor_d) cursor_d->setX(); if (oldPreeditCursor != preeditCursor) - emit q->microFocusChanged(); + emit q->cursorRectangleChanged(); selectionChanged(forceSelectionChanged); } @@ -1692,7 +1686,7 @@ void QQuickTextControl::moveCursor(QTextCursor::MoveOperation op, QTextCursor::M const QTextCursor oldSelection = d->cursor; const bool moved = d->cursor.movePosition(op, mode); d->_q_updateCurrentCharFormatAndSelection(); - ensureCursorVisible(); + emit cursorRectangleChanged(); d->repaintOldAndNewSelection(oldSelection); if (moved) emit cursorPositionChanged(); @@ -1785,7 +1779,7 @@ void QQuickTextControl::insertFromMimeData(const QMimeData *source) if (hasData) d->cursor.insertFragment(fragment); - ensureCursorVisible(); + emit cursorRectangleChanged(); } void QQuickTextControlPrivate::activateLinkUnderCursor(QString href) @@ -1916,14 +1910,6 @@ QString QQuickTextControl::toHtml() const } #endif -void QQuickTextControl::ensureCursorVisible() -{ - Q_D(QQuickTextControl); - QRectF crect = d->rectForPosition(d->cursor.position()).adjusted(-5, 0, 5, 0); - emit visibilityRequest(crect); - emit microFocusChanged(); -} - QPalette QQuickTextControl::palette() const { Q_D(const QQuickTextControl); diff --git a/src/quick/items/qquicktextcontrol_p.h b/src/quick/items/qquicktextcontrol_p.h index 7768bd1230..7478a71b3f 100644 --- a/src/quick/items/qquicktextcontrol_p.h +++ b/src/quick/items/qquicktextcontrol_p.h @@ -108,8 +108,6 @@ public: QString toHtml() const; #endif - virtual void ensureCursorVisible(); - QTextCursor cursorForPosition(const QPointF &pos) const; QRectF cursorRect(const QTextCursor &cursor) const; QRectF cursorRect() const; @@ -177,8 +175,7 @@ Q_SIGNALS: void updateRequest(const QRectF &rect = QRectF()); void documentSizeChanged(const QSizeF &); void blockCountChanged(int newBlockCount); - void visibilityRequest(const QRectF &rect); - void microFocusChanged(); + void cursorRectangleChanged(); void linkActivated(const QString &link); void linkHovered(const QString &); void modificationChanged(bool m); diff --git a/src/quick/items/qquicktextedit.cpp b/src/quick/items/qquicktextedit.cpp index 4b3dc6648b..9e76c21fb8 100644 --- a/src/quick/items/qquicktextedit.cpp +++ b/src/quick/items/qquicktextedit.cpp @@ -1650,7 +1650,7 @@ void QQuickTextEditPrivate::init() QObject::connect(control, SIGNAL(selectionChanged()), q, SLOT(updateSelectionMarkers())); QObject::connect(control, SIGNAL(cursorPositionChanged()), q, SLOT(updateSelectionMarkers())); QObject::connect(control, SIGNAL(cursorPositionChanged()), q, SIGNAL(cursorPositionChanged())); - QObject::connect(control, SIGNAL(microFocusChanged()), q, SLOT(moveCursorDelegate())); + QObject::connect(control, SIGNAL(cursorRectangleChanged()), q, SLOT(moveCursorDelegate())); QObject::connect(control, SIGNAL(linkActivated(QString)), q, SIGNAL(linkActivated(QString))); #ifndef QT_NO_CLIPBOARD QObject::connect(q, SIGNAL(readOnlyChanged(bool)), q, SLOT(q_canPasteChanged())); |