Bugfix: calling SetPreviewScene with an unknown source doesn't errors

This commit is contained in:
Palakis 2017-04-23 12:09:58 +02:00
parent 82d74fcb2f
commit 9ddfad99ea
3 changed files with 14 additions and 4 deletions

View File

@ -334,7 +334,7 @@ obs_scene_t* Utils::GetPreviewScene()
return nullptr;
}
void Utils::SetPreviewScene(const char* name)
bool Utils::SetPreviewScene(const char* name)
{
if (IsPreviewModeActive())
{
@ -342,7 +342,14 @@ void Utils::SetPreviewScene(const char* name)
QList<QListWidgetItem*> matchingItems = sceneList->findItems(name, Qt::MatchExactly);
if (matchingItems.count() > 0)
{
sceneList->setCurrentItem(matchingItems.first());
return true;
}
else
{
return false;
}
}
}

View File

@ -59,7 +59,7 @@ class Utils
static void TogglePreviewMode();
static obs_scene_t* GetPreviewScene();
static void SetPreviewScene(const char* name);
static bool SetPreviewScene(const char* name);
static void TransitionToProgram();
static const char* OBSVersionString();

View File

@ -943,9 +943,12 @@ void WSRequestHandler::HandleSetPreviewScene(WSRequestHandler *req)
}
const char* scene_name = obs_data_get_string(req->data, "scene-name");
Utils::SetPreviewScene(scene_name);
bool success = Utils::SetPreviewScene(scene_name);
req->SendOKResponse();
if (success)
req->SendOKResponse();
else
req->SendErrorResponse("specified scene doesn't exist");
}
void WSRequestHandler::HandleTransitionToProgram(WSRequestHandler *req)