Ejemplo n.º 1
0
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());
}