mirror of
https://git.sr.ht/~thestr4ng3r/chiaki
synced 2025-08-19 21:13:12 -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()));
|
connect(disconnect_action_combo_box, SIGNAL(currentIndexChanged(int)), this, SLOT(DisconnectActionSelected()));
|
||||||
|
|
||||||
general_layout->addRow(tr("Action on Disconnect:"), disconnect_action_combo_box);
|
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);
|
auto about_button = new QPushButton(tr("About Chiaki"), this);
|
||||||
general_layout->addRow(about_button);
|
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()));
|
audio_buffer_size_edit->setPlaceholderText(tr("Default (%1)").arg(settings->GetAudioBufferSizeDefault()));
|
||||||
connect(audio_buffer_size_edit, &QLineEdit::textEdited, this, &SettingsDialog::AudioBufferSizeEdited);
|
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
|
// Decode Settings
|
||||||
|
|
||||||
auto decode_settings = new QGroupBox(tr("Decode Settings"));
|
auto decode_settings = new QGroupBox(tr("Decode Settings"));
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue