UI: Add virtual camera to system tray

Adds ability to start and stop the virtual camera from the
system tray.
This commit is contained in:
Clayton Groeneveld 2021-01-14 19:54:20 -06:00 committed by Jim
parent 2e82a6c7e8
commit e38d8f10a6
2 changed files with 10 additions and 0 deletions

View file

@ -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()));
}

View file

@ -265,6 +265,7 @@ private:
QPointer<QAction> sysTrayStream;
QPointer<QAction> sysTrayRecord;
QPointer<QAction> sysTrayReplayBuffer;
QPointer<QAction> sysTrayVirtualCam;
QPointer<QAction> showHide;
QPointer<QAction> exit;
QPointer<QMenu> trayMenu;