@@ -273,6 +273,30 @@ OBSBasic::OBSBasic(QWidget *parent)
273273 ui->previewDisabledWidget ->setVisible (false );
274274 ui->contextContainer ->setStyle (new OBSContextBarProxyStyle);
275275
276+ // Setup streaming connections
277+ connect (this , &OBSBasic::StreamingStarting, this ,
278+ [this ] { this ->streamActionEnabled = false ; });
279+ connect (this , &OBSBasic::StreamingStarted, this ,
280+ [this ] { this ->streamActionEnabled = true ; });
281+ connect (this , &OBSBasic::StreamingStopped, this ,
282+ [this ] { this ->streamActionEnabled = true ; });
283+
284+ // Setup recording connections
285+ connect (this , &OBSBasic::RecordingStartAborted, this ,
286+ [this ]() { this ->recordingEnabled = false ; });
287+ connect (this , &OBSBasic::RecordingStarted, this , [this ]() {
288+ this ->recordingEnabled = true ;
289+ this ->recordingPaused = false ;
290+ });
291+ connect (this , &OBSBasic::RecordingStopAborted, this ,
292+ [this ]() { this ->recordingEnabled = true ; });
293+ connect (this , &OBSBasic::RecordingStopped, this ,
294+ [this ]() { this ->recordingEnabled = false ; });
295+ connect (this , &OBSBasic::RecordingPaused, this ,
296+ [this ]() { this ->recordingPaused = true ; });
297+ connect (this , &OBSBasic::RecordingUnpaused, this ,
298+ [this ]() { this ->recordingPaused = false ; });
299+
276300 /* Add controls dock */
277301 controls = new OBSBasicControls (this );
278302 controlsDock = new OBSDock (this );
@@ -2408,14 +2432,12 @@ void OBSBasic::CreateHotkeys()
24082432 streamingHotkeys = obs_hotkey_pair_register_frontend (
24092433 " OBSBasic.StartStreaming" , Str (" Basic.Main.StartStreaming" ),
24102434 " OBSBasic.StopStreaming" , Str (" Basic.Main.StopStreaming" ),
2411- MAKE_CALLBACK (
2412- !basic.outputHandler ->StreamingActive () &&
2413- basic.controls ->ui ->streamButton ->isEnabled (),
2414- basic.StartStreaming , " Starting stream" ),
2415- MAKE_CALLBACK (
2416- basic.outputHandler ->StreamingActive () &&
2417- basic.controls ->ui ->streamButton ->isEnabled (),
2418- basic.StopStreaming , " Stopping stream" ),
2435+ MAKE_CALLBACK (!basic.outputHandler ->StreamingActive () &&
2436+ basic.streamActionEnabled ,
2437+ basic.StartStreaming , " Starting stream" ),
2438+ MAKE_CALLBACK (basic.outputHandler ->StreamingActive () &&
2439+ basic.streamActionEnabled ,
2440+ basic.StopStreaming , " Stopping stream" ),
24192441 this , this );
24202442 LoadHotkeyPair (streamingHotkeys, " OBSBasic.StartStreaming" ,
24212443 " OBSBasic.StopStreaming" );
@@ -2435,26 +2457,24 @@ void OBSBasic::CreateHotkeys()
24352457 recordingHotkeys = obs_hotkey_pair_register_frontend (
24362458 " OBSBasic.StartRecording" , Str (" Basic.Main.StartRecording" ),
24372459 " OBSBasic.StopRecording" , Str (" Basic.Main.StopRecording" ),
2438- MAKE_CALLBACK (
2439- !basic.outputHandler ->RecordingActive () &&
2440- !basic.controls ->ui ->recordButton ->isChecked (),
2441- basic.StartRecording , " Starting recording" ),
2442- MAKE_CALLBACK (
2443- basic.outputHandler ->RecordingActive () &&
2444- basic.controls ->ui ->recordButton ->isChecked (),
2445- basic.StopRecording , " Stopping recording" ),
2460+ MAKE_CALLBACK (!basic.outputHandler ->RecordingActive () &&
2461+ !basic.recordingEnabled ,
2462+ basic.StartRecording , " Starting recording" ),
2463+ MAKE_CALLBACK (basic.outputHandler ->RecordingActive () &&
2464+ basic.recordingEnabled ,
2465+ basic.StopRecording , " Stopping recording" ),
24462466 this , this );
24472467 LoadHotkeyPair (recordingHotkeys, " OBSBasic.StartRecording" ,
24482468 " OBSBasic.StopRecording" );
24492469
24502470 pauseHotkeys = obs_hotkey_pair_register_frontend (
24512471 " OBSBasic.PauseRecording" , Str (" Basic.Main.PauseRecording" ),
24522472 " OBSBasic.UnpauseRecording" , Str (" Basic.Main.UnpauseRecording" ),
2453- MAKE_CALLBACK (basic.controls -> pauseButton &&
2454- !basic.controls -> pauseButton -> isChecked () ,
2473+ MAKE_CALLBACK (basic.IsRecordingPausable () &&
2474+ !basic.recordingPaused ,
24552475 basic.PauseRecording , " Pausing recording" ),
2456- MAKE_CALLBACK (basic.controls -> pauseButton &&
2457- basic.controls -> pauseButton -> isChecked () ,
2476+ MAKE_CALLBACK (basic.IsRecordingPausable () &&
2477+ basic.recordingPaused ,
24582478 basic.UnpauseRecording , " Unpausing recording" ),
24592479 this , this );
24602480 LoadHotkeyPair (pauseHotkeys, " OBSBasic.PauseRecording" ,
@@ -9846,7 +9866,7 @@ void OBSBasic::UpdatePatronJson(const QString &text, const QString &error)
98469866
98479867void OBSBasic::PauseRecording ()
98489868{
9849- if (!controls-> pauseButton || !outputHandler ||
9869+ if (!IsRecordingPausable () || !outputHandler ||
98509870 !outputHandler->fileOutput ||
98519871 os_atomic_load_bool (&recording_paused))
98529872 return ;
@@ -9884,7 +9904,7 @@ void OBSBasic::PauseRecording()
98849904
98859905void OBSBasic::UnpauseRecording ()
98869906{
9887- if (!controls-> pauseButton || !outputHandler ||
9907+ if (!IsRecordingPausable () || !outputHandler ||
98889908 !outputHandler->fileOutput ||
98899909 !os_atomic_load_bool (&recording_paused))
98909910 return ;
@@ -9919,7 +9939,7 @@ void OBSBasic::UnpauseRecording()
99199939
99209940void OBSBasic::PauseToggled ()
99219941{
9922- if (!controls-> pauseButton || !outputHandler ||
9942+ if (!IsRecordingPausable () || !outputHandler ||
99239943 !outputHandler->fileOutput )
99249944 return ;
99259945
0 commit comments