mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-09-01 15:49:51 +08: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:
@@ -2162,21 +2162,17 @@
|
||||
<item row="7" column="1">
|
||||
<widget class="QLineEdit" name="simpleOutMuxCustom"/>
|
||||
</item>
|
||||
<item row="8" column="1">
|
||||
<widget class="QCheckBox" name="simpleReplayBuf">
|
||||
<property name="text">
|
||||
<string>Basic.Settings.Output.UseReplayBuffer</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="replayBufferGroupBox">
|
||||
<widget class="QGroupBox" name="simpleReplayBuf">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>ReplayBuffer</string>
|
||||
</property>
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -168,6 +168,8 @@ private:
|
||||
const char *value);
|
||||
void SaveCheckBox(QAbstractButton *widget, const char *section,
|
||||
const char *value, bool invert = false);
|
||||
void SaveGroupBox(QGroupBox *widget, const char *section,
|
||||
const char *value);
|
||||
void SaveEdit(QLineEdit *widget, const char *section,
|
||||
const char *value);
|
||||
void SaveSpinBox(QSpinBox *widget, const char *section,
|
||||
|
||||
Reference in New Issue
Block a user