diff options
author | Gatis Paeglis <gatis.paeglis@nokia.com> | 2012-05-22 20:08:00 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-05-26 10:14:12 +0200 |
commit | 9b7b90cf550abd107b03ce3d6d8e4ff87401bcd8 (patch) | |
tree | 3d8970598ab5b029025d0f952de387d727341fef /src/widgets/graphicsview/qgraphicsproxywidget.cpp | |
parent | ccd56e984497771de7e13bdc286a156296cff58f (diff) |
Fix Qt 5 to-do's in QGraphicsProxyWidget
Task-number: QTBUG-25091
Change-Id: Ic4160f90f69167d40ee1e569562d25eb009615aa
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Diffstat (limited to 'src/widgets/graphicsview/qgraphicsproxywidget.cpp')
-rw-r--r-- | src/widgets/graphicsview/qgraphicsproxywidget.cpp | 90 |
1 files changed, 47 insertions, 43 deletions
diff --git a/src/widgets/graphicsview/qgraphicsproxywidget.cpp b/src/widgets/graphicsview/qgraphicsproxywidget.cpp index b09ddbab41..f4d43e4f28 100644 --- a/src/widgets/graphicsview/qgraphicsproxywidget.cpp +++ b/src/widgets/graphicsview/qgraphicsproxywidget.cpp @@ -339,42 +339,6 @@ void QGraphicsProxyWidgetPrivate::removeSubFocusHelper(QWidget *widget, Qt::Focu /*! \internal - - Reimplemented from QGraphicsItemPrivate. ### Qt 5: Move impl to - reimplementation QGraphicsProxyWidget::inputMethodQuery(). -*/ -QVariant QGraphicsProxyWidgetPrivate::inputMethodQueryHelper(Qt::InputMethodQuery query) const -{ - Q_Q(const QGraphicsProxyWidget); - if (!widget || !q->hasFocus()) - return QVariant(); - - QWidget *focusWidget = widget->focusWidget(); - if (!focusWidget) - focusWidget = widget; - QVariant v = focusWidget->inputMethodQuery(query); - QPointF focusWidgetPos = q->subWidgetRect(focusWidget).topLeft(); - switch (v.type()) { - case QVariant::RectF: - v = v.toRectF().translated(focusWidgetPos); - break; - case QVariant::PointF: - v = v.toPointF() + focusWidgetPos; - break; - case QVariant::Rect: - v = v.toRect().translated(focusWidgetPos.toPoint()); - break; - case QVariant::Point: - v = v.toPoint() + focusWidgetPos.toPoint(); - break; - default: - break; - } - return v; -} - -/*! - \internal Some of the logic is shared with QApplicationPrivate::focusNextPrevChild_helper */ QWidget *QGraphicsProxyWidgetPrivate::findFocusChild(QWidget *child, bool next) const @@ -860,13 +824,7 @@ bool QGraphicsProxyWidget::event(QEvent *event) break; } case QEvent::InputMethod: { - // Forward input method events if the focus widget enables - // input methods. - // ### Qt 4.5: this code must also go into a reimplementation - // of inputMethodEvent(). - QWidget *focusWidget = d->widget->focusWidget(); - if (focusWidget && focusWidget->testAttribute(Qt::WA_InputMethodEnabled)) - QApplication::sendEvent(focusWidget, event); + inputMethodEvent(static_cast<QInputMethodEvent *>(event)); break; } case QEvent::ShortcutOverride: { @@ -1418,6 +1376,52 @@ bool QGraphicsProxyWidget::focusNextPrevChild(bool next) /*! \reimp */ +QVariant QGraphicsProxyWidget::inputMethodQuery(Qt::InputMethodQuery query) const +{ + Q_D(const QGraphicsProxyWidget); + + if (!d->widget || !hasFocus()) + return QVariant(); + + QWidget *focusWidget = widget()->focusWidget(); + if (!focusWidget) + focusWidget = d->widget; + QVariant v = focusWidget->inputMethodQuery(query); + QPointF focusWidgetPos = subWidgetRect(focusWidget).topLeft(); + switch (v.type()) { + case QVariant::RectF: + v = v.toRectF().translated(focusWidgetPos); + break; + case QVariant::PointF: + v = v.toPointF() + focusWidgetPos; + break; + case QVariant::Rect: + v = v.toRect().translated(focusWidgetPos.toPoint()); + break; + case QVariant::Point: + v = v.toPoint() + focusWidgetPos.toPoint(); + break; + default: + break; + } + return v; +} + +/*! + \reimp +*/ +void QGraphicsProxyWidget::inputMethodEvent(QInputMethodEvent *event) +{ + // Forward input method events if the focus widget enables input methods. + Q_D(const QGraphicsProxyWidget); + QWidget *focusWidget = d->widget->focusWidget(); + if (focusWidget && focusWidget->testAttribute(Qt::WA_InputMethodEnabled)) + QApplication::sendEvent(focusWidget, event); +} + +/*! + \reimp +*/ QSizeF QGraphicsProxyWidget::sizeHint(Qt::SizeHint which, const QSizeF &constraint) const { Q_D(const QGraphicsProxyWidget); |