tests/auto/qapplication/tst_qapplication.cpp
changeset 30 5dc02b23752f
parent 18 2f34d5167611
child 33 3e2da88830cd
equal deleted inserted replaced
29:b72c6db6890b 30:5dc02b23752f
   704         timer.setInterval(100);
   704         timer.setInterval(100);
   705 
   705 
   706         QSignalSpy spy(&app, SIGNAL(aboutToQuit()));
   706         QSignalSpy spy(&app, SIGNAL(aboutToQuit()));
   707         QSignalSpy spy2(&timer, SIGNAL(timeout()));
   707         QSignalSpy spy2(&timer, SIGNAL(timeout()));
   708 
   708 
   709         QPointer<QMainWindow> mainWindow = new QMainWindow;
       
   710         QPointer<QWidget> invisibleTopLevelWidget = new QWidget;
       
   711         invisibleTopLevelWidget->setAttribute(Qt::WA_DontShowOnScreen);
       
   712 
       
   713         QVERIFY(app.quitOnLastWindowClosed());
       
   714         QVERIFY(mainWindow->testAttribute(Qt::WA_QuitOnClose));
       
   715         QVERIFY(invisibleTopLevelWidget->testAttribute(Qt::WA_QuitOnClose));
       
   716         QVERIFY(invisibleTopLevelWidget->testAttribute(Qt::WA_DontShowOnScreen));
       
   717 
       
   718         mainWindow->show();
       
   719         invisibleTopLevelWidget->show();
       
   720 
       
   721         timer.start();
       
   722         QTimer::singleShot(1000, mainWindow, SLOT(close())); // This should quit the application
       
   723         QTimer::singleShot(2000, &app, SLOT(quit()));        // This makes sure we quit even if it didn't
       
   724 
       
   725         app.exec();
       
   726 
       
   727         QCOMPARE(spy.count(), 1);
       
   728         QVERIFY(spy2.count() < 15);      // Should be around 10 if closing caused the quit
       
   729     }
       
   730     {
       
   731         int argc = 0;
       
   732         QApplication app(argc, 0, QApplication::GuiServer);
       
   733         QTimer timer;
       
   734         timer.setInterval(100);
       
   735 
       
   736         QSignalSpy spy(&app, SIGNAL(aboutToQuit()));
       
   737         QSignalSpy spy2(&timer, SIGNAL(timeout()));
       
   738 
       
   739         QPointer<CloseEventTestWindow> mainWindow = new CloseEventTestWindow;
   709         QPointer<CloseEventTestWindow> mainWindow = new CloseEventTestWindow;
   740 
   710 
   741         QVERIFY(app.quitOnLastWindowClosed());
   711         QVERIFY(app.quitOnLastWindowClosed());
   742         QVERIFY(mainWindow->testAttribute(Qt::WA_QuitOnClose));
   712         QVERIFY(mainWindow->testAttribute(Qt::WA_QuitOnClose));
   743 
   713