diff options
| author | LostDragonist <lost.dragonist@gmail.com> | 2019-04-15 04:11:06 -0500 |
|---|---|---|
| committer | LostDragonist <lost.dragonist@gmail.com> | 2019-04-15 05:25:22 -0500 |
| commit | 149c38d54d2a841af929b432b83804fafdc1e588 (patch) | |
| tree | 5fa69b73a3ec54df39444ce9bcd0e06a4a4a950b /src/editexecutablesdialog.cpp | |
| parent | 0f13d9a4c00db48402dd70fcd55084d102582f22 (diff) | |
Add protection against non-existent working directory for executables
Diffstat (limited to 'src/editexecutablesdialog.cpp')
| -rw-r--r-- | src/editexecutablesdialog.cpp | 30 |
1 files changed, 27 insertions, 3 deletions
diff --git a/src/editexecutablesdialog.cpp b/src/editexecutablesdialog.cpp index d1371a76..177661ff 100644 --- a/src/editexecutablesdialog.cpp +++ b/src/editexecutablesdialog.cpp @@ -83,8 +83,33 @@ void EditExecutablesDialog::refreshExecutablesWidget() void EditExecutablesDialog::on_binaryEdit_textChanged(const QString &name) { - QFileInfo fileInfo(name); - ui->addButton->setEnabled(fileInfo.exists() && fileInfo.isFile()); + updateButtonStates(); +} + +void EditExecutablesDialog::on_workingDirEdit_textChanged(const QString &dir) +{ + updateButtonStates(); +} + +void EditExecutablesDialog::updateButtonStates() +{ + bool enabled = true; + + QString filePath(ui->binaryEdit->text()); + QFileInfo fileInfo(filePath); + if (!fileInfo.exists()) + enabled = false; + if (!fileInfo.isFile()) + enabled = false; + + QString dirPath(ui->workingDirEdit->text()); + if (!dirPath.isEmpty()) { + QDir dirInfo(dirPath); + if (!dirInfo.exists()) + enabled = false; + } + + ui->addButton->setEnabled(enabled); } void EditExecutablesDialog::resetInput() @@ -293,7 +318,6 @@ bool EditExecutablesDialog::executableChanged() && fileInfo.isFile(); } } - void EditExecutablesDialog::on_executablesListBox_itemSelectionChanged() { if (ui->executablesListBox->selectedItems().size() == 0) { |
