Skip to content

Commit 1df1307

Browse files
committed
UI: Remove usage of controls UI elements in OBSBasic
OBSBasic now no longer rely on UI element from the controls dock.
1 parent 038d6fb commit 1df1307

3 files changed

Lines changed: 47 additions & 26 deletions

File tree

UI/basic-controls.hpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,6 @@ class OBSBasicControlsButton;
1313
class OBSBasicControls : public QFrame {
1414
Q_OBJECT
1515

16-
// XXX: OBSBasic still require access to buttons state
17-
friend class OBSBasic;
18-
1916
OBSBasic *main;
2017
std::unique_ptr<Ui::OBSBasicControls> ui;
2118

UI/window-basic-main.cpp

Lines changed: 43 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -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

98479867
void 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

98859905
void 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

99209940
void OBSBasic::PauseToggled()
99219941
{
9922-
if (!controls->pauseButton || !outputHandler ||
9942+
if (!IsRecordingPausable() || !outputHandler ||
99239943
!outputHandler->fileOutput)
99249944
return;
99259945

UI/window-basic-main.hpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -636,6 +636,10 @@ class OBSBasic : public OBSMainWindow {
636636

637637
float GetDevicePixelRatio();
638638

639+
bool streamActionEnabled = true;
640+
bool recordingEnabled = false;
641+
bool recordingPaused = false;
642+
639643
bool IsRecordingPausable();
640644

641645
public slots:

0 commit comments

Comments
 (0)