diff --git a/UI/window-basic-source-select.cpp b/UI/window-basic-source-select.cpp index 5e2dafb43..2705678f7 100644 --- a/UI/window-basic-source-select.cpp +++ b/UI/window-basic-source-select.cpp @@ -408,6 +408,26 @@ OBSBasicSourceSelect::OBSBasicSourceSelect(OBSBasic *parent, const char *id_, installEventFilter(CreateShortcutFilter()); + connect(ui->createNew, &QRadioButton::pressed, [&]() { + QPushButton *button = + ui->buttonBox->button(QDialogButtonBox::Ok); + if (!button->isEnabled()) + button->setEnabled(true); + }); + connect(ui->selectExisting, &QRadioButton::pressed, [&]() { + QPushButton *button = + ui->buttonBox->button(QDialogButtonBox::Ok); + bool enabled = ui->sourceList->selectedItems().size() != 0; + if (button->isEnabled() != enabled) + button->setEnabled(enabled); + }); + connect(ui->sourceList, &QListWidget::itemSelectionChanged, [&]() { + QPushButton *button = + ui->buttonBox->button(QDialogButtonBox::Ok); + if (!button->isEnabled()) + button->setEnabled(true); + }); + if (strcmp(id_, "scene") == 0) { OBSBasic *main = reinterpret_cast(App()->GetMainWindow()); @@ -417,6 +437,7 @@ OBSBasicSourceSelect::OBSBasicSourceSelect(OBSBasic *parent, const char *id_, ui->createNew->setChecked(false); ui->createNew->setEnabled(false); ui->sourceName->setEnabled(false); + ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); int count = main->ui->scenes->count(); for (int i = 0; i < count; i++) {