7#include "OCRLanguageModel.h"
15OCRLanguageModel::~OCRLanguageModel()
21 QHash<int, QByteArray> roles;
22 roles[NameRole] =
"name";
23 roles[CodeRole] =
"code";
24 roles[UseRole] =
"use";
28int OCRLanguageModel::rowCount(
const QModelIndex &)
const
30 return m_languages.
count();
35 if (!
index.isValid()) {
39 if (
index.row() >= m_languages.size() ||
index.row() < 0) {
45 return m_languages.at(
index.row()).name;
48 return m_languages.at(
index.row()).code;
51 return m_languages.at(
index.row()).use;
59 if (
index.row() >= 0 &&
index.row() < m_languages.size() && role == UseRole) {
66void OCRLanguageModel::setLanguages(
const std::vector<std::string> &availableLanguages)
70 for (
const auto &language : availableLanguages) {
72 if (languageCode != QStringLiteral(
"osd")) {
73 QLocale locale(languageCode.
left(2));
74 m_languages.append({locale.nativeLanguageName(), languageCode,
false});
80std::string OCRLanguageModel::getLanguagesString()
const
82 std::string languageCodes;
83 for (
int i = 0; i < m_languages.size(); i++) {
84 if (m_languages.at(i).use) {
85 if (languageCodes.size() > 1) {
86 languageCodes.append(
"+");
88 languageCodes.append(m_languages.at(i).code.toStdString());
91 if (languageCodes.empty() && m_languages.size() != 0) {
92 languageCodes.append(m_languages.constFirst().code.toStdString());
virtual QModelIndex index(int row, int column, const QModelIndex &parent) const const=0
qsizetype count() const const
QString fromLocal8Bit(QByteArrayView str)
QString left(qsizetype n) const const
bool toBool() const const