Rework SourceSelectionWidget to support widget caching

This commit is contained in:
WarmUpTill
2025-05-20 21:37:18 +02:00
committed by WarmUpTill
parent 3dd3f576c3
commit ba3e87a761
15 changed files with 125 additions and 78 deletions

View File

@@ -141,7 +141,7 @@ void MacroConditionGameCapture::SetupInitialState(obs_source_t *source)
calldata_free(&cd);
}
static QStringList getGameCaptureSourceNames()
static QStringList getGameCaptureSourcesList()
{
auto sourceEnum = [](void *param, obs_source_t *source) -> bool /* -- */
{
@@ -156,18 +156,16 @@ static QStringList getGameCaptureSourceNames()
QStringList list;
obs_enum_sources(sourceEnum, &list);
list.sort();
return list;
}
MacroConditionGameCaptureEdit::MacroConditionGameCaptureEdit(
QWidget *parent, std::shared_ptr<MacroConditionGameCapture> entryData)
: QWidget(parent),
_sources(new SourceSelectionWidget(this, QStringList(), true))
_sources(new SourceSelectionWidget(this, getGameCaptureSourcesList,
true))
{
auto sources = getGameCaptureSourceNames();
sources.sort();
_sources->SetSourceNameList(sources);
QWidget::connect(_sources,
SIGNAL(SourceChanged(const SourceSelection &)), this,
SLOT(SourceChanged(const SourceSelection &)));