ソースを参照

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.
Sebastian Beckmann 4 ヶ月 前
コミット
f9aec57091
1 ファイル変更14 行追加14 行削除
  1. 14 14
      frontend/settings/OBSBasicSettings.cpp

+ 14 - 14
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);