diff options
author | Aaron Kennedy <aaron.kennedy@nokia.com> | 2009-05-07 05:45:40 (GMT) |
---|---|---|
committer | Aaron Kennedy <aaron.kennedy@nokia.com> | 2009-05-07 05:45:40 (GMT) |
commit | 5fb8157047aca69c68438054ca7ea47ae595f428 (patch) | |
tree | 666c15422c7cc7c45cb46844052fd540e96756a7 /src/declarative | |
parent | b530723f5a7254d6a2a144aa27789651fe872c6d (diff) | |
parent | 45f531b9863fb64e6d4df2c77af01f14019f217e (diff) | |
download | Qt-5fb8157047aca69c68438054ca7ea47ae595f428.zip Qt-5fb8157047aca69c68438054ca7ea47ae595f428.tar.gz Qt-5fb8157047aca69c68438054ca7ea47ae595f428.tar.bz2 |
Merge branch 'kinetic-declarativeui' of git@scm.dev.nokia.troll.no:qt/kinetic into kinetic-declarativeui
Diffstat (limited to 'src/declarative')
-rw-r--r-- | src/declarative/canvas/qsimplecanvas.cpp | 7 | ||||
-rw-r--r-- | src/declarative/canvas/qsimplecanvas.h | 2 | ||||
-rw-r--r-- | src/declarative/fx/qfxkeyproxy.cpp | 4 | ||||
-rw-r--r-- | src/declarative/fx/qfxtextedit.cpp | 24 | ||||
-rw-r--r-- | src/declarative/fx/qfxtextedit.h | 3 |
5 files changed, 20 insertions, 20 deletions
diff --git a/src/declarative/canvas/qsimplecanvas.cpp b/src/declarative/canvas/qsimplecanvas.cpp index c404da6..e1dd0e8 100644 --- a/src/declarative/canvas/qsimplecanvas.cpp +++ b/src/declarative/canvas/qsimplecanvas.cpp @@ -904,6 +904,13 @@ QSimpleCanvasItem *QSimpleCanvas::activeFocusPanel() const return d->focusPanels.top(); } +QSimpleCanvasItem *QSimpleCanvas::focusItem(QSimpleCanvasItem *item) const +{ + while (item && d->focusPanelData.contains(item)) + item = d->focusPanelData.value(item); + return item; +} + bool QSimpleCanvas::event(QEvent *e) { if (e->type() == QEvent::User && d->isSimpleCanvas()) { diff --git a/src/declarative/canvas/qsimplecanvas.h b/src/declarative/canvas/qsimplecanvas.h index a35cbf5..20dab28 100644 --- a/src/declarative/canvas/qsimplecanvas.h +++ b/src/declarative/canvas/qsimplecanvas.h @@ -141,6 +141,8 @@ public: void checkState(); QSimpleCanvasItem *focusItem() const; + QSimpleCanvasItem *focusItem(QSimpleCanvasItem *item) const; + QSimpleCanvasItem *activeFocusPanel() const; QImage asImage() const; diff --git a/src/declarative/fx/qfxkeyproxy.cpp b/src/declarative/fx/qfxkeyproxy.cpp index 6d9c6ab..1bb54ec 100644 --- a/src/declarative/fx/qfxkeyproxy.cpp +++ b/src/declarative/fx/qfxkeyproxy.cpp @@ -96,7 +96,7 @@ void QFxKeyProxy::keyPressEvent(QKeyEvent *e) for (int ii = 0; ii < d->targets.count(); ++ii) { QSimpleCanvasItem *i = d->targets.at(ii); if (i) - i->keyPressEvent(e); + canvas()->focusItem(i)->keyPressEvent(e); if (e->isAccepted()) return; } @@ -107,7 +107,7 @@ void QFxKeyProxy::keyReleaseEvent(QKeyEvent *e) for (int ii = 0; ii < d->targets.count(); ++ii) { QSimpleCanvasItem *i = d->targets.at(ii); if (i) - i->keyReleaseEvent(e); + canvas()->focusItem(i)->keyReleaseEvent(e); if (e->isAccepted()) return; } diff --git a/src/declarative/fx/qfxtextedit.cpp b/src/declarative/fx/qfxtextedit.cpp index a1b5484..bf7a16d 100644 --- a/src/declarative/fx/qfxtextedit.cpp +++ b/src/declarative/fx/qfxtextedit.cpp @@ -582,25 +582,17 @@ void QFxTextEdit::keyReleaseEvent(QKeyEvent *event) } /*! -\overload -Handles the given focus \a event. -*/ -void QFxTextEdit::focusInEvent(QFocusEvent *event) -{ - Q_D(QFxTextEdit); - QFxPaintedItem::focusInEvent(event); - d->control->processEvent(event, QPointF(0, 0)); -} - -/*! -\overload -Handles the given focus \a event. + \overload + Handles changing of the focus property. Focus is applied to the control + even if the edit does not have active focus. This is because things + like KeyProxy can give the behavior of focus even when activeFocus isn't + true. */ -void QFxTextEdit::focusOutEvent(QFocusEvent *event) +void QFxTextEdit::focusChanged(bool hasFocus) { Q_D(QFxTextEdit); - QFxPaintedItem::focusOutEvent(event); - d->control->processEvent(event, QPointF(0, 0)); + QFocusEvent focusEvent(hasFocus ? QEvent::FocusIn : QEvent::FocusOut); + d->control->processEvent(&focusEvent, QPointF(0, 0)); } static QMouseEvent *sceneMouseEventToMouseEvent(QGraphicsSceneMouseEvent *e) diff --git a/src/declarative/fx/qfxtextedit.h b/src/declarative/fx/qfxtextedit.h index b017635..e5e9421 100644 --- a/src/declarative/fx/qfxtextedit.h +++ b/src/declarative/fx/qfxtextedit.h @@ -161,8 +161,7 @@ protected: void keyPressEvent(QKeyEvent *); void keyReleaseEvent(QKeyEvent *); - void focusInEvent(QFocusEvent *); - void focusOutEvent(QFocusEvent *); + void focusChanged(bool); // mouse filter? void mousePressEvent(QGraphicsSceneMouseEvent *event); |