src/gui/graphicsview/qgraphicswidget_p.cpp
changeset 33 3e2da88830cd
parent 30 5dc02b23752f
child 37 758a864f9613
equal deleted inserted replaced
30:5dc02b23752f 33:3e2da88830cd
   759 
   759 
   760     QGraphicsWidget *w = focusNext;
   760     QGraphicsWidget *w = focusNext;
   761 
   761 
   762     QGraphicsWidget *firstOld = 0;
   762     QGraphicsWidget *firstOld = 0;
   763     bool wasPreviousNew = true;
   763     bool wasPreviousNew = true;
   764     
   764 
   765     while (w != q) {
   765     while (w != q) {
   766         bool isCurrentNew = q->isAncestorOf(w);
   766         bool isCurrentNew = q->isAncestorOf(w);
   767         if (isCurrentNew) {
   767         if (isCurrentNew) {
   768             if (!wasPreviousNew) {
   768             if (!wasPreviousNew) {
   769                 n->d_func()->focusNext = w;
   769                 n->d_func()->focusNext = w;
   794     // update tabFocusFirst for oldScene if the item is going to be removed from oldScene
   794     // update tabFocusFirst for oldScene if the item is going to be removed from oldScene
   795     if (newParent)
   795     if (newParent)
   796         newScene = newParent->scene();
   796         newScene = newParent->scene();
   797 
   797 
   798     if (oldScene && newScene != oldScene)
   798     if (oldScene && newScene != oldScene)
   799         oldScene->d_func()->tabFocusFirst = firstOld;
   799         oldScene->d_func()->tabFocusFirst = (firstOld && firstOld->scene() == oldScene) ? firstOld : 0;
   800 
   800 
   801     QGraphicsItem *topLevelItem = newParent ? newParent->topLevelItem() : 0;
   801     QGraphicsItem *topLevelItem = newParent ? newParent->topLevelItem() : 0;
   802     QGraphicsWidget *topLevel = 0;
   802     QGraphicsWidget *topLevel = 0;
   803     if (topLevelItem && topLevelItem->isWidget())
   803     if (topLevelItem && topLevelItem->isWidget())
   804         topLevel = static_cast<QGraphicsWidget *>(topLevelItem);
   804         topLevel = static_cast<QGraphicsWidget *>(topLevelItem);