提交 7c9d227f 编写于 作者: J jp9000

UI: Watch for refresh signal in source list

上级 6d0ef756
......@@ -184,6 +184,7 @@ public:
public slots:
inline void ReorderItems() { GetStm()->ReorderItems(); }
inline void RefreshItems() { GetStm()->SceneChanged(); }
void Remove(OBSSceneItem item);
void GroupSelectedItems();
void UngroupSelectedGroups();
......
......@@ -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);
......
......@@ -580,6 +580,7 @@ private slots:
void ToggleAlwaysOnTop();
void ReorderSources(OBSScene scene);
void RefreshSources(OBSScene scene);
void ProcessHotkey(obs_hotkey_id id, bool pressed);
......@@ -661,6 +662,7 @@ private slots:
private:
/* OBS Callbacks */
static void SceneReordered(void *data, calldata_t *params);
static void SceneRefreshed(void *data, calldata_t *params);
static void SceneItemAdded(void *data, calldata_t *params);
static void SceneItemSelected(void *data, calldata_t *params);
static void SceneItemDeselected(void *data, calldata_t *params);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册