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);
 | 
			
		||||
        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(",");
 | 
			
		||||
 | 
			
		||||
@ -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(",");
 | 
			
		||||
@ -435,7 +436,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"),
 | 
			
		||||
@ -446,7 +447,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();
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@ -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<QString>();
 | 
			
		||||
  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();
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user