diff options
author | Juho Annunen <juho.annunen@qt.io> | 2017-10-11 13:30:52 +0300 |
---|---|---|
committer | Sami Nurmenniemi <sami.nurmenniemi@qt.io> | 2017-11-22 10:40:45 +0000 |
commit | 3895b8504f65346a1de19aa1ceb9570175337283 (patch) | |
tree | 3c97b2b57874bc1d3932350b4db7a779ddd80840 /src/localesettings | |
parent | 61e9e8c83e817b3692beae03bd8e683d247207b0 (diff) |
Update API and settings UI
Implemented new UI design for Settings and minor changes to API
Task-number: QTBUG-63091
Change-Id: Id72e20b53bc33ca0a3068d1e9b664fc5836a1cda
Reviewed-by: Kari Oikarinen <kari.oikarinen@qt.io>
Reviewed-by: Teemu Holappa <teemu.holappa@qt.io>
Diffstat (limited to 'src/localesettings')
-rw-r--r-- | src/localesettings/localefiltermodel.cpp | 9 | ||||
-rw-r--r-- | src/localesettings/localefiltermodel.h | 1 | ||||
-rw-r--r-- | src/localesettings/localemodel.cpp | 14 | ||||
-rw-r--r-- | src/localesettings/localemodel.h | 2 |
4 files changed, 26 insertions, 0 deletions
diff --git a/src/localesettings/localefiltermodel.cpp b/src/localesettings/localefiltermodel.cpp index d45fac6..b0535f5 100644 --- a/src/localesettings/localefiltermodel.cpp +++ b/src/localesettings/localefiltermodel.cpp @@ -89,3 +89,12 @@ QVariant LocaleFilterModel::itemFromRow(const int row) const return QVariant(); } + +int LocaleFilterModel::indexForCountry(const QString &country) const +{ + QAbstractItemModel *model = this->sourceModel(); + LocaleModel *localModel = qobject_cast<LocaleModel*>(model); + QModelIndex i = localModel->indexForCountry(country); + QModelIndex ret = mapFromSource(i); + return ret.row(); +} diff --git a/src/localesettings/localefiltermodel.h b/src/localesettings/localefiltermodel.h index 3e768ea..1ddcb9c 100644 --- a/src/localesettings/localefiltermodel.h +++ b/src/localesettings/localefiltermodel.h @@ -45,6 +45,7 @@ public: QString filter() const; void setFilter(const QString& aFilter); Q_INVOKABLE QVariant itemFromRow(const int row) const; + Q_INVOKABLE int indexForCountry(const QString &country) const; Q_SIGNALS: void filterChanged(); private: diff --git a/src/localesettings/localemodel.cpp b/src/localesettings/localemodel.cpp index b5a934b..a5249e8 100644 --- a/src/localesettings/localemodel.cpp +++ b/src/localesettings/localemodel.cpp @@ -83,6 +83,8 @@ void LocaleModel::modelReady() beginResetModel(); sort(0); endResetModel(); + + emit ready(); } void LocaleModel::generateModel(LocaleModel* model) @@ -158,3 +160,15 @@ void LocaleModel::sort(int column, Qt::SortOrder order) Q_UNUSED(order); std::sort(m_items.begin(), m_items.end(), LocaleModel::variantLessThan); } + +QModelIndex LocaleModel::indexForCountry(const QString &country) const +{ + for (int i = 0; i < m_items.count(); i++) { + LocaleItem *item = m_items.at(i); + if (item->country() == country || + item->language() == country) { + return index(i); + } + } + return QModelIndex(); +} diff --git a/src/localesettings/localemodel.h b/src/localesettings/localemodel.h index 2dcbe87..fac0b94 100644 --- a/src/localesettings/localemodel.h +++ b/src/localesettings/localemodel.h @@ -67,6 +67,7 @@ public: QHash<int, QByteArray> roleNames() const; void sort(int column, Qt::SortOrder order=Qt::AscendingOrder); static bool variantLessThan(const LocaleItem* v1, const LocaleItem* v2); + QModelIndex indexForCountry(const QString &country) const; enum Roles { Language = Qt::UserRole + 1, @@ -78,6 +79,7 @@ public: Q_SIGNALS: void addItem(LocaleItem* item); + void ready(); private Q_SLOTS: void addNewItem(QObject* item); |