QList<QString> ASpellChecker::getAllLanguages() const
{
	QList<QString> langs;

	AspellDictInfoList* dict_info_list = get_aspell_dict_info_list(config_);

	if (!aspell_dict_info_list_empty(dict_info_list))
	{
		AspellDictInfoEnumeration* dict_info_enum = aspell_dict_info_list_elements(dict_info_list);

		while (!aspell_dict_info_enumeration_at_end(dict_info_enum)) {
			const AspellDictInfo* dict_info = aspell_dict_info_enumeration_next(dict_info_enum);
			QString lang(dict_info -> code);
			if (lang.contains('_'))
				lang.truncate(lang.indexOf('_'));
			if (!langs.contains(lang)) {
				langs.append(lang);
			}
		}

		delete_aspell_dict_info_enumeration(dict_info_enum);
	}

	return langs;
}
Example #2
0
QSet<LanguageManager::LangId> ASpellChecker::getAllLanguages() const
{
    QSet<LanguageManager::LangId> langs;

    AspellDictInfoList* dict_info_list = get_aspell_dict_info_list(config_);

    if (!aspell_dict_info_list_empty(dict_info_list))
    {
        AspellDictInfoEnumeration* dict_info_enum = aspell_dict_info_list_elements(dict_info_list);

        while (!aspell_dict_info_enumeration_at_end(dict_info_enum)) {
            const AspellDictInfo* dict_info = aspell_dict_info_enumeration_next(dict_info_enum);
            auto id = LanguageManager::fromString(QString::fromLatin1(dict_info -> code));
            if (id.language) {
                langs.insert(id);
            }
        }

        delete_aspell_dict_info_enumeration(dict_info_enum);
    }

    return langs;
}