54 QString adjustedText = text;
55 if (text.startsWith(
"U+")) {
57 const uint code = text.mid(2).toUInt(&ok, 16);
59 adjustedText = QString::fromUcs4(&code, 1);
62 if (!
d->searchText.isEmpty() && !adjustedText.isEmpty() &&
d->searchText.toUcs4().first() == adjustedText.toUcs4().first()) {
65 d->searchText = adjustedText.isEmpty()? adjustedText: QString::fromUcs4(&adjustedText.toUcs4().first(), 1);
102 if (sourceParent.isValid())
return true;
103 const QModelIndex idx = sourceModel()->index(sourceRow, 0, sourceParent);
104 const QString
main = sourceModel()->data(idx).toString();
105 if (
main.isEmpty())
return false;
106 const uint firstChar =
main.toUcs4().first();
108 if (!
d->searchText.isEmpty()) {
109 const QString decomposition = QChar::decomposition(firstChar);
110 const uint searchFirst =
d->searchText.toUcs4().first();
111 return searchFirst == firstChar
112 || (!decomposition.isEmpty() && searchFirst == decomposition.toUcs4().first());
114 if (
d->filterIndex == 0)
return true;
116 return d->block.match(firstChar);
int main(int argc, char **argv)