tests/auto/qtouchevent/tst_qtouchevent.cpp
branchRCL_3
changeset 8 3f74d0d4af4c
parent 4 3b1da2848fc7
equal deleted inserted replaced
6:dee5afe5301f 8:3f74d0d4af4c
   191     void basicRawEventTranslation();
   191     void basicRawEventTranslation();
   192     void multiPointRawEventTranslationOnTouchScreen();
   192     void multiPointRawEventTranslationOnTouchScreen();
   193     void multiPointRawEventTranslationOnTouchPad();
   193     void multiPointRawEventTranslationOnTouchPad();
   194     void deleteInEventHandler();
   194     void deleteInEventHandler();
   195     void deleteInRawEventTranslation();
   195     void deleteInRawEventTranslation();
       
   196     void crashInQGraphicsSceneAfterNotHandlingTouchBegin();
   196 };
   197 };
   197 
   198 
   198 void tst_QTouchEvent::touchDisabledByDefault()
   199 void tst_QTouchEvent::touchDisabledByDefault()
   199 {
   200 {
   200     // QWidget
   201     // QWidget
  1301     rawTouchPoints[1].setState(Qt::TouchPointReleased);
  1302     rawTouchPoints[1].setState(Qt::TouchPointReleased);
  1302     rawTouchPoints[2].setState(Qt::TouchPointReleased);
  1303     rawTouchPoints[2].setState(Qt::TouchPointReleased);
  1303     qt_translateRawTouchEvent(&touchWidget, QTouchEvent::TouchScreen, rawTouchPoints);
  1304     qt_translateRawTouchEvent(&touchWidget, QTouchEvent::TouchScreen, rawTouchPoints);
  1304 }
  1305 }
  1305 
  1306 
       
  1307 void tst_QTouchEvent::crashInQGraphicsSceneAfterNotHandlingTouchBegin()
       
  1308 {
       
  1309     QGraphicsRectItem *rect = new QGraphicsRectItem(0, 0, 100, 100);
       
  1310     rect->setAcceptTouchEvents(true);
       
  1311 
       
  1312     QGraphicsRectItem *mainRect = new QGraphicsRectItem(0, 0, 100, 100, rect);
       
  1313     mainRect->setBrush(Qt::lightGray);
       
  1314 
       
  1315     QGraphicsRectItem *button = new QGraphicsRectItem(-20, -20, 40, 40, mainRect);
       
  1316     button->setPos(50, 50);
       
  1317     button->setBrush(Qt::darkGreen);
       
  1318 
       
  1319     QGraphicsView view;
       
  1320     QGraphicsScene scene;
       
  1321     scene.addItem(rect);
       
  1322     scene.setSceneRect(0,0,100,100);
       
  1323     view.setScene(&scene);
       
  1324 
       
  1325     view.show();
       
  1326     QTest::qWaitForWindowShown(&view);
       
  1327 
       
  1328     QPoint centerPos = view.mapFromScene(rect->boundingRect().center());
       
  1329     // Touch the button
       
  1330     QTest::touchEvent(view.viewport()).press(0, centerPos);
       
  1331     QTest::touchEvent(view.viewport()).release(0, centerPos);
       
  1332     // Touch outside of the button
       
  1333     QTest::touchEvent(view.viewport()).press(0, view.mapFromScene(QPoint(10, 10)));
       
  1334     QTest::touchEvent(view.viewport()).release(0, view.mapFromScene(QPoint(10, 10)));
       
  1335 }
       
  1336 
  1306 QTEST_MAIN(tst_QTouchEvent)
  1337 QTEST_MAIN(tst_QTouchEvent)
  1307 
  1338 
  1308 #include "tst_qtouchevent.moc"      
  1339 #include "tst_qtouchevent.moc"