mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-07-19 17:49:14 +00:00
UI: Do not store prop. view string data as QString
The internal data of a property value would be converted to QString and Qt would inevitably try to convert the characters to another encoding, causing the internal data to possibly become invalid. Instead, use QByteArray to treat it as nothing more than a byte array.
This commit is contained in:
parent
5d16e44899
commit
6eea842d9a
|
@ -401,7 +401,7 @@ static void AddComboItem(QComboBox *combo, obs_property_t *prop,
|
|||
var = QVariant::fromValue<double>(val);
|
||||
|
||||
} else if (format == OBS_COMBO_FORMAT_STRING) {
|
||||
var = obs_property_list_item_string(prop, idx);
|
||||
var = QByteArray(obs_property_list_item_string(prop, idx));
|
||||
}
|
||||
|
||||
combo->addItem(QT_UTF8(name), var);
|
||||
|
@ -475,10 +475,11 @@ QWidget *OBSPropertiesView::AddList(obs_property_t *prop, bool &warning)
|
|||
string value = from_obs_data(settings, name, format);
|
||||
|
||||
if (format == OBS_COMBO_FORMAT_STRING &&
|
||||
type == OBS_COMBO_TYPE_EDITABLE)
|
||||
type == OBS_COMBO_TYPE_EDITABLE) {
|
||||
combo->lineEdit()->setText(QT_UTF8(value.c_str()));
|
||||
else
|
||||
idx = combo->findData(QT_UTF8(value.c_str()));
|
||||
} else {
|
||||
idx = combo->findData(QByteArray(value.c_str()));
|
||||
}
|
||||
|
||||
if (type == OBS_COMBO_TYPE_EDITABLE)
|
||||
return NewWidget(prop, combo,
|
||||
|
@ -1520,7 +1521,7 @@ void WidgetInfo::ListChanged(const char *setting)
|
|||
QVariant data;
|
||||
|
||||
if (type == OBS_COMBO_TYPE_EDITABLE) {
|
||||
data = combo->currentText();
|
||||
data = combo->currentText().toUtf8();
|
||||
} else {
|
||||
int index = combo->currentIndex();
|
||||
if (index != -1)
|
||||
|
@ -1542,7 +1543,7 @@ void WidgetInfo::ListChanged(const char *setting)
|
|||
break;
|
||||
case OBS_COMBO_FORMAT_STRING:
|
||||
obs_data_set_string(view->settings, setting,
|
||||
QT_TO_UTF8(data.toString()));
|
||||
data.toByteArray().constData());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue