void TestWidget::updateJumpList() { QWinJumpList jumplist; if (!m_id.isEmpty()) jumplist.setIdentifier(m_id); const QString applicationBinary = QDir::toNativeSeparators(QCoreApplication::applicationFilePath()); jumplist.recent()->setVisible(ui->cbShowRecent->isChecked()); jumplist.frequent()->setVisible(ui->cbShowFrequent->isChecked()); if (ui->cbRunFullscreen->isChecked()) { QWinJumpListItem *item = new QWinJumpListItem(QWinJumpListItem::Link); item->setTitle(ui->cbRunFullscreen->text()); item->setFilePath(applicationBinary); item->setArguments(QStringList("-fullscreen")); item->setIcon(style()->standardIcon(QStyle::SP_TitleBarMaxButton)); jumplist.tasks()->addItem(item); } if (ui->cbRunFusion->isChecked()) { jumplist.tasks()->addLink(style()->standardIcon(QStyle::SP_DesktopIcon), ui->cbRunFusion->text(), applicationBinary, (QStringList() << "-style" << "fusion")); } if (ui->cbRunText->isChecked()) { jumplist.tasks()->addSeparator(); jumplist.tasks()->addLink(ui->cbRunText->text(), applicationBinary, QStringList("-text")); } jumplist.tasks()->setVisible(!jumplist.tasks()->isEmpty()); }
void tst_QWinJumpList::testTasks() { QWinJumpList jumplist; QWinJumpListCategory *tasks = jumplist.tasks(); QVERIFY(tasks); QVERIFY(!tasks->isVisible()); QVERIFY(tasks->isEmpty()); QVERIFY(tasks->title().isEmpty()); tasks->setVisible(true); QVERIFY(tasks->isVisible()); tasks->addItem(0); QVERIFY(tasks->isEmpty()); QWinJumpListItem* link1 = tasks->addLink(QStringLiteral("tst_QWinJumpList"), QCoreApplication::applicationFilePath()); QCOMPARE(link1->type(), QWinJumpListItem::Link); QCOMPARE(link1->title(), QStringLiteral("tst_QWinJumpList")); QCOMPARE(link1->filePath(), QCoreApplication::applicationFilePath()); QCOMPARE(tasks->count(), 1); QCOMPARE(tasks->items(), QList<QWinJumpListItem *>() << link1); QWinJumpListItem* link2 = tasks->addLink(QStringLiteral("tst_QWinJumpList"), QCoreApplication::applicationFilePath(), QStringList(QStringLiteral("-test"))); QCOMPARE(link2->type(), QWinJumpListItem::Link); QCOMPARE(link2->title(), QStringLiteral("tst_QWinJumpList")); QCOMPARE(link2->filePath(), QCoreApplication::applicationFilePath()); QCOMPARE(link2->arguments(), QStringList(QStringLiteral("-test"))); QCOMPARE(tasks->count(), 2); QCOMPARE(tasks->items(), QList<QWinJumpListItem *>() << link1 << link2); QWinJumpListItem* separator = tasks->addSeparator(); QCOMPARE(separator->type(), QWinJumpListItem::Separator); QCOMPARE(tasks->count(), 3); QCOMPARE(tasks->items(), QList<QWinJumpListItem *>() << link1 << link2 << separator); QWinJumpListItem* destination = tasks->addDestination(QCoreApplication::applicationDirPath()); QCOMPARE(destination->type(), QWinJumpListItem::Destination); QCOMPARE(destination->filePath(), QCoreApplication::applicationDirPath()); QCOMPARE(tasks->count(), 4); QCOMPARE(tasks->items(), QList<QWinJumpListItem *>() << link1 << link2 << separator << destination); tasks->clear(); QVERIFY(tasks->isEmpty()); QVERIFY(tasks->items().isEmpty()); }