Fix Cyrillic characters not being read correctly from QSettings inis (#535)
* set ini codecs to utf8 * fix color config reading in Latin1 rather than Utf8
This commit is contained in:
parent
93c8befece
commit
66f2369af2
@ -173,6 +173,7 @@ QString AOApplication::get_config_value(QString p_identifier, QString p_config,
|
|||||||
p = get_case_sensitive_path(p);
|
p = get_case_sensitive_path(p);
|
||||||
if (file_exists(p)) {
|
if (file_exists(p)) {
|
||||||
QSettings settings(p, QSettings::IniFormat);
|
QSettings settings(p, QSettings::IniFormat);
|
||||||
|
settings.setIniCodec("UTF-8");
|
||||||
QVariant value = settings.value(p_identifier);
|
QVariant value = settings.value(p_identifier);
|
||||||
if (value.type() == QVariant::StringList) {
|
if (value.type() == QVariant::StringList) {
|
||||||
// qDebug() << "got" << p << "is a string list, returning" << value.toStringList().join(",");
|
// qDebug() << "got" << p << "is a string list, returning" << value.toStringList().join(",");
|
||||||
|
@ -277,6 +277,7 @@ QString AOApplication::read_design_ini(QString p_identifier,
|
|||||||
QString p_design_path)
|
QString p_design_path)
|
||||||
{
|
{
|
||||||
QSettings settings(p_design_path, QSettings::IniFormat);
|
QSettings settings(p_design_path, QSettings::IniFormat);
|
||||||
|
settings.setIniCodec("UTF-8");
|
||||||
QVariant value = settings.value(p_identifier);
|
QVariant value = settings.value(p_identifier);
|
||||||
if (value.type() == QVariant::StringList) {
|
if (value.type() == QVariant::StringList) {
|
||||||
return value.toStringList().join(",");
|
return value.toStringList().join(",");
|
||||||
@ -435,7 +436,7 @@ QString AOApplication::get_chat_markup(QString p_identifier, QString p_chat)
|
|||||||
// New Chadly method
|
// New Chadly method
|
||||||
QString value = get_config_value(p_identifier, "chat_config.ini", current_theme, get_subtheme(), default_theme, p_chat);
|
QString value = get_config_value(p_identifier, "chat_config.ini", current_theme, get_subtheme(), default_theme, p_chat);
|
||||||
if (!value.isEmpty())
|
if (!value.isEmpty())
|
||||||
return value.toLatin1();
|
return value.toUtf8();
|
||||||
|
|
||||||
// Backwards ass compatibility
|
// Backwards ass compatibility
|
||||||
QStringList backwards_paths{get_theme_path("misc/" + p_chat + "/config.ini"),
|
QStringList backwards_paths{get_theme_path("misc/" + p_chat + "/config.ini"),
|
||||||
@ -446,7 +447,7 @@ QString AOApplication::get_chat_markup(QString p_identifier, QString p_chat)
|
|||||||
for (const QString &p : backwards_paths) {
|
for (const QString &p : backwards_paths) {
|
||||||
QString value = read_design_ini(p_identifier, p);
|
QString value = read_design_ini(p_identifier, p);
|
||||||
if (!value.isEmpty()) {
|
if (!value.isEmpty()) {
|
||||||
return value.toLatin1();
|
return value.toUtf8();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -521,6 +522,7 @@ QString AOApplication::read_char_ini(QString p_char, QString p_search_line,
|
|||||||
QSettings settings(get_character_path(p_char, "char.ini"),
|
QSettings settings(get_character_path(p_char, "char.ini"),
|
||||||
QSettings::IniFormat);
|
QSettings::IniFormat);
|
||||||
settings.beginGroup(target_tag);
|
settings.beginGroup(target_tag);
|
||||||
|
settings.setIniCodec("UTF-8");
|
||||||
QString value = settings.value(p_search_line).value<QString>();
|
QString value = settings.value(p_search_line).value<QString>();
|
||||||
settings.endGroup();
|
settings.endGroup();
|
||||||
return value;
|
return value;
|
||||||
@ -541,6 +543,7 @@ QStringList AOApplication::read_ini_tags(QString p_path, QString target_tag)
|
|||||||
{
|
{
|
||||||
QStringList r_values;
|
QStringList r_values;
|
||||||
QSettings settings(p_path, QSettings::IniFormat);
|
QSettings settings(p_path, QSettings::IniFormat);
|
||||||
|
settings.setIniCodec("UTF-8");
|
||||||
if (!target_tag.isEmpty())
|
if (!target_tag.isEmpty())
|
||||||
settings.beginGroup(target_tag);
|
settings.beginGroup(target_tag);
|
||||||
QStringList keys = settings.allKeys();
|
QStringList keys = settings.allKeys();
|
||||||
|
Loading…
Reference in New Issue
Block a user