diff options
-rw-r--r-- | src/widgets/widgets/qplaintextedit.cpp | 32 | ||||
-rw-r--r-- | src/widgets/widgets/qtextedit.cpp | 30 |
2 files changed, 29 insertions, 33 deletions
diff --git a/src/widgets/widgets/qplaintextedit.cpp b/src/widgets/widgets/qplaintextedit.cpp index bb933362da..8a64e3a397 100644 --- a/src/widgets/widgets/qplaintextedit.cpp +++ b/src/widgets/widgets/qplaintextedit.cpp @@ -2188,27 +2188,25 @@ QVariant QPlainTextEdit::inputMethodQuery(Qt::InputMethodQuery property) const /*!\internal */ -QVariant QPlainTextEdit::inputMethodQuery(Qt::InputMethodQuery property, QVariant argument) const +QVariant QPlainTextEdit::inputMethodQuery(Qt::InputMethodQuery query, QVariant argument) const { Q_D(const QPlainTextEdit); - QVariant v; - switch (property) { - case Qt::ImHints: - v = QWidget::inputMethodQuery(property); - break; + if (query == Qt::ImHints) + return QWidget::inputMethodQuery(query); + const QVariant v = d->control->inputMethodQuery(query, argument); + const QPointF offset = contentOffset(); + switch (v.type()) { + case QVariant::RectF: + return v.toRectF().translated(offset); + case QVariant::PointF: + return v.toPointF() + offset; + case QVariant::Rect: + return v.toRect().translated(offset.toPoint()); + case QVariant::Point: + return v.toPoint() + offset.toPoint(); default: - v = d->control->inputMethodQuery(property, argument); - const QPointF offset = contentOffset(); - if (v.type() == QVariant::RectF) - v = v.toRectF().translated(offset); - else if (v.type() == QVariant::PointF) - v = v.toPointF() + offset; - else if (v.type() == QVariant::Rect) - v = v.toRect().translated(offset.toPoint()); - else if (v.type() == QVariant::Point) - v = v.toPoint() + offset.toPoint(); + break; } - return v; } diff --git a/src/widgets/widgets/qtextedit.cpp b/src/widgets/widgets/qtextedit.cpp index 95f0bc7c59..c4503538c6 100644 --- a/src/widgets/widgets/qtextedit.cpp +++ b/src/widgets/widgets/qtextedit.cpp @@ -1719,24 +1719,22 @@ QVariant QTextEdit::inputMethodQuery(Qt::InputMethodQuery property) const QVariant QTextEdit::inputMethodQuery(Qt::InputMethodQuery query, QVariant argument) const { Q_D(const QTextEdit); - QVariant v; - switch (query) { - case Qt::ImHints: - v = QWidget::inputMethodQuery(query); - break; + if (query == Qt::ImHints) + return QWidget::inputMethodQuery(query); + const QVariant v = d->control->inputMethodQuery(query, argument); + const QPointF offset(-d->horizontalOffset(), -d->verticalOffset()); + switch (v.type()) { + case QVariant::RectF: + return v.toRectF().translated(offset); + case QVariant::PointF: + return v.toPointF() + offset; + case QVariant::Rect: + return v.toRect().translated(offset.toPoint()); + case QVariant::Point: + return v.toPoint() + offset.toPoint(); default: - v = d->control->inputMethodQuery(query, argument); - const QPointF offset(-d->horizontalOffset(), -d->verticalOffset()); - if (v.type() == QVariant::RectF) - v = v.toRectF().translated(offset); - else if (v.type() == QVariant::PointF) - v = v.toPointF() + offset; - else if (v.type() == QVariant::Rect) - v = v.toRect().translated(offset.toPoint()); - else if (v.type() == QVariant::Point) - v = v.toPoint() + offset.toPoint(); + break; } - return v; } |