mirror of
https://git.sr.ht/~thestr4ng3r/chiaki
synced 2025-08-14 18:57:07 -07:00
Move Audio Settings above About in GUI (#392)
This commit is contained in:
parent
a12f130dc6
commit
fc5306cfdd
1 changed files with 30 additions and 30 deletions
|
@ -90,6 +90,36 @@ SettingsDialog::SettingsDialog(Settings *settings, QWidget *parent) : QDialog(pa
|
|||
connect(disconnect_action_combo_box, SIGNAL(currentIndexChanged(int)), this, SLOT(DisconnectActionSelected()));
|
||||
|
||||
general_layout->addRow(tr("Action on Disconnect:"), disconnect_action_combo_box);
|
||||
|
||||
audio_device_combo_box = new QComboBox(this);
|
||||
audio_device_combo_box->addItem(tr("Auto"));
|
||||
auto current_audio_device = settings->GetAudioOutDevice();
|
||||
if(!current_audio_device.isEmpty())
|
||||
{
|
||||
// temporarily add the selected device before async fetching is done
|
||||
audio_device_combo_box->addItem(current_audio_device, current_audio_device);
|
||||
audio_device_combo_box->setCurrentIndex(1);
|
||||
}
|
||||
connect(audio_device_combo_box, QOverload<int>::of(&QComboBox::activated), this, [this](){
|
||||
this->settings->SetAudioOutDevice(audio_device_combo_box->currentData().toString());
|
||||
});
|
||||
|
||||
// do this async because it's slow, assuming availableDevices() is thread-safe
|
||||
auto audio_devices_future = QtConcurrent::run([]() {
|
||||
return QAudioDeviceInfo::availableDevices(QAudio::AudioOutput);
|
||||
});
|
||||
auto audio_devices_future_watcher = new QFutureWatcher<QList<QAudioDeviceInfo>>(this);
|
||||
connect(audio_devices_future_watcher, &QFutureWatcher<QList<QAudioDeviceInfo>>::finished, this, [this, audio_devices_future_watcher, settings]() {
|
||||
auto available_devices = audio_devices_future_watcher->result();
|
||||
while(audio_device_combo_box->count() > 1) // remove all but "Auto"
|
||||
audio_device_combo_box->removeItem(1);
|
||||
for (QAudioDeviceInfo di : available_devices)
|
||||
audio_device_combo_box->addItem(di.deviceName(), di.deviceName());
|
||||
int audio_out_device_index = audio_device_combo_box->findData(settings->GetAudioOutDevice());
|
||||
audio_device_combo_box->setCurrentIndex(audio_out_device_index < 0 ? 0 : audio_out_device_index);
|
||||
});
|
||||
audio_devices_future_watcher->setFuture(audio_devices_future);
|
||||
general_layout->addRow(tr("Audio Output Device:"), audio_device_combo_box);
|
||||
|
||||
auto about_button = new QPushButton(tr("About Chiaki"), this);
|
||||
general_layout->addRow(about_button);
|
||||
|
@ -153,36 +183,6 @@ SettingsDialog::SettingsDialog(Settings *settings, QWidget *parent) : QDialog(pa
|
|||
audio_buffer_size_edit->setPlaceholderText(tr("Default (%1)").arg(settings->GetAudioBufferSizeDefault()));
|
||||
connect(audio_buffer_size_edit, &QLineEdit::textEdited, this, &SettingsDialog::AudioBufferSizeEdited);
|
||||
|
||||
audio_device_combo_box = new QComboBox(this);
|
||||
audio_device_combo_box->addItem(tr("Auto"));
|
||||
auto current_audio_device = settings->GetAudioOutDevice();
|
||||
if(!current_audio_device.isEmpty())
|
||||
{
|
||||
// temporarily add the selected device before async fetching is done
|
||||
audio_device_combo_box->addItem(current_audio_device, current_audio_device);
|
||||
audio_device_combo_box->setCurrentIndex(1);
|
||||
}
|
||||
connect(audio_device_combo_box, QOverload<int>::of(&QComboBox::activated), this, [this](){
|
||||
this->settings->SetAudioOutDevice(audio_device_combo_box->currentData().toString());
|
||||
});
|
||||
|
||||
// do this async because it's slow, assuming availableDevices() is thread-safe
|
||||
auto audio_devices_future = QtConcurrent::run([]() {
|
||||
return QAudioDeviceInfo::availableDevices(QAudio::AudioOutput);
|
||||
});
|
||||
auto audio_devices_future_watcher = new QFutureWatcher<QList<QAudioDeviceInfo>>(this);
|
||||
connect(audio_devices_future_watcher, &QFutureWatcher<QList<QAudioDeviceInfo>>::finished, this, [this, audio_devices_future_watcher, settings]() {
|
||||
auto available_devices = audio_devices_future_watcher->result();
|
||||
while(audio_device_combo_box->count() > 1) // remove all but "Auto"
|
||||
audio_device_combo_box->removeItem(1);
|
||||
for (QAudioDeviceInfo di : available_devices)
|
||||
audio_device_combo_box->addItem(di.deviceName(), di.deviceName());
|
||||
int audio_out_device_index = audio_device_combo_box->findData(settings->GetAudioOutDevice());
|
||||
audio_device_combo_box->setCurrentIndex(audio_out_device_index < 0 ? 0 : audio_out_device_index);
|
||||
});
|
||||
audio_devices_future_watcher->setFuture(audio_devices_future);
|
||||
general_layout->addRow(tr("Audio Output Device:"), audio_device_combo_box);
|
||||
|
||||
// Decode Settings
|
||||
|
||||
auto decode_settings = new QGroupBox(tr("Decode Settings"));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue