From 00af9da2457d97e566ebf5978c099409b7d43e2f Mon Sep 17 00:00:00 2001 From: Lioncash Date: Tue, 2 Oct 2018 19:31:31 -0400 Subject: [PATCH 1/4] configure_input: Make analog mapping strings translatable These strings are user-facing, so they should be specified as translatable with tr(). --- src/citra_qt/configuration/configure_input.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/citra_qt/configuration/configure_input.cpp b/src/citra_qt/configuration/configure_input.cpp index 58961a86f9..1a356d4be9 100644 --- a/src/citra_qt/configuration/configure_input.cpp +++ b/src/citra_qt/configuration/configure_input.cpp @@ -148,9 +148,9 @@ ConfigureInput::ConfigureInput(QWidget* parent) } } connect(analog_map_stick[analog_id], &QPushButton::released, [=]() { - QMessageBox::information( - this, "Information", - "After pressing OK, first move your joystick horizontally, and then vertically."); + QMessageBox::information(this, tr("Information"), + tr("After pressing OK, first move your joystick horizontally, " + "and then vertically.")); handleClick( analog_map_stick[analog_id], [=](const Common::ParamPackage& params) { analogs_param[analog_id] = params; }, From 97e8354fb06746e633155153f5bb60c548c9d4d5 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Tue, 2 Oct 2018 19:45:09 -0400 Subject: [PATCH 2/4] configure_audio: Add disambiguation comment for the volume percentage string Disambiguates what the string represents to help translators more easily understand what it is that they're translating. While we're at it, we can move the code to its own function, so that we don't need to specify the same string twice. --- src/citra_qt/configuration/configure_audio.cpp | 11 +++++++---- src/citra_qt/configuration/configure_audio.h | 1 + 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/citra_qt/configuration/configure_audio.cpp b/src/citra_qt/configuration/configure_audio.cpp index 0aee1cb5e3..98191fbe4c 100644 --- a/src/citra_qt/configuration/configure_audio.cpp +++ b/src/citra_qt/configuration/configure_audio.cpp @@ -19,9 +19,8 @@ ConfigureAudio::ConfigureAudio(QWidget* parent) ui->output_sink_combo_box->addItem(sink_detail.id); } - connect(ui->volume_slider, &QSlider::valueChanged, [this] { - ui->volume_indicator->setText(tr("%1 %").arg(ui->volume_slider->sliderPosition())); - }); + connect(ui->volume_slider, &QSlider::valueChanged, this, + &ConfigureAudio::setVolumeIndicatorText); this->setConfiguration(); connect(ui->output_sink_combo_box, @@ -57,7 +56,11 @@ void ConfigureAudio::setConfiguration() { ui->audio_device_combo_box->setCurrentIndex(new_device_index); ui->volume_slider->setValue(Settings::values.volume * ui->volume_slider->maximum()); - ui->volume_indicator->setText(tr("%1 %").arg(ui->volume_slider->sliderPosition())); + setVolumeIndicatorText(ui->volume_slider->sliderPosition()); +} + +void ConfigureAudio::setVolumeIndicatorText(int percentage) { + ui->volume_indicator->setText(tr("%1%", "Volume percentage (e.g. 50%)").arg(percentage)); } void ConfigureAudio::applyConfiguration() { diff --git a/src/citra_qt/configuration/configure_audio.h b/src/citra_qt/configuration/configure_audio.h index d4790db5c3..714634ce04 100644 --- a/src/citra_qt/configuration/configure_audio.h +++ b/src/citra_qt/configuration/configure_audio.h @@ -26,6 +26,7 @@ public slots: private: void setConfiguration(); + void setVolumeIndicatorText(int percentage); std::unique_ptr ui; }; From 2a612f7bd483a4a169dc5cabee10b3aa10e0af66 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Tue, 2 Oct 2018 19:50:48 -0400 Subject: [PATCH 3/4] configure_audio: Use QString::fromStdString() for converting audio device names This ensures that the proper codec will always be used no matter what. It also avoids relying on ASCII conversions. --- src/citra_qt/configuration/configure_audio.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/citra_qt/configuration/configure_audio.cpp b/src/citra_qt/configuration/configure_audio.cpp index 98191fbe4c..8a20fd5cae 100644 --- a/src/citra_qt/configuration/configure_audio.cpp +++ b/src/citra_qt/configuration/configure_audio.cpp @@ -79,10 +79,10 @@ void ConfigureAudio::updateAudioDevices(int sink_index) { ui->audio_device_combo_box->clear(); ui->audio_device_combo_box->addItem(AudioCore::auto_device_name); - std::string sink_id = ui->output_sink_combo_box->itemText(sink_index).toStdString(); - std::vector device_list = AudioCore::GetSinkDetails(sink_id).list_devices(); + const std::string sink_id = ui->output_sink_combo_box->itemText(sink_index).toStdString(); + const std::vector device_list = AudioCore::GetSinkDetails(sink_id).list_devices(); for (const auto& device : device_list) { - ui->audio_device_combo_box->addItem(device.c_str()); + ui->audio_device_combo_box->addItem(QString::fromStdString(device)); } } From be534b9388dfe4e40afc2051999370645a4ba381 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Tue, 2 Oct 2018 20:17:14 -0400 Subject: [PATCH 4/4] configure_audio: Move combo box index setting to their own functions Keeps the individual behaviors in their own functions, and cleanly separate. We can also do a little better by converting the relevant IDs within the core to a QString only once, instead of converting every string into a std::string. --- .../configuration/configure_audio.cpp | 34 +++++++++++++------ src/citra_qt/configuration/configure_audio.h | 2 ++ 2 files changed, 25 insertions(+), 11 deletions(-) diff --git a/src/citra_qt/configuration/configure_audio.cpp b/src/citra_qt/configuration/configure_audio.cpp index 8a20fd5cae..0ab5a3ae47 100644 --- a/src/citra_qt/configuration/configure_audio.cpp +++ b/src/citra_qt/configuration/configure_audio.cpp @@ -31,32 +31,44 @@ ConfigureAudio::ConfigureAudio(QWidget* parent) ConfigureAudio::~ConfigureAudio() {} void ConfigureAudio::setConfiguration() { + setOutputSinkFromSinkID(); + + // The device list cannot be pre-populated (nor listed) until the output sink is known. + updateAudioDevices(ui->output_sink_combo_box->currentIndex()); + + setAudioDeviceFromDeviceID(); + + ui->toggle_audio_stretching->setChecked(Settings::values.enable_audio_stretching); + ui->volume_slider->setValue(Settings::values.volume * ui->volume_slider->maximum()); + setVolumeIndicatorText(ui->volume_slider->sliderPosition()); +} + +void ConfigureAudio::setOutputSinkFromSinkID() { int new_sink_index = 0; + + const QString sink_id = QString::fromStdString(Settings::values.sink_id); for (int index = 0; index < ui->output_sink_combo_box->count(); index++) { - if (ui->output_sink_combo_box->itemText(index).toStdString() == Settings::values.sink_id) { + if (ui->output_sink_combo_box->itemText(index) == sink_id) { new_sink_index = index; break; } } + ui->output_sink_combo_box->setCurrentIndex(new_sink_index); +} - ui->toggle_audio_stretching->setChecked(Settings::values.enable_audio_stretching); - - // The device list cannot be pre-populated (nor listed) until the output sink is known. - updateAudioDevices(new_sink_index); - +void ConfigureAudio::setAudioDeviceFromDeviceID() { int new_device_index = -1; + + const QString device_id = QString::fromStdString(Settings::values.audio_device_id); for (int index = 0; index < ui->audio_device_combo_box->count(); index++) { - if (ui->audio_device_combo_box->itemText(index).toStdString() == - Settings::values.audio_device_id) { + if (ui->audio_device_combo_box->itemText(index) == device_id) { new_device_index = index; break; } } - ui->audio_device_combo_box->setCurrentIndex(new_device_index); - ui->volume_slider->setValue(Settings::values.volume * ui->volume_slider->maximum()); - setVolumeIndicatorText(ui->volume_slider->sliderPosition()); + ui->audio_device_combo_box->setCurrentIndex(new_device_index); } void ConfigureAudio::setVolumeIndicatorText(int percentage) { diff --git a/src/citra_qt/configuration/configure_audio.h b/src/citra_qt/configuration/configure_audio.h index 714634ce04..03f2c70c3e 100644 --- a/src/citra_qt/configuration/configure_audio.h +++ b/src/citra_qt/configuration/configure_audio.h @@ -26,6 +26,8 @@ public slots: private: void setConfiguration(); + void setOutputSinkFromSinkID(); + void setAudioDeviceFromDeviceID(); void setVolumeIndicatorText(int percentage); std::unique_ptr ui;