From bfe20de022776c4e9977b213ef084d6073123da2 Mon Sep 17 00:00:00 2001 From: in1tiate Date: Thu, 22 Apr 2021 19:56:42 -0500 Subject: [PATCH 1/4] set ini codecs to utf8 --- src/text_file_functions.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/text_file_functions.cpp b/src/text_file_functions.cpp index a671d618d..d1000a50c 100644 --- a/src/text_file_functions.cpp +++ b/src/text_file_functions.cpp @@ -277,6 +277,7 @@ QString AOApplication::read_design_ini(QString p_identifier, QString p_design_path) { QSettings settings(p_design_path, QSettings::IniFormat); + settings.setIniCodec("UTF-8"); QVariant value = settings.value(p_identifier); if (value.type() == QVariant::StringList) { return value.toStringList().join(","); @@ -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::IniFormat); settings.beginGroup(target_tag); + settings.setIniCodec("UTF-8"); QString value = settings.value(p_search_line).value(); settings.endGroup(); return value; @@ -541,6 +543,7 @@ QStringList AOApplication::read_ini_tags(QString p_path, QString target_tag) { QStringList r_values; QSettings settings(p_path, QSettings::IniFormat); + settings.setIniCodec("UTF-8"); if (!target_tag.isEmpty()) settings.beginGroup(target_tag); QStringList keys = settings.allKeys(); From da55bce63fc3c6aa96509b815f3fddbe54bae6d0 Mon Sep 17 00:00:00 2001 From: in1tiate Date: Thu, 22 Apr 2021 21:19:16 -0500 Subject: [PATCH 2/4] fix color config reading in Latin1 rather than Utf8 --- src/path_functions.cpp | 1 + src/text_file_functions.cpp | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/path_functions.cpp b/src/path_functions.cpp index 51073494b..26e3a7cb8 100644 --- a/src/path_functions.cpp +++ b/src/path_functions.cpp @@ -173,6 +173,7 @@ QString AOApplication::get_config_value(QString p_identifier, QString p_config, p = get_case_sensitive_path(p); if (file_exists(p)) { QSettings settings(p, QSettings::IniFormat); + settings.setIniCodec("UTF-8"); QVariant value = settings.value(p_identifier); if (value.type() == QVariant::StringList) { // qDebug() << "got" << p << "is a string list, returning" << value.toStringList().join(","); diff --git a/src/text_file_functions.cpp b/src/text_file_functions.cpp index d1000a50c..0bbb90b20 100644 --- a/src/text_file_functions.cpp +++ b/src/text_file_functions.cpp @@ -278,6 +278,7 @@ QString AOApplication::read_design_ini(QString p_identifier, { QSettings settings(p_design_path, QSettings::IniFormat); settings.setIniCodec("UTF-8"); + // FIXME: we can't do the above because it makes the character "?" invisible in IC chat. Why QVariant value = settings.value(p_identifier); if (value.type() == QVariant::StringList) { return value.toStringList().join(","); @@ -436,7 +437,7 @@ QString AOApplication::get_chat_markup(QString p_identifier, QString p_chat) // New Chadly method QString value = get_config_value(p_identifier, "chat_config.ini", current_theme, get_subtheme(), default_theme, p_chat); if (!value.isEmpty()) - return value.toLatin1(); + return value.toUtf8(); // Backwards ass compatibility QStringList backwards_paths{get_theme_path("misc/" + p_chat + "/config.ini"), @@ -447,7 +448,7 @@ QString AOApplication::get_chat_markup(QString p_identifier, QString p_chat) for (const QString &p : backwards_paths) { QString value = read_design_ini(p_identifier, p); if (!value.isEmpty()) { - return value.toLatin1(); + return value.toUtf8(); } } From 4064d15efc8ed0be42ddec471cbec332b7aa8175 Mon Sep 17 00:00:00 2001 From: in1tiate <32779090+in1tiate@users.noreply.github.com> Date: Fri, 23 Apr 2021 02:16:48 -0500 Subject: [PATCH 3/4] remove old comment --- src/text_file_functions.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/text_file_functions.cpp b/src/text_file_functions.cpp index 0bbb90b20..af4c232cb 100644 --- a/src/text_file_functions.cpp +++ b/src/text_file_functions.cpp @@ -278,7 +278,6 @@ QString AOApplication::read_design_ini(QString p_identifier, { QSettings settings(p_design_path, QSettings::IniFormat); settings.setIniCodec("UTF-8"); - // FIXME: we can't do the above because it makes the character "?" invisible in IC chat. Why QVariant value = settings.value(p_identifier); if (value.type() == QVariant::StringList) { return value.toStringList().join(","); From 9d15cc821c930094f19f1f0783e3e958a1a04b2e Mon Sep 17 00:00:00 2001 From: Crystalwarrior Date: Fri, 23 Apr 2021 15:44:14 +0300 Subject: [PATCH 4/4] Fix last instance of Latin1 conversion instead of Utf8 --- src/text_file_functions.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/text_file_functions.cpp b/src/text_file_functions.cpp index af4c232cb..1df1e41f0 100644 --- a/src/text_file_functions.cpp +++ b/src/text_file_functions.cpp @@ -477,7 +477,7 @@ QString AOApplication::get_court_sfx(QString p_identifier, QString p_misc) { QString value = get_config_value(p_identifier, "courtroom_sounds.ini", current_theme, get_subtheme(), default_theme, p_misc); if (!value.isEmpty()) - return value.toLatin1(); + return value.toUtf8(); return ""; }