void SummaryTree::addTestCases() { QTreeWidgetItem *curItem = currentItem(); if (indexOfTopLevelItem(curItem) == -1) curItem = curItem->parent(); int index = indexOfTopLevelItem(curItem); Task *curTask = curContest->getTask(index); AddTestCasesWizard *wizard = new AddTestCasesWizard(this); wizard->setSettings(settings, curTask->getTaskType() == Task::Traditional); if (wizard->exec() == QDialog::Accepted) { QList<QStringList> inputFiles = wizard->getMatchedInputFiles(); QList<QStringList> outputFiles = wizard->getMatchedOutputFiles(); for (int i = 0; i < inputFiles.size(); i ++) { addTestCase(); QTreeWidgetItem *curItem = currentItem(); QTreeWidgetItem *parentItem = curItem->parent(); int taskIndex = indexOfTopLevelItem(parentItem); int testCaseIndex = parentItem->indexOfChild(curItem); Task *curTask = curContest->getTask(taskIndex); TestCase *curTestCase = curTask->getTestCase(testCaseIndex); curTestCase->setFullScore(wizard->getFullScore()); curTestCase->setTimeLimit(wizard->getTimeLimit()); curTestCase->setMemoryLimit(wizard->getMemoryLimit()); for (int j = 0; j < inputFiles[i].size(); j ++) curTestCase->addSingleCase(inputFiles[i][j], outputFiles[i][j]); setCurrentItem(parentItem); setCurrentItem(curItem); } } delete wizard; }
void SummaryTree::addTestCase() { QTreeWidgetItem *curItem = currentItem(); if (indexOfTopLevelItem(curItem) == -1) curItem = curItem->parent(); int index = indexOfTopLevelItem(curItem); Task *curTask = curContest->getTask(index); TestCase *newTestCase = new TestCase; newTestCase->setFullScore(settings->getDefaultFullScore()); newTestCase->setTimeLimit(settings->getDefaultTimeLimit()); newTestCase->setMemoryLimit(settings->getDefaultMemoryLimit()); curTask->addTestCase(newTestCase); QTreeWidgetItem *newItem = new QTreeWidgetItem(curItem); newItem->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); newItem->setText(0, tr("Test Case #%1").arg(curItem->childCount())); setCurrentItem(newItem); }