summaryrefslogtreecommitdiff
path: root/src/editexecutablesdialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/editexecutablesdialog.cpp')
-rw-r--r--src/editexecutablesdialog.cpp449
1 files changed, 204 insertions, 245 deletions
diff --git a/src/editexecutablesdialog.cpp b/src/editexecutablesdialog.cpp
index fde6b397..1c01545a 100644
--- a/src/editexecutablesdialog.cpp
+++ b/src/editexecutablesdialog.cpp
@@ -18,323 +18,282 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
*/
#include "editexecutablesdialog.h"
-#include "ui_editexecutablesdialog.h"
#include "filedialogmemory.h"
-#include "stackdata.h"
#include "modlist.h"
+#include "stackdata.h"
+#include "ui_editexecutablesdialog.h"
#include <QMessageBox>
#include <Shellapi.h>
#include <utility.h>
-
using namespace MOBase;
using namespace MOShared;
-EditExecutablesDialog::EditExecutablesDialog(
- const ExecutablesList &executablesList, const ModList &modList,
- Profile *profile, QWidget *parent)
- : TutorableDialog("EditExecutables", parent)
- , ui(new Ui::EditExecutablesDialog)
- , m_CurrentItem(nullptr)
- , m_ExecutablesList(executablesList)
- , m_Profile(profile)
-{
- ui->setupUi(this);
+EditExecutablesDialog::EditExecutablesDialog(const ExecutablesList& executablesList, const ModList& modList,
+ Profile* profile, QWidget* parent)
+ : TutorableDialog("EditExecutables", parent), ui(new Ui::EditExecutablesDialog), m_CurrentItem(nullptr),
+ m_ExecutablesList(executablesList), m_Profile(profile) {
+ ui->setupUi(this);
- refreshExecutablesWidget();
+ refreshExecutablesWidget();
- ui->newFilesModBox->addItems(modList.allMods());
+ ui->newFilesModBox->addItems(modList.allMods());
}
-EditExecutablesDialog::~EditExecutablesDialog()
-{
- delete ui;
-}
+EditExecutablesDialog::~EditExecutablesDialog() { delete ui; }
-ExecutablesList EditExecutablesDialog::getExecutablesList() const
-{
- ExecutablesList newList;
- for (int i = 0; i < ui->executablesListBox->count(); ++i) {
- newList.addExecutable(m_ExecutablesList.find(ui->executablesListBox->item(i)->text()));
- }
- return newList;
+ExecutablesList EditExecutablesDialog::getExecutablesList() const {
+ ExecutablesList newList;
+ for (int i = 0; i < ui->executablesListBox->count(); ++i) {
+ newList.addExecutable(m_ExecutablesList.find(ui->executablesListBox->item(i)->text()));
+ }
+ return newList;
}
-void EditExecutablesDialog::refreshExecutablesWidget()
-{
- ui->executablesListBox->clear();
- std::vector<Executable>::const_iterator current, end;
- m_ExecutablesList.getExecutables(current, end);
+void EditExecutablesDialog::refreshExecutablesWidget() {
+ ui->executablesListBox->clear();
+ std::vector<Executable>::const_iterator current, end;
+ m_ExecutablesList.getExecutables(current, end);
- for(; current != end; ++current) {
- QListWidgetItem *newItem = new QListWidgetItem(current->m_Title);
- newItem->setTextColor(current->isCustom() ? QColor(Qt::black) : QColor(Qt::darkGray));
- ui->executablesListBox->addItem(newItem);
- }
+ for (; current != end; ++current) {
+ QListWidgetItem* newItem = new QListWidgetItem(current->m_Title);
+ newItem->setTextColor(current->isCustom() ? QColor(Qt::black) : QColor(Qt::darkGray));
+ ui->executablesListBox->addItem(newItem);
+ }
- ui->addButton->setEnabled(false);
- ui->removeButton->setEnabled(false);
+ ui->addButton->setEnabled(false);
+ ui->removeButton->setEnabled(false);
}
-
-void EditExecutablesDialog::on_binaryEdit_textChanged(const QString &name)
-{
- QFileInfo fileInfo(name);
- ui->addButton->setEnabled(fileInfo.exists() && fileInfo.isFile());
+void EditExecutablesDialog::on_binaryEdit_textChanged(const QString& name) {
+ QFileInfo fileInfo(name);
+ ui->addButton->setEnabled(fileInfo.exists() && fileInfo.isFile());
}
-void EditExecutablesDialog::resetInput()
-{
- ui->binaryEdit->setText("");
- ui->titleEdit->setText("");
- ui->workingDirEdit->clear();
- ui->argumentsEdit->setText("");
- ui->appIDOverwriteEdit->clear();
- ui->overwriteAppIDBox->setChecked(false);
- ui->useAppIconCheckBox->setChecked(false);
- ui->newFilesModCheckBox->setChecked(false);
- m_CurrentItem = nullptr;
+void EditExecutablesDialog::resetInput() {
+ ui->binaryEdit->setText("");
+ ui->titleEdit->setText("");
+ ui->workingDirEdit->clear();
+ ui->argumentsEdit->setText("");
+ ui->appIDOverwriteEdit->clear();
+ ui->overwriteAppIDBox->setChecked(false);
+ ui->useAppIconCheckBox->setChecked(false);
+ ui->newFilesModCheckBox->setChecked(false);
+ m_CurrentItem = nullptr;
}
-
-void EditExecutablesDialog::saveExecutable()
-{
- m_ExecutablesList.updateExecutable(
- ui->titleEdit->text(),
- QDir::fromNativeSeparators(ui->binaryEdit->text()),
- ui->argumentsEdit->text(),
+void EditExecutablesDialog::saveExecutable() {
+ m_ExecutablesList.updateExecutable(
+ ui->titleEdit->text(), QDir::fromNativeSeparators(ui->binaryEdit->text()), ui->argumentsEdit->text(),
QDir::fromNativeSeparators(ui->workingDirEdit->text()),
- ui->overwriteAppIDBox->isChecked() ?
- ui->appIDOverwriteEdit->text() : "",
+ ui->overwriteAppIDBox->isChecked() ? ui->appIDOverwriteEdit->text() : "",
Executable::UseApplicationIcon | Executable::CustomExecutable,
- (ui->useAppIconCheckBox->isChecked() ?
- Executable::UseApplicationIcon : Executable::Flags())
- | Executable::CustomExecutable);
+ (ui->useAppIconCheckBox->isChecked() ? Executable::UseApplicationIcon : Executable::Flags()) |
+ Executable::CustomExecutable);
- if (ui->newFilesModCheckBox->isChecked()) {
- m_Profile->storeSetting("custom_overwrites", ui->titleEdit->text(),
- ui->newFilesModBox->currentText());
- }
- else {
- m_Profile->removeSetting("custom_overwrites", ui->titleEdit->text());
- }
+ if (ui->newFilesModCheckBox->isChecked()) {
+ m_Profile->storeSetting("custom_overwrites", ui->titleEdit->text(), ui->newFilesModBox->currentText());
+ } else {
+ m_Profile->removeSetting("custom_overwrites", ui->titleEdit->text());
+ }
}
-
-void EditExecutablesDialog::delayedRefresh()
-{
- QModelIndex index = ui->executablesListBox->currentIndex();
- resetInput();
- refreshExecutablesWidget();
- on_executablesListBox_clicked(index);
+void EditExecutablesDialog::delayedRefresh() {
+ QModelIndex index = ui->executablesListBox->currentIndex();
+ resetInput();
+ refreshExecutablesWidget();
+ on_executablesListBox_clicked(index);
}
+void EditExecutablesDialog::on_addButton_clicked() {
+ if (executableChanged()) {
+ saveExecutable();
+ }
-void EditExecutablesDialog::on_addButton_clicked()
-{
- if (executableChanged()) {
- saveExecutable();
- }
-
- resetInput();
- refreshExecutablesWidget();
+ resetInput();
+ refreshExecutablesWidget();
}
-void EditExecutablesDialog::on_browseButton_clicked()
-{
- QString binaryName = FileDialogMemory::getOpenFileName(
- "editExecutableBinary", this, tr("Select a binary"), QString(),
- tr("Executable (%1)").arg("*.exe *.bat *.jar"));
+void EditExecutablesDialog::on_browseButton_clicked() {
+ QString binaryName = FileDialogMemory::getOpenFileName("editExecutableBinary", this, tr("Select a binary"),
+ QString(), tr("Executable (%1)").arg("*.exe *.bat *.jar"));
- if (binaryName.endsWith(".jar", Qt::CaseInsensitive)) {
- QString binaryPath;
- { // try to find java automatically
- std::wstring binaryNameW = ToWString(binaryName);
- WCHAR buffer[MAX_PATH];
- if (::FindExecutableW(binaryNameW.c_str(), nullptr, buffer)
- > reinterpret_cast<HINSTANCE>(32)) {
- DWORD binaryType = 0UL;
- if (!::GetBinaryTypeW(binaryNameW.c_str(), &binaryType)) {
- qDebug("failed to determine binary type of \"%ls\": %lu", binaryNameW.c_str(), ::GetLastError());
- } else if (binaryType == SCS_32BIT_BINARY) {
- binaryPath = ToQString(buffer);
+ if (binaryName.endsWith(".jar", Qt::CaseInsensitive)) {
+ QString binaryPath;
+ { // try to find java automatically
+ std::wstring binaryNameW = ToWString(binaryName);
+ WCHAR buffer[MAX_PATH];
+ if (::FindExecutableW(binaryNameW.c_str(), nullptr, buffer) > reinterpret_cast<HINSTANCE>(32)) {
+ DWORD binaryType = 0UL;
+ if (!::GetBinaryTypeW(binaryNameW.c_str(), &binaryType)) {
+ qDebug("failed to determine binary type of \"%ls\": %lu", binaryNameW.c_str(), ::GetLastError());
+ } else if (binaryType == SCS_32BIT_BINARY) {
+ binaryPath = ToQString(buffer);
+ }
+ }
}
- }
- }
- if (binaryPath.isEmpty()) {
- QSettings javaReg("HKEY_LOCAL_MACHINE\\Software\\JavaSoft\\Java Runtime Environment", QSettings::NativeFormat);
- if (javaReg.contains("CurrentVersion")) {
- QString currentVersion = javaReg.value("CurrentVersion").toString();
- binaryPath = javaReg.value(QString("%1/JavaHome").arg(currentVersion)).toString().append("\\bin\\javaw.exe");
- }
- }
- if (binaryPath.isEmpty()) {
- QMessageBox::information(this, tr("Java (32-bit) required"),
- tr("MO requires 32-bit java to run this application. If you already have it installed, select javaw.exe "
- "from that installation as the binary."));
+ if (binaryPath.isEmpty()) {
+ QSettings javaReg("HKEY_LOCAL_MACHINE\\Software\\JavaSoft\\Java Runtime Environment",
+ QSettings::NativeFormat);
+ if (javaReg.contains("CurrentVersion")) {
+ QString currentVersion = javaReg.value("CurrentVersion").toString();
+ binaryPath =
+ javaReg.value(QString("%1/JavaHome").arg(currentVersion)).toString().append("\\bin\\javaw.exe");
+ }
+ }
+ if (binaryPath.isEmpty()) {
+ QMessageBox::information(this, tr("Java (32-bit) required"),
+ tr("MO requires 32-bit java to run this application. If you already have it "
+ "installed, select javaw.exe "
+ "from that installation as the binary."));
+ } else {
+ ui->binaryEdit->setText(binaryPath);
+ }
+
+ ui->workingDirEdit->setText(QDir::toNativeSeparators(QFileInfo(binaryName).absolutePath()));
+ ui->argumentsEdit->setText("-jar \"" + QDir::toNativeSeparators(binaryName) + "\"");
} else {
- ui->binaryEdit->setText(binaryPath);
+ ui->binaryEdit->setText(QDir::toNativeSeparators(binaryName));
}
-
- ui->workingDirEdit->setText(QDir::toNativeSeparators(QFileInfo(binaryName).absolutePath()));
- ui->argumentsEdit->setText("-jar \"" + QDir::toNativeSeparators(binaryName) + "\"");
- } else {
- ui->binaryEdit->setText(QDir::toNativeSeparators(binaryName));
- }
}
-void EditExecutablesDialog::on_browseDirButton_clicked()
-{
- QString dirName = FileDialogMemory::getExistingDirectory("editExecutableDirectory", this,
- tr("Select a directory"));
+void EditExecutablesDialog::on_browseDirButton_clicked() {
+ QString dirName = FileDialogMemory::getExistingDirectory("editExecutableDirectory", this, tr("Select a directory"));
- ui->workingDirEdit->setText(dirName);
+ ui->workingDirEdit->setText(dirName);
}
-void EditExecutablesDialog::on_removeButton_clicked()
-{
- if (QMessageBox::question(this, tr("Confirm"), tr("Really remove \"%1\" from executables?").arg(ui->titleEdit->text()),
- QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes) {
- m_ExecutablesList.remove(ui->titleEdit->text());
- }
+void EditExecutablesDialog::on_removeButton_clicked() {
+ if (QMessageBox::question(this, tr("Confirm"),
+ tr("Really remove \"%1\" from executables?").arg(ui->titleEdit->text()),
+ QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes) {
+ m_ExecutablesList.remove(ui->titleEdit->text());
+ }
- resetInput();
- refreshExecutablesWidget();
+ resetInput();
+ refreshExecutablesWidget();
}
-void EditExecutablesDialog::on_titleEdit_textChanged(const QString &arg1)
-{
- QPushButton *addButton = findChild<QPushButton*>("addButton");
- QPushButton *removeButton = findChild<QPushButton*>("removeButton");
+void EditExecutablesDialog::on_titleEdit_textChanged(const QString& arg1) {
+ QPushButton* addButton = findChild<QPushButton*>("addButton");
+ QPushButton* removeButton = findChild<QPushButton*>("removeButton");
- QListWidget *executablesWidget = findChild<QListWidget*>("executablesListBox");
+ QListWidget* executablesWidget = findChild<QListWidget*>("executablesListBox");
- QList<QListWidgetItem*> existingItems = executablesWidget->findItems(arg1, Qt::MatchFixedString);
+ QList<QListWidgetItem*> existingItems = executablesWidget->findItems(arg1, Qt::MatchFixedString);
- addButton->setEnabled(arg1.length() != 0);
+ addButton->setEnabled(arg1.length() != 0);
- if (existingItems.count() == 0) {
- addButton->setText(tr("Add"));
- removeButton->setEnabled(false);
- } else {
- // existing item. is it a custom one?
- addButton->setText(tr("Modify"));
- removeButton->setEnabled(true);
- }
+ if (existingItems.count() == 0) {
+ addButton->setText(tr("Add"));
+ removeButton->setEnabled(false);
+ } else {
+ // existing item. is it a custom one?
+ addButton->setText(tr("Modify"));
+ removeButton->setEnabled(true);
+ }
}
+bool EditExecutablesDialog::executableChanged() {
+ if (m_CurrentItem != nullptr) {
+ Executable const& selectedExecutable(m_ExecutablesList.find(m_CurrentItem->text()));
-bool EditExecutablesDialog::executableChanged()
-{
- if (m_CurrentItem != nullptr) {
- Executable const &selectedExecutable(m_ExecutablesList.find(m_CurrentItem->text()));
+ QString storedCustomOverwrite = m_Profile->setting("custom_overwrites", selectedExecutable.m_Title).toString();
- QString storedCustomOverwrite = m_Profile->setting("custom_overwrites", selectedExecutable.m_Title).toString();
-
- return selectedExecutable.m_Title != ui->titleEdit->text()
- || selectedExecutable.m_Arguments != ui->argumentsEdit->text()
- || selectedExecutable.m_SteamAppID != ui->appIDOverwriteEdit->text()
- || !storedCustomOverwrite.isEmpty() != ui->newFilesModCheckBox->isChecked()
- || !storedCustomOverwrite.isEmpty() && (storedCustomOverwrite != ui->newFilesModBox->currentText())
- || selectedExecutable.m_WorkingDirectory != QDir::fromNativeSeparators(ui->workingDirEdit->text())
- || selectedExecutable.m_BinaryInfo.absoluteFilePath() != QDir::fromNativeSeparators(ui->binaryEdit->text())
- || selectedExecutable.usesOwnIcon() != ui->useAppIconCheckBox->isChecked();
- } else {
- QFileInfo fileInfo(ui->binaryEdit->text());
- return !ui->binaryEdit->text().isEmpty()
- && !ui->titleEdit->text().isEmpty()
- && fileInfo.exists()
- && fileInfo.isFile();
- }
+ return selectedExecutable.m_Title != ui->titleEdit->text() ||
+ selectedExecutable.m_Arguments != ui->argumentsEdit->text() ||
+ selectedExecutable.m_SteamAppID != ui->appIDOverwriteEdit->text() ||
+ !storedCustomOverwrite.isEmpty() != ui->newFilesModCheckBox->isChecked() ||
+ !storedCustomOverwrite.isEmpty() && (storedCustomOverwrite != ui->newFilesModBox->currentText()) ||
+ selectedExecutable.m_WorkingDirectory != QDir::fromNativeSeparators(ui->workingDirEdit->text()) ||
+ selectedExecutable.m_BinaryInfo.absoluteFilePath() !=
+ QDir::fromNativeSeparators(ui->binaryEdit->text()) ||
+ selectedExecutable.usesOwnIcon() != ui->useAppIconCheckBox->isChecked();
+ } else {
+ QFileInfo fileInfo(ui->binaryEdit->text());
+ return !ui->binaryEdit->text().isEmpty() && !ui->titleEdit->text().isEmpty() && fileInfo.exists() &&
+ fileInfo.isFile();
+ }
}
-void EditExecutablesDialog::on_executablesListBox_itemSelectionChanged()
-{
- if (ui->executablesListBox->selectedItems().size() == 0) {
- // deselected
- resetInput();
- }
+void EditExecutablesDialog::on_executablesListBox_itemSelectionChanged() {
+ if (ui->executablesListBox->selectedItems().size() == 0) {
+ // deselected
+ resetInput();
+ }
}
-void EditExecutablesDialog::on_overwriteAppIDBox_toggled(bool checked)
-{
- ui->appIDOverwriteEdit->setEnabled(checked);
-}
+void EditExecutablesDialog::on_overwriteAppIDBox_toggled(bool checked) { ui->appIDOverwriteEdit->setEnabled(checked); }
-void EditExecutablesDialog::on_closeButton_clicked()
-{
- if (executableChanged()) {
- QMessageBox::StandardButton res = QMessageBox::question(this, tr("Save Changes?"),
- tr("You made changes to the current executable, do you want to save them?"),
- QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel);
- if (res == QMessageBox::Cancel) {
- return;
- } else if (res == QMessageBox::Yes) {
- saveExecutable();
- // the executable list returned to callers is generated from the user data in the widgets,
- // NOT the list we just saved
- refreshExecutablesWidget();
+void EditExecutablesDialog::on_closeButton_clicked() {
+ if (executableChanged()) {
+ QMessageBox::StandardButton res = QMessageBox::question(
+ this, tr("Save Changes?"), tr("You made changes to the current executable, do you want to save them?"),
+ QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel);
+ if (res == QMessageBox::Cancel) {
+ return;
+ } else if (res == QMessageBox::Yes) {
+ saveExecutable();
+ // the executable list returned to callers is generated from the user data in the widgets,
+ // NOT the list we just saved
+ refreshExecutablesWidget();
+ }
}
- }
- this->accept();
+ this->accept();
}
-void EditExecutablesDialog::on_executablesListBox_clicked(const QModelIndex &current)
-{
- if (current.isValid()) {
+void EditExecutablesDialog::on_executablesListBox_clicked(const QModelIndex& current) {
+ if (current.isValid()) {
- if (executableChanged()) {
- QMessageBox::StandardButton res = QMessageBox::question(this, tr("Save Changes?"),
- tr("You made changes to the current executable, do you want to save them?"),
- QMessageBox::Yes | QMessageBox::No);
- if (res == QMessageBox::Yes) {
- saveExecutable();
+ if (executableChanged()) {
+ QMessageBox::StandardButton res = QMessageBox::question(
+ this, tr("Save Changes?"), tr("You made changes to the current executable, do you want to save them?"),
+ QMessageBox::Yes | QMessageBox::No);
+ if (res == QMessageBox::Yes) {
+ saveExecutable();
+
+ // This is necessary if we're adding a new item, but it doesn't look very nice.
+ // Ideally we'd end up with the correct row displayed
+ ui->executablesListBox->selectionModel()->clearSelection();
+ ui->executablesListBox->selectionModel()->select(current, QItemSelectionModel::SelectCurrent);
+ QTimer::singleShot(50, this, SLOT(delayedRefresh()));
+ return;
+ }
+ }
- //This is necessary if we're adding a new item, but it doesn't look very nice.
- //Ideally we'd end up with the correct row displayed
ui->executablesListBox->selectionModel()->clearSelection();
ui->executablesListBox->selectionModel()->select(current, QItemSelectionModel::SelectCurrent);
- QTimer::singleShot(50, this, SLOT(delayedRefresh()));
- return;
- }
- }
-
- ui->executablesListBox->selectionModel()->clearSelection();
- ui->executablesListBox->selectionModel()->select(current, QItemSelectionModel::SelectCurrent);
- m_CurrentItem = ui->executablesListBox->item(current.row());
+ m_CurrentItem = ui->executablesListBox->item(current.row());
- Executable const &selectedExecutable(m_ExecutablesList.find(m_CurrentItem->text()));
+ Executable const& selectedExecutable(m_ExecutablesList.find(m_CurrentItem->text()));
- ui->titleEdit->setText(selectedExecutable.m_Title);
- ui->binaryEdit->setText(QDir::toNativeSeparators(selectedExecutable.m_BinaryInfo.absoluteFilePath()));
- ui->argumentsEdit->setText(selectedExecutable.m_Arguments);
- ui->workingDirEdit->setText(QDir::toNativeSeparators(selectedExecutable.m_WorkingDirectory));
- ui->removeButton->setEnabled(selectedExecutable.isCustom());
- ui->overwriteAppIDBox->setChecked(!selectedExecutable.m_SteamAppID.isEmpty());
- if (!selectedExecutable.m_SteamAppID.isEmpty()) {
- ui->appIDOverwriteEdit->setText(selectedExecutable.m_SteamAppID);
- } else {
- ui->appIDOverwriteEdit->clear();
- }
- ui->useAppIconCheckBox->setChecked(selectedExecutable.usesOwnIcon());
+ ui->titleEdit->setText(selectedExecutable.m_Title);
+ ui->binaryEdit->setText(QDir::toNativeSeparators(selectedExecutable.m_BinaryInfo.absoluteFilePath()));
+ ui->argumentsEdit->setText(selectedExecutable.m_Arguments);
+ ui->workingDirEdit->setText(QDir::toNativeSeparators(selectedExecutable.m_WorkingDirectory));
+ ui->removeButton->setEnabled(selectedExecutable.isCustom());
+ ui->overwriteAppIDBox->setChecked(!selectedExecutable.m_SteamAppID.isEmpty());
+ if (!selectedExecutable.m_SteamAppID.isEmpty()) {
+ ui->appIDOverwriteEdit->setText(selectedExecutable.m_SteamAppID);
+ } else {
+ ui->appIDOverwriteEdit->clear();
+ }
+ ui->useAppIconCheckBox->setChecked(selectedExecutable.usesOwnIcon());
- int index = -1;
+ int index = -1;
- QString customOverwrite = m_Profile->setting("custom_overwrites", selectedExecutable.m_Title).toString();
- if (!customOverwrite.isEmpty()) {
- index = ui->newFilesModBox->findText(customOverwrite);
- qDebug("find %s -> %d", qPrintable(customOverwrite), index);
- }
+ QString customOverwrite = m_Profile->setting("custom_overwrites", selectedExecutable.m_Title).toString();
+ if (!customOverwrite.isEmpty()) {
+ index = ui->newFilesModBox->findText(customOverwrite);
+ qDebug("find %s -> %d", qPrintable(customOverwrite), index);
+ }
- ui->newFilesModCheckBox->setChecked(index != -1);
- if (index != -1) {
- ui->newFilesModBox->setCurrentIndex(index);
+ ui->newFilesModCheckBox->setChecked(index != -1);
+ if (index != -1) {
+ ui->newFilesModBox->setCurrentIndex(index);
+ }
}
- }
}
-void EditExecutablesDialog::on_newFilesModCheckBox_toggled(bool checked)
-{
- ui->newFilesModBox->setEnabled(checked);
-}
+void EditExecutablesDialog::on_newFilesModCheckBox_toggled(bool checked) { ui->newFilesModBox->setEnabled(checked); }