tests/auto/qobject/tst_qobject.cpp
changeset 19 fcece45ef507
parent 18 2f34d5167611
child 30 5dc02b23752f
equal deleted inserted replaced
18:2f34d5167611 19:fcece45ef507
  2645     object.installEventFilter(&spy);
  2645     object.installEventFilter(&spy);
  2646     QCoreApplication::sendEvent(&object, &event);
  2646     QCoreApplication::sendEvent(&object, &event);
  2647     QVERIFY(spy.eventList().isEmpty());
  2647     QVERIFY(spy.eventList().isEmpty());
  2648 }
  2648 }
  2649 
  2649 
       
  2650 class EmitThread : public QThread
       
  2651 {   Q_OBJECT
       
  2652 public:
       
  2653     void run(void) {
       
  2654         emit work();
       
  2655     }
       
  2656 signals:
       
  2657     void work();
       
  2658 };
       
  2659 
  2650 class DeleteObject : public QObject
  2660 class DeleteObject : public QObject
  2651 {
  2661 {
  2652     Q_OBJECT
  2662     Q_OBJECT
  2653 
  2663 
  2654 public slots:
  2664 public slots:
  2709         QPointer<DeleteObject> p = receiver;
  2719         QPointer<DeleteObject> p = receiver;
  2710         sender.emitSignal1();
  2720         sender.emitSignal1();
  2711         QVERIFY(p.isNull());
  2721         QVERIFY(p.isNull());
  2712 
  2722 
  2713         QVERIFY(thread.wait(10000));
  2723         QVERIFY(thread.wait(10000));
       
  2724     }
       
  2725 
       
  2726     {
       
  2727         EmitThread sender;
       
  2728         DeleteObject *receiver = new DeleteObject();
       
  2729         connect(&sender, SIGNAL(work()), receiver, SLOT(deleteSelf()), Qt::DirectConnection);
       
  2730         QPointer<DeleteObject> p = receiver;
       
  2731         sender.start();
       
  2732         QVERIFY(sender.wait(10000));
       
  2733         QVERIFY(p.isNull());
  2714     }
  2734     }
  2715 }
  2735 }
  2716 
  2736 
  2717 class DisconnectObject : public QObject
  2737 class DisconnectObject : public QObject
  2718 {
  2738 {