|
5 | 5 | * |
6 | 6 | */ |
7 | 7 | #include "layoutmodel.h" |
| 8 | +#include <QHash> |
| 9 | +#include <QObject> |
| 10 | +#include <QStandardItem> |
| 11 | +#include <QStringList> |
| 12 | +#include <Qt> |
| 13 | +#include <fcitx-utils/i18n.h> |
| 14 | +#include <fcitxqtdbustypes.h> |
| 15 | +#include <utility> |
8 | 16 |
|
9 | | -namespace fcitx { |
10 | | -namespace kcm { |
| 17 | +namespace fcitx::kcm { |
11 | 18 |
|
12 | 19 | LanguageModel::LanguageModel(QObject *parent) : QStandardItemModel(parent) { |
13 | 20 | setItemRoleNames({{Qt::DisplayRole, "name"}, {Qt::UserRole, "language"}}); |
14 | 21 | } |
15 | 22 |
|
16 | | -QString LanguageModel::language(int row) const { |
| 23 | +void LanguageModel::append(const QString &name, const QString &language) { |
| 24 | + QStandardItem *item = new QStandardItem(name); |
| 25 | + item->setData(language, Qt::UserRole); |
| 26 | + appendRow(item); |
| 27 | +} |
| 28 | + |
| 29 | +QString SortedLanguageModel::language(int row) const { |
17 | 30 | auto idx = index(row, 0); |
18 | 31 | if (idx.isValid()) { |
19 | 32 | return idx.data(Qt::UserRole).toString(); |
20 | 33 | } |
21 | 34 | return QString(); |
22 | 35 | } |
23 | 36 |
|
24 | | -void LanguageModel::append(const QString &name, const QString &language) { |
25 | | - QStandardItem *item = new QStandardItem(name); |
26 | | - item->setData(language, Qt::UserRole); |
27 | | - appendRow(item); |
28 | | -} |
29 | | - |
30 | 37 | void LanguageFilterModel::setLanguage(const QString &language) { |
31 | 38 | if (language_ != language) { |
32 | 39 | language_ = language; |
@@ -56,8 +63,9 @@ bool LanguageFilterModel::filterAcceptsRow(int source_row, |
56 | 63 | } |
57 | 64 | bool LanguageFilterModel::lessThan(const QModelIndex &left, |
58 | 65 | const QModelIndex &right) const { |
59 | | - return data(left, Qt::DisplayRole).toString() < |
60 | | - data(right, Qt::DisplayRole).toString(); |
| 66 | + return QString::localeAwareCompare(left.data(Qt::DisplayRole).toString(), |
| 67 | + right.data(Qt::DisplayRole).toString()) < |
| 68 | + 0; |
61 | 69 | } |
62 | 70 |
|
63 | 71 | QHash<int, QByteArray> LayoutInfoModel::roleNames() const { |
@@ -157,5 +165,4 @@ int VariantInfoModel::rowCount(const QModelIndex &parent) const { |
157 | 165 | return variantInfo_.size(); |
158 | 166 | } |
159 | 167 |
|
160 | | -} // namespace kcm |
161 | | -} // namespace fcitx |
| 168 | +} // namespace fcitx::kcm |
0 commit comments