UI: Watch for refresh signal in source list

This commit is contained in:
jp9000
2020-02-07 16:44:10 -08:00
parent 6d0ef75663
commit 7c9d227f1e
3 changed files with 24 additions and 0 deletions

View File

@@ -2541,6 +2541,8 @@ void OBSBasic::AddScene(OBSSource source)
this),
std::make_shared<OBSSignal>(handler, "reorder",
OBSBasic::SceneReordered, this),
std::make_shared<OBSSignal>(handler, "refresh",
OBSBasic::SceneRefreshed, this),
});
item->setData(static_cast<int>(QtDataRole::OBSSignals),
@@ -3240,6 +3242,15 @@ void OBSBasic::ReorderSources(OBSScene scene)
SaveProject();
}
void OBSBasic::RefreshSources(OBSScene scene)
{
if (scene != GetCurrentScene() || ui->sources->IgnoreReorder())
return;
ui->sources->RefreshItems();
SaveProject();
}
/* OBS Callbacks */
void OBSBasic::SceneReordered(void *data, calldata_t *params)
@@ -3252,6 +3263,16 @@ void OBSBasic::SceneReordered(void *data, calldata_t *params)
Q_ARG(OBSScene, OBSScene(scene)));
}
void OBSBasic::SceneRefreshed(void *data, calldata_t *params)
{
OBSBasic *window = static_cast<OBSBasic *>(data);
obs_scene_t *scene = (obs_scene_t *)calldata_ptr(params, "scene");
QMetaObject::invokeMethod(window, "RefreshSources",
Q_ARG(OBSScene, OBSScene(scene)));
}
void OBSBasic::SceneItemAdded(void *data, calldata_t *params)
{
OBSBasic *window = static_cast<OBSBasic *>(data);