| 15 | #include "core/task.h" |
| 16 | |
| 17 | TaskEditWidget::TaskEditWidget(QWidget *parent) : QWidget(parent), ui(new Ui::TaskEditWidget) { |
| 18 | ui->setupUi(this); |
| 19 | editTask = nullptr; |
| 20 | ui->lemonSpecialJudge->setFilters(QDir::Files | QDir::Executable); |
| 21 | ui->testlibSpecialJudge->setFilters(QDir::Files | QDir::Executable); |
| 22 | ui->interactorPath->setFilters(QDir::Files); |
| 23 | ui->graderPath->setFilters(QDir::Files); |
| 24 | connect(this, &TaskEditWidget::dataPathChanged, ui->lemonSpecialJudge, &FileLineEdit::refreshFileList); |
| 25 | connect(this, &TaskEditWidget::dataPathChanged, ui->testlibSpecialJudge, &FileLineEdit::refreshFileList); |
| 26 | connect(this, &TaskEditWidget::dataPathChanged, ui->interactorPath, &FileLineEdit::refreshFileList); |
| 27 | connect(this, &TaskEditWidget::dataPathChanged, ui->graderPath, &FileLineEdit::refreshFileList); |
| 28 | ui->sourceFileName->setValidator(new QRegularExpressionValidator(QRegularExpression("\\w+"), this)); |
| 29 | ui->inputFileName->setValidator( |
| 30 | new QRegularExpressionValidator(QRegularExpression(R"((\w+)(\.\w+)?)"), this)); |
| 31 | ui->outputFileName->setValidator( |
| 32 | new QRegularExpressionValidator(QRegularExpression(R"((\w+)(\.\w+)?)"), this)); |
| 33 | ui->interactorName->setValidator( |
| 34 | new QRegularExpressionValidator(QRegularExpression(R"((\w+)(\.\w+)?)"), this)); |
| 35 | ui->answerFileExtension->setValidator(new QRegularExpressionValidator(QRegularExpression("\\w+"), this)); |
| 36 | ui->sourceFilesTable->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); |
| 37 | ui->graderFilesTable->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); |
| 38 | // ui->interactionButton->setVisible(false); //rebuilding interaction, remove it temporarily |
| 39 | connect(ui->problemTitle, &QLineEdit::textChanged, this, &TaskEditWidget::problemTitleChanged); |
| 40 | connect(ui->traditionalButton, &QRadioButton::toggled, this, &TaskEditWidget::setToTraditional); |
| 41 | connect(ui->answersOnlyButton, &QRadioButton::toggled, this, &TaskEditWidget::setToAnswersOnly); |
| 42 | connect(ui->interactionButton, &QRadioButton::toggled, this, &TaskEditWidget::setToInteraction); |
| 43 | connect(ui->communicationButton, &QRadioButton::toggled, this, &TaskEditWidget::setToCommunication); |
| 44 | connect(ui->communicationExecButton, &QRadioButton::toggled, this, |
| 45 | &TaskEditWidget::setToCommunicationExec); |
| 46 | connect(ui->sourceFileName, &QLineEdit::textChanged, this, &TaskEditWidget::sourceFileNameChanged); |
| 47 | connect(ui->subFolderCheck, &QCheckBox::checkStateChanged, this, &TaskEditWidget::subFolderCheckChanged); |
| 48 | connect(ui->inputFileName, &QLineEdit::textChanged, this, &TaskEditWidget::inputFileNameChanged); |
| 49 | connect(ui->outputFileName, &QLineEdit::textChanged, this, &TaskEditWidget::outputFileNameChanged); |
| 50 | connect(ui->standardInputCheck, &QCheckBox::checkStateChanged, this, |
| 51 | &TaskEditWidget::standardInputCheckChanged); |
| 52 | connect(ui->standardOutputCheck, &QCheckBox::checkStateChanged, this, |
| 53 | &TaskEditWidget::standardOutputCheckChanged); |
| 54 | connect(ui->comparisonMode, qOverload<int>(&QComboBox::currentIndexChanged), this, |
| 55 | &TaskEditWidget::comparisonModeChanged); |
| 56 | connect(ui->diffArguments, &QLineEdit::textChanged, this, &TaskEditWidget::diffArgumentsChanged); |
| 57 | connect(ui->realPrecision, qOverload<int>(&QSpinBox::valueChanged), this, |
| 58 | &TaskEditWidget::realPrecisionChanged); |
| 59 | connect(ui->lemonSpecialJudge, &QLineEdit::textChanged, this, &TaskEditWidget::specialJudgeChanged); |
| 60 | connect(ui->testlibSpecialJudge, &QLineEdit::textChanged, this, &TaskEditWidget::specialJudgeChanged); |
| 61 | connect(ui->interactorPath, &QLineEdit::textChanged, this, &TaskEditWidget::interactorChanged); |
| 62 | connect(ui->interactorName, &QLineEdit::textChanged, this, &TaskEditWidget::interactorNameChanged); |
| 63 | connect(ui->graderPath, &QLineEdit::textChanged, this, &TaskEditWidget::graderChanged); |
| 64 | connect(ui->compilersList, &QListWidget::currentRowChanged, this, |
| 65 | &TaskEditWidget::compilerSelectionChanged); |
| 66 | connect(ui->configurationSelect, qOverload<int>(&QComboBox::currentIndexChanged), this, |
| 67 | &TaskEditWidget::configurationSelectionChanged); |
| 68 | connect(ui->answerFileExtension, &QLineEdit::textChanged, this, |
| 69 | &TaskEditWidget::answerFileExtensionChanged); |
| 70 | connect(ui->sourceFilesAppendButton, &QPushButton::clicked, this, &TaskEditWidget::addSourceFileClicked); |
| 71 | connect(ui->graderFilesAppendButton, &QPushButton::clicked, this, &TaskEditWidget::addGraderFileClicked); |
| 72 | connect(ui->sourceFilesRemoveButton, &QPushButton::clicked, this, &TaskEditWidget::rmSourceFileClicked); |
| 73 | connect(ui->graderFilesRemoveButton, &QPushButton::clicked, this, &TaskEditWidget::rmGraderFileClicked); |
| 74 | } |
nothing calls this directly
no test coverage detected