From f9aec57091e5fe291893de50ab27d6bf281edf1f Mon Sep 17 00:00:00 2001 From: Sebastian Beckmann Date: Sat, 30 Aug 2025 22:12:08 +0200 Subject: [PATCH] frontend: Avoid unnecessary QString<->const char * conversions SetComboByName, SetComboByValue and SetInvalidValue all pass their parameters to Qt functions which only take QStrings. As a consequence, we have cases we'd convert a QString to a const char* to call these functions, only for the functions to implicitly convert them back into QStrings. We can avoid this by passing QStrings directly. In cases where we did actually pass const chars, the (implicit) conversion now just takes place earlier. --- frontend/settings/OBSBasicSettings.cpp | 28 +++++++++++++------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/frontend/settings/OBSBasicSettings.cpp b/frontend/settings/OBSBasicSettings.cpp index eb323b652..fa8b46364 100644 --- a/frontend/settings/OBSBasicSettings.cpp +++ b/frontend/settings/OBSBasicSettings.cpp @@ -113,16 +113,16 @@ static inline bool WidgetChanged(QWidget *widget) return widget->property("changed").toBool(); } -static inline void SetComboByName(QComboBox *combo, const char *name) +static inline void SetComboByName(QComboBox *combo, const QString &name) { - int idx = combo->findText(QT_UTF8(name)); + int idx = combo->findText(name); if (idx != -1) combo->setCurrentIndex(idx); } -static inline bool SetComboByValue(QComboBox *combo, const char *name) +static inline bool SetComboByValue(QComboBox *combo, const QString &name) { - int idx = combo->findData(QT_UTF8(name)); + int idx = combo->findData(name); if (idx != -1) { combo->setCurrentIndex(idx); return true; @@ -131,7 +131,7 @@ static inline bool SetComboByValue(QComboBox *combo, const char *name) return false; } -static inline bool SetInvalidValue(QComboBox *combo, const char *name, const char *data = nullptr) +static inline bool SetInvalidValue(QComboBox *combo, const QString &name, const QVariant &data) { combo->insertItem(0, name, data); @@ -1749,7 +1749,7 @@ void OBSBasicSettings::LoadSimpleOutputSettings() if (!IsSurround(speakers)) RestrictResetBitrates({ui->simpleOutputABitrate}, 320); - SetComboByName(ui->simpleOutputABitrate, std::to_string(audioBitrate).c_str()); + SetComboByName(ui->simpleOutputABitrate, QString::number(audioBitrate)); ui->simpleOutAdvanced->setChecked(advanced); ui->simpleOutCustom->setText(custom); @@ -2144,12 +2144,12 @@ void OBSBasicSettings::LoadAdvOutputAudioSettings() 320); } - SetComboByName(ui->advOutTrack1Bitrate, std::to_string(track1Bitrate).c_str()); - SetComboByName(ui->advOutTrack2Bitrate, std::to_string(track2Bitrate).c_str()); - SetComboByName(ui->advOutTrack3Bitrate, std::to_string(track3Bitrate).c_str()); - SetComboByName(ui->advOutTrack4Bitrate, std::to_string(track4Bitrate).c_str()); - SetComboByName(ui->advOutTrack5Bitrate, std::to_string(track5Bitrate).c_str()); - SetComboByName(ui->advOutTrack6Bitrate, std::to_string(track6Bitrate).c_str()); + SetComboByName(ui->advOutTrack1Bitrate, QString::number(track1Bitrate)); + SetComboByName(ui->advOutTrack2Bitrate, QString::number(track2Bitrate)); + SetComboByName(ui->advOutTrack3Bitrate, QString::number(track3Bitrate)); + SetComboByName(ui->advOutTrack4Bitrate, QString::number(track4Bitrate)); + SetComboByName(ui->advOutTrack5Bitrate, QString::number(track5Bitrate)); + SetComboByName(ui->advOutTrack6Bitrate, QString::number(track6Bitrate)); ui->advOutTrack1Name->setText(name1); ui->advOutTrack2Name->setText(name2); @@ -2549,8 +2549,8 @@ void OBSBasicSettings::LoadAdvancedSettings() LoadRendererList(); - if (obs_audio_monitoring_available() && !SetComboByValue(ui->monitoringDevice, monDevId.toUtf8())) - SetInvalidValue(ui->monitoringDevice, monDevName.toUtf8(), monDevId.toUtf8()); + if (obs_audio_monitoring_available() && !SetComboByValue(ui->monitoringDevice, monDevId)) + SetInvalidValue(ui->monitoringDevice, monDevName, monDevId); ui->confirmOnExit->setChecked(confirmOnExit);