void tst_QItemDelegate::decoration() { if (QByteArray(QTest::currentDataTag()) == QByteArray("pixmap 30x30 big")) QSKIP("Skipping this as it demands too much memory and potential hangs", SkipSingle); Q_CHECK_PAINTEVENTS QFETCH(int, type); QFETCH(QSize, size); QFETCH(QSize, expected); QTableWidget table(1, 1); TestItemDelegate delegate; table.setItemDelegate(&delegate); table.show(); #ifdef Q_WS_X11 qt_x11_wait_for_window_manager(&table); #endif QApplication::setActiveWindow(&table); QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget*>(&table)); QVariant value; switch ((QVariant::Type)type) { case QVariant::Pixmap: { QPixmap pm(size); pm.fill(Qt::black); value = pm; break; } case QVariant::Image: { QImage img(size, QImage::Format_Mono); qMemSet(img.bits(), 0, img.byteCount()); value = img; break; } case QVariant::Icon: { QPixmap pm(size); pm.fill(Qt::black); value = QIcon(pm); break; } case QVariant::Color: value = QColor(Qt::green); break; default: break; } QTableWidgetItem *item = new QTableWidgetItem; item->setData(Qt::DecorationRole, value); table.setItem(0, 0, item); item->setSelected(true); QApplication::processEvents(); QTRY_COMPARE(delegate.decorationRect.size(), expected); }
/*! Makes the splash screen wait until the widget \a mainWin is displayed before calling close() on itself. */ void QSplashScreen::finish(QWidget *mainWin) { if (mainWin) { #if defined(Q_WS_X11) extern void qt_x11_wait_for_window_manager(QWidget *mainWin); qt_x11_wait_for_window_manager(mainWin); #endif } close(); }
void tst_QItemDelegate::font() { Q_CHECK_PAINTEVENTS QFETCH(QString, itemText); QFETCH(QString, properties); QFETCH(QFont, itemFont); QFETCH(QFont, viewFont); QTableWidget table(1, 1); table.setFont(viewFont); TestItemDelegate *delegate = new TestItemDelegate(&table); table.setItemDelegate(delegate); table.show(); #ifdef Q_WS_X11 qt_x11_wait_for_window_manager(&table); #endif QTableWidgetItem *item = new QTableWidgetItem; item->setText(itemText); item->setFont(itemFont); table.setItem(0, 0, item); QApplication::processEvents(); #ifdef Q_WS_QWS QApplication::sendPostedEvents(); //glib workaround #endif QTRY_COMPARE(delegate->displayText, item->text()); if (properties.contains("italic")) { QCOMPARE(delegate->displayFont.italic(), item->font().italic()); } if (properties.contains("bold")) { QCOMPARE(delegate->displayFont.bold(), item->font().bold()); } if (properties.contains("family")) { QCOMPARE(delegate->displayFont.family(), item->font().family()); } }
void tst_QToolBar::actionTriggered() { QToolBar tb; connect(&tb, SIGNAL(actionTriggered(QAction *)), SLOT(slot(QAction *))); QAction action1(0); QAction action2(0); QAction action3(0); QAction action4(0); tb.addAction(&action1); tb.addAction(&action2); tb.addAction(&action3); tb.addAction(&action4); tb.show(); #ifdef Q_WS_X11 qt_x11_wait_for_window_manager(&tb); #endif QList<QToolBarExtension *> extensions = tb.findChildren<QToolBarExtension *>(); QRect rect01; QRect rect02; QRect rect03; QRect rect04; QMenu *popupMenu; if (extensions.size() != 0) { QToolBarExtension *extension = extensions.at(0); if (extension->isVisible()) { QRect rect0 = extension->geometry(); QTest::mouseClick( extension, Qt::LeftButton, 0, rect0.center(), -1 ); QApplication::processEvents(); popupMenu = qobject_cast<QMenu *>(extension->menu()); rect01 = popupMenu->actionGeometry(&action1); rect02 = popupMenu->actionGeometry(&action2); rect03 = popupMenu->actionGeometry(&action3); rect04 = popupMenu->actionGeometry(&action4); } } QRect rect1 = tb.actionGeometry(&action1); QRect rect2 = tb.actionGeometry(&action2); QRect rect3 = tb.actionGeometry(&action3); QRect rect4 = tb.actionGeometry(&action4); QAbstractButton *button1; QAbstractButton *button2; QAbstractButton *button3; QAbstractButton *button4; if (!rect01.isValid()) { button1 = qobject_cast<QAbstractButton *>(tb.childAt(rect1.center())); QVERIFY(button1 != 0); } if (!rect02.isValid()) { button2 = qobject_cast<QAbstractButton *>(tb.childAt(rect2.center())); QVERIFY(button2 != 0); } if (!rect03.isValid()) { button3 = qobject_cast<QAbstractButton *>(tb.childAt(rect3.center())); QVERIFY(button3 != 0); } if (!rect04.isValid()) { button4 = qobject_cast<QAbstractButton *>(tb.childAt(rect4.center())); QVERIFY(button4 != 0); } ::triggered = 0; if (!rect01.isValid()) QTest::mouseClick(button1, Qt::LeftButton); else QTest::mouseClick(popupMenu, Qt::LeftButton, 0, rect01.center(), -1 ); QCOMPARE(::triggered, &action1); ::triggered = 0; if (!rect02.isValid()) QTest::mouseClick(button2, Qt::LeftButton); else QTest::mouseClick(popupMenu, Qt::LeftButton, 0, rect02.center(), -1 ); QCOMPARE(::triggered, &action2); ::triggered = 0; if (!rect03.isValid()) QTest::mouseClick(button3, Qt::LeftButton); else QTest::mouseClick(popupMenu, Qt::LeftButton, 0, rect03.center(), -1 ); QCOMPARE(::triggered, &action3); ::triggered = 0; if (!rect04.isValid()) QTest::mouseClick(button4, Qt::LeftButton); else QTest::mouseClick(popupMenu, Qt::LeftButton, 0, rect04.center(), -1 ); QCOMPARE(::triggered, &action4); }
void tst_QToolBar::actionGeometry() { QToolBar tb; QAction action1(0); QAction action2(0); QAction action3(0); QAction action4(0); tb.addAction(&action1); tb.addAction(&action2); tb.addAction(&action3); tb.addAction(&action4); tb.show(); #ifdef Q_WS_X11 qt_x11_wait_for_window_manager(&tb); #endif QList<QToolBarExtension *> extensions = tb.findChildren<QToolBarExtension *>(); QRect rect01; QRect rect02; QRect rect03; QRect rect04; QMenu *popupMenu; if (extensions.size() != 0) { QToolBarExtension *extension = extensions.at(0); if (extension->isVisible()) { QRect rect0 = extension->geometry(); QTest::mouseClick( extension, Qt::LeftButton, 0, rect0.center(), -1 ); QApplication::processEvents(); popupMenu = qobject_cast<QMenu *>(extension->menu()); rect01 = popupMenu->actionGeometry(&action1); rect02 = popupMenu->actionGeometry(&action2); rect03 = popupMenu->actionGeometry(&action3); rect04 = popupMenu->actionGeometry(&action4); } } QRect rect1 = tb.actionGeometry(&action1); QRect rect2 = tb.actionGeometry(&action2); QRect rect3 = tb.actionGeometry(&action3); QRect rect4 = tb.actionGeometry(&action4); QVERIFY(rect1.isValid()); QVERIFY(!rect1.isNull()); QVERIFY(!rect1.isEmpty()); QVERIFY(rect2.isValid()); QVERIFY(!rect2.isNull()); QVERIFY(!rect2.isEmpty()); QVERIFY(rect3.isValid()); QVERIFY(!rect3.isNull()); QVERIFY(!rect3.isEmpty()); QVERIFY(rect4.isValid()); QVERIFY(!rect4.isNull()); QVERIFY(!rect4.isEmpty()); if (rect01.isValid()) QCOMPARE(popupMenu->actionAt(rect01.center()), &action1); else QCOMPARE(tb.actionAt(rect1.center()), &action1); if (rect02.isValid()) QCOMPARE(popupMenu->actionAt(rect02.center()), &action2); else QCOMPARE(tb.actionAt(rect2.center()), &action2); if (rect03.isValid()) QCOMPARE(popupMenu->actionAt(rect03.center()), &action3); else QCOMPARE(tb.actionAt(rect3.center()), &action3); if (rect04.isValid()) QCOMPARE(popupMenu->actionAt(rect04.center()), &action4); else QCOMPARE(tb.actionAt(rect4.center()), &action4); }