From e38d8f10a60dbacb03a62fa82513831c09ba870a Mon Sep 17 00:00:00 2001 From: Clayton Groeneveld Date: Thu, 14 Jan 2021 19:54:20 -0600 Subject: [PATCH] UI: Add virtual camera to system tray Adds ability to start and stop the virtual camera from the system tray. --- UI/window-basic-main.cpp | 9 +++++++++ UI/window-basic-main.hpp | 1 + 2 files changed, 10 insertions(+) diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp index f8845a7af..ad5cb578e 100644 --- a/UI/window-basic-main.cpp +++ b/UI/window-basic-main.cpp @@ -6298,6 +6298,7 @@ void OBSBasic::OnVirtualCamStart() return; vcamButton->setText(QTStr("Basic.Main.StopVirtualCam")); + sysTrayVirtualCam->setText(QTStr("Basic.Main.StopVirtualCam")); vcamButton->setChecked(true); if (api) @@ -6314,6 +6315,7 @@ void OBSBasic::OnVirtualCamStop(int) return; vcamButton->setText(QTStr("Basic.Main.StartVirtualCam")); + sysTrayVirtualCam->setText(QTStr("Basic.Main.StartVirtualCam")); vcamButton->setChecked(false); if (api) @@ -7605,6 +7607,8 @@ void OBSBasic::SystemTrayInit() trayIcon.data()); sysTrayReplayBuffer = new QAction(QTStr("Basic.Main.StartReplayBuffer"), trayIcon.data()); + sysTrayVirtualCam = new QAction(QTStr("Basic.Main.StartVirtualCam"), + trayIcon.data()); exit = new QAction(QTStr("Exit"), trayIcon.data()); trayMenu = new QMenu; @@ -7620,6 +7624,7 @@ void OBSBasic::SystemTrayInit() trayMenu->addAction(sysTrayStream); trayMenu->addAction(sysTrayRecord); trayMenu->addAction(sysTrayReplayBuffer); + trayMenu->addAction(sysTrayVirtualCam); trayMenu->addAction(exit); trayIcon->setContextMenu(trayMenu); trayIcon->show(); @@ -7627,6 +7632,8 @@ void OBSBasic::SystemTrayInit() if (outputHandler && !outputHandler->replayBuffer) sysTrayReplayBuffer->setEnabled(false); + sysTrayVirtualCam->setEnabled(vcamEnabled); + connect(trayIcon.data(), SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(IconActivated(QSystemTrayIcon::ActivationReason))); @@ -7637,6 +7644,8 @@ void OBSBasic::SystemTrayInit() SLOT(on_recordButton_clicked())); connect(sysTrayReplayBuffer.data(), &QAction::triggered, this, &OBSBasic::ReplayBufferClicked); + connect(sysTrayVirtualCam.data(), &QAction::triggered, this, + &OBSBasic::VCamButtonClicked); connect(exit, SIGNAL(triggered()), this, SLOT(close())); } diff --git a/UI/window-basic-main.hpp b/UI/window-basic-main.hpp index 4f0ad6b3a..8738d060b 100644 --- a/UI/window-basic-main.hpp +++ b/UI/window-basic-main.hpp @@ -265,6 +265,7 @@ private: QPointer sysTrayStream; QPointer sysTrayRecord; QPointer sysTrayReplayBuffer; + QPointer sysTrayVirtualCam; QPointer showHide; QPointer exit; QPointer trayMenu; -- GitLab