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

@@ -219,6 +219,13 @@ static inline void populateSelectionTypeSelection(QComboBox *list)
}
}
static QStringList getMediaSourcesList()
{
auto sources = GetMediaSourceNames();
sources.sort();
return sources;
}
MacroActionMediaEdit::MacroActionMediaEdit(
QWidget *parent, std::shared_ptr<MacroActionMedia> entryData)
: QWidget(parent),
@@ -229,15 +236,12 @@ MacroActionMediaEdit::MacroActionMediaEdit(
0, 100,
obs_module_text(
"AdvSceneSwitcher.action.media.seek.percentage.label"))),
_sources(new SourceSelectionWidget(this, QStringList(), true)),
_sources(new SourceSelectionWidget(this, getMediaSourcesList, true)),
_sceneItems(new SceneItemSelectionWidget(parent, false)),
_scenes(new SceneSelectionWidget(this, true, false, true, true, true))
{
populateActionSelection(_actions);
populateSelectionTypeSelection(_selectionTypes);
auto sources = GetMediaSourceNames();
sources.sort();
_sources->SetSourceNameList(sources);
QWidget::connect(_actions, SIGNAL(currentIndexChanged(int)), this,
SLOT(ActionChanged(int)));