@@ -282,6 +282,30 @@ OBSBasic::OBSBasic(QWidget *parent)
282
282
ui->previewDisabledWidget ->setVisible (false );
283
283
ui->contextContainer ->setStyle (new OBSContextBarProxyStyle);
284
284
285
+ // Setup streaming connections
286
+ connect (this , &OBSBasic::StreamingStarting, this ,
287
+ [this ] { this ->streamActionEnabled = false ; });
288
+ connect (this , &OBSBasic::StreamingStarted, this ,
289
+ [this ] { this ->streamActionEnabled = true ; });
290
+ connect (this , &OBSBasic::StreamingStopped, this ,
291
+ [this ] { this ->streamActionEnabled = true ; });
292
+
293
+ // Setup recording connections
294
+ connect (this , &OBSBasic::RecordingStartAborted, this ,
295
+ [this ]() { this ->recordingEnabled = false ; });
296
+ connect (this , &OBSBasic::RecordingStarted, this , [this ]() {
297
+ this ->recordingEnabled = true ;
298
+ this ->recordingPaused = false ;
299
+ });
300
+ connect (this , &OBSBasic::RecordingStopAborted, this ,
301
+ [this ]() { this ->recordingEnabled = true ; });
302
+ connect (this , &OBSBasic::RecordingStopped, this ,
303
+ [this ]() { this ->recordingEnabled = false ; });
304
+ connect (this , &OBSBasic::RecordingPaused, this ,
305
+ [this ]() { this ->recordingPaused = true ; });
306
+ connect (this , &OBSBasic::RecordingUnpaused, this ,
307
+ [this ]() { this ->recordingPaused = false ; });
308
+
285
309
/* Add controls dock */
286
310
controls = new OBSBasicControls (this );
287
311
controlsDock = new OBSDock (this );
@@ -2413,14 +2437,12 @@ void OBSBasic::CreateHotkeys()
2413
2437
streamingHotkeys = obs_hotkey_pair_register_frontend (
2414
2438
" OBSBasic.StartStreaming" , Str (" Basic.Main.StartStreaming" ),
2415
2439
" OBSBasic.StopStreaming" , Str (" Basic.Main.StopStreaming" ),
2416
- MAKE_CALLBACK (
2417
- !basic.outputHandler ->StreamingActive () &&
2418
- basic.controls ->ui ->streamButton ->isEnabled (),
2419
- basic.StartStreaming , " Starting stream" ),
2420
- MAKE_CALLBACK (
2421
- basic.outputHandler ->StreamingActive () &&
2422
- basic.controls ->ui ->streamButton ->isEnabled (),
2423
- basic.StopStreaming , " Stopping stream" ),
2440
+ MAKE_CALLBACK (!basic.outputHandler ->StreamingActive () &&
2441
+ basic.streamActionEnabled ,
2442
+ basic.StartStreaming , " Starting stream" ),
2443
+ MAKE_CALLBACK (basic.outputHandler ->StreamingActive () &&
2444
+ basic.streamActionEnabled ,
2445
+ basic.StopStreaming , " Stopping stream" ),
2424
2446
this , this );
2425
2447
LoadHotkeyPair (streamingHotkeys, " OBSBasic.StartStreaming" ,
2426
2448
" OBSBasic.StopStreaming" );
@@ -2440,26 +2462,24 @@ void OBSBasic::CreateHotkeys()
2440
2462
recordingHotkeys = obs_hotkey_pair_register_frontend (
2441
2463
" OBSBasic.StartRecording" , Str (" Basic.Main.StartRecording" ),
2442
2464
" OBSBasic.StopRecording" , Str (" Basic.Main.StopRecording" ),
2443
- MAKE_CALLBACK (
2444
- !basic.outputHandler ->RecordingActive () &&
2445
- !basic.controls ->ui ->recordButton ->isChecked (),
2446
- basic.StartRecording , " Starting recording" ),
2447
- MAKE_CALLBACK (
2448
- basic.outputHandler ->RecordingActive () &&
2449
- basic.controls ->ui ->recordButton ->isChecked (),
2450
- basic.StopRecording , " Stopping recording" ),
2465
+ MAKE_CALLBACK (!basic.outputHandler ->RecordingActive () &&
2466
+ !basic.recordingEnabled ,
2467
+ basic.StartRecording , " Starting recording" ),
2468
+ MAKE_CALLBACK (basic.outputHandler ->RecordingActive () &&
2469
+ basic.recordingEnabled ,
2470
+ basic.StopRecording , " Stopping recording" ),
2451
2471
this , this );
2452
2472
LoadHotkeyPair (recordingHotkeys, " OBSBasic.StartRecording" ,
2453
2473
" OBSBasic.StopRecording" );
2454
2474
2455
2475
pauseHotkeys = obs_hotkey_pair_register_frontend (
2456
2476
" OBSBasic.PauseRecording" , Str (" Basic.Main.PauseRecording" ),
2457
2477
" OBSBasic.UnpauseRecording" , Str (" Basic.Main.UnpauseRecording" ),
2458
- MAKE_CALLBACK (basic.controls -> pauseButton &&
2459
- !basic.controls -> pauseButton -> isChecked () ,
2478
+ MAKE_CALLBACK (basic.IsRecordingPausable () &&
2479
+ !basic.recordingPaused ,
2460
2480
basic.PauseRecording , " Pausing recording" ),
2461
- MAKE_CALLBACK (basic.controls -> pauseButton &&
2462
- basic.controls -> pauseButton -> isChecked () ,
2481
+ MAKE_CALLBACK (basic.IsRecordingPausable () &&
2482
+ basic.recordingPaused ,
2463
2483
basic.UnpauseRecording , " Unpausing recording" ),
2464
2484
this , this );
2465
2485
LoadHotkeyPair (pauseHotkeys, " OBSBasic.PauseRecording" ,
@@ -9852,7 +9872,7 @@ void OBSBasic::UpdatePatronJson(const QString &text, const QString &error)
9852
9872
9853
9873
void OBSBasic::PauseRecording ()
9854
9874
{
9855
- if (!controls-> pauseButton || !outputHandler ||
9875
+ if (!IsRecordingPausable () || !outputHandler ||
9856
9876
!outputHandler->fileOutput ||
9857
9877
os_atomic_load_bool (&recording_paused))
9858
9878
return ;
@@ -9890,7 +9910,7 @@ void OBSBasic::PauseRecording()
9890
9910
9891
9911
void OBSBasic::UnpauseRecording ()
9892
9912
{
9893
- if (!controls-> pauseButton || !outputHandler ||
9913
+ if (!IsRecordingPausable () || !outputHandler ||
9894
9914
!outputHandler->fileOutput ||
9895
9915
!os_atomic_load_bool (&recording_paused))
9896
9916
return ;
@@ -9925,7 +9945,7 @@ void OBSBasic::UnpauseRecording()
9925
9945
9926
9946
void OBSBasic::PauseToggled ()
9927
9947
{
9928
- if (!controls-> pauseButton || !outputHandler ||
9948
+ if (!IsRecordingPausable () || !outputHandler ||
9929
9949
!outputHandler->fileOutput )
9930
9950
return ;
9931
9951
0 commit comments