mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-05-25 00:42:22 -04:00
UI: Make replay buffer settings always visible in Simple Mode
Instead of a checkbox in the recording group that reveals the replay buffer group when pressed, the replay buffer group now has its own toggle that enables or disables the replay buffer.
This commit is contained in:
@@ -437,7 +437,7 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent)
|
||||
HookWidget(ui->simpleOutRecTrack5, CHECK_CHANGED, OUTPUTS_CHANGED);
|
||||
HookWidget(ui->simpleOutRecTrack6, CHECK_CHANGED, OUTPUTS_CHANGED);
|
||||
HookWidget(ui->simpleOutMuxCustom, EDIT_CHANGED, OUTPUTS_CHANGED);
|
||||
HookWidget(ui->simpleReplayBuf, CHECK_CHANGED, OUTPUTS_CHANGED);
|
||||
HookWidget(ui->simpleReplayBuf, GROUP_CHANGED, OUTPUTS_CHANGED);
|
||||
HookWidget(ui->simpleRBSecMax, SCROLL_CHANGED, OUTPUTS_CHANGED);
|
||||
HookWidget(ui->simpleRBMegsMax, SCROLL_CHANGED, OUTPUTS_CHANGED);
|
||||
HookWidget(ui->advOutEncoder, COMBO_CHANGED, OUTPUTS_CHANGED);
|
||||
@@ -774,7 +774,7 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent)
|
||||
&OBSBasicSettings::SimpleRecordingEncoderChanged);
|
||||
connect(ui->ignoreRecommended, &QCheckBox::toggled, this,
|
||||
&OBSBasicSettings::SimpleRecordingEncoderChanged);
|
||||
connect(ui->simpleReplayBuf, &QCheckBox::toggled, this,
|
||||
connect(ui->simpleReplayBuf, &QGroupBox::toggled, this,
|
||||
&OBSBasicSettings::SimpleReplayBufferChanged);
|
||||
connect(ui->simpleOutputVBitrate, &QSpinBox::valueChanged, this,
|
||||
&OBSBasicSettings::SimpleReplayBufferChanged);
|
||||
@@ -1024,6 +1024,14 @@ void OBSBasicSettings::SaveSpinBox(QSpinBox *widget, const char *section,
|
||||
config_set_int(main->Config(), section, value, widget->value());
|
||||
}
|
||||
|
||||
void OBSBasicSettings::SaveGroupBox(QGroupBox *widget, const char *section,
|
||||
const char *value)
|
||||
{
|
||||
if (WidgetChanged(widget))
|
||||
config_set_bool(main->Config(), section, value,
|
||||
widget->isChecked());
|
||||
}
|
||||
|
||||
#define CS_PARTIAL_STR QTStr("Basic.Settings.Advanced.Video.ColorRange.Partial")
|
||||
#define CS_FULL_STR QTStr("Basic.Settings.Advanced.Video.ColorRange.Full")
|
||||
|
||||
@@ -2448,7 +2456,7 @@ void OBSBasicSettings::LoadOutputSettings()
|
||||
ui->simpleOutStrAEncoderLabel->setEnabled(false);
|
||||
ui->simpleOutStrAEncoder->setEnabled(false);
|
||||
ui->simpleRecordingGroupBox->setEnabled(false);
|
||||
ui->replayBufferGroupBox->setEnabled(false);
|
||||
ui->simpleReplayBuf->setEnabled(false);
|
||||
ui->advOutTopContainer->setEnabled(false);
|
||||
ui->advOutRecTopContainer->setEnabled(false);
|
||||
ui->advOutRecTypeContainer->setEnabled(false);
|
||||
@@ -3798,7 +3806,7 @@ void OBSBasicSettings::SaveOutputSettings()
|
||||
SaveComboData(ui->simpleOutRecAEncoder, "SimpleOutput",
|
||||
"RecAudioEncoder");
|
||||
SaveEdit(ui->simpleOutMuxCustom, "SimpleOutput", "MuxerCustom");
|
||||
SaveCheckBox(ui->simpleReplayBuf, "SimpleOutput", "RecRB");
|
||||
SaveGroupBox(ui->simpleReplayBuf, "SimpleOutput", "RecRB");
|
||||
SaveSpinBox(ui->simpleRBSecMax, "SimpleOutput", "RecRBTime");
|
||||
SaveSpinBox(ui->simpleRBMegsMax, "SimpleOutput", "RecRBSize");
|
||||
config_set_int(main->Config(), "SimpleOutput", "RecTracks",
|
||||
@@ -5460,12 +5468,16 @@ void OBSBasicSettings::UpdateAutomaticReplayBufferCheckboxes()
|
||||
{
|
||||
bool state = false;
|
||||
switch (ui->outputMode->currentIndex()) {
|
||||
case 0:
|
||||
case 0: {
|
||||
const bool lossless =
|
||||
ui->simpleOutRecQuality->currentData().toString() ==
|
||||
"Lossless";
|
||||
state = ui->simpleReplayBuf->isChecked();
|
||||
ui->simpleReplayBuf->setEnabled(
|
||||
!obs_frontend_replay_buffer_active());
|
||||
!obs_frontend_replay_buffer_active() && !lossless);
|
||||
break;
|
||||
case 1:
|
||||
}
|
||||
case 1: {
|
||||
state = ui->advReplayBuf->isChecked();
|
||||
bool customFFmpeg = ui->advOutRecType->currentIndex() == 1;
|
||||
ui->advReplayBuf->setEnabled(
|
||||
@@ -5473,6 +5485,7 @@ void OBSBasicSettings::UpdateAutomaticReplayBufferCheckboxes()
|
||||
ui->advReplayBufCustomFFmpeg->setVisible(customFFmpeg);
|
||||
break;
|
||||
}
|
||||
}
|
||||
ui->replayWhileStreaming->setEnabled(state);
|
||||
ui->keepReplayStreamStops->setEnabled(
|
||||
state && ui->replayWhileStreaming->isChecked());
|
||||
@@ -5481,8 +5494,6 @@ void OBSBasicSettings::UpdateAutomaticReplayBufferCheckboxes()
|
||||
void OBSBasicSettings::SimpleReplayBufferChanged()
|
||||
{
|
||||
QString qual = ui->simpleOutRecQuality->currentData().toString();
|
||||
bool replayBufferEnabled = ui->simpleReplayBuf->isChecked();
|
||||
bool lossless = qual == "Lossless";
|
||||
bool streamQuality = qual == "Stream";
|
||||
int abitrate = 0;
|
||||
|
||||
@@ -5539,8 +5550,6 @@ void OBSBasicSettings::SimpleReplayBufferChanged()
|
||||
}
|
||||
|
||||
ui->simpleRBEstimate->style()->polish(ui->simpleRBEstimate);
|
||||
ui->replayBufferGroupBox->setVisible(!lossless && replayBufferEnabled);
|
||||
ui->simpleReplayBuf->setVisible(!lossless);
|
||||
|
||||
UpdateAutomaticReplayBufferCheckboxes();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user