Browse Source

UI: Add frontend event for when OBS finishes loading

Colin Edwards 7 years ago
parent
commit
618a1c5faf
3 changed files with 13 additions and 1 deletions
  1. 2 1
      UI/obs-frontend-api/obs-frontend-api.h
  2. 9 0
      UI/window-basic-main.cpp
  3. 2 0
      UI/window-basic-main.hpp

+ 2 - 1
UI/obs-frontend-api/obs-frontend-api.h

@@ -42,7 +42,8 @@ enum obs_frontend_event {
 	OBS_FRONTEND_EVENT_STUDIO_MODE_DISABLED,
 	OBS_FRONTEND_EVENT_PREVIEW_SCENE_CHANGED,
 
-	OBS_FRONTEND_EVENT_SCENE_COLLECTION_CLEANUP
+	OBS_FRONTEND_EVENT_SCENE_COLLECTION_CLEANUP,
+	OBS_FRONTEND_EVENT_FINISHED_LOADING
 };
 
 /* ------------------------------------------------------------------------- */

+ 9 - 0
UI/window-basic-main.cpp

@@ -1611,9 +1611,17 @@ void OBSBasic::OBSInit()
 			Qt::QueuedConnection,
 			Q_ARG(QString, QT_UTF8(savePath)),
 			Q_ARG(int, 10));
+#else
+	OnFirstLoad();
 #endif
 }
 
+void OBSBasic::OnFirstLoad()
+{
+	if (api)
+		api->on_event(OBS_FRONTEND_EVENT_FINISHED_LOADING);
+}
+
 void OBSBasic::DeferredLoad(const QString &file, int requeueCount)
 {
 	if (--requeueCount > 0) {
@@ -1626,6 +1634,7 @@ void OBSBasic::DeferredLoad(const QString &file, int requeueCount)
 
 	Load(QT_TO_UTF8(file));
 	RefreshSceneCollections();
+	OnFirstLoad();
 }
 
 void OBSBasic::UpdateMultiviewProjectorMenu()

+ 2 - 0
UI/window-basic-main.hpp

@@ -223,6 +223,8 @@ private:
 
 	void          InitPrimitives();
 
+	void 	      OnFirstLoad();
+
 	OBSSceneItem  GetSceneItem(QListWidgetItem *item);
 	OBSSceneItem  GetCurrentSceneItem();