summaryrefslogtreecommitdiffstats
path: root/src/localesettings
diff options
context:
space:
mode:
authorJuho Annunen <juho.annunen@qt.io>2017-10-11 13:30:52 +0300
committerSami Nurmenniemi <sami.nurmenniemi@qt.io>2017-11-22 10:40:45 +0000
commit3895b8504f65346a1de19aa1ceb9570175337283 (patch)
tree3c97b2b57874bc1d3932350b4db7a779ddd80840 /src/localesettings
parent61e9e8c83e817b3692beae03bd8e683d247207b0 (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.cpp9
-rw-r--r--src/localesettings/localefiltermodel.h1
-rw-r--r--src/localesettings/localemodel.cpp14
-rw-r--r--src/localesettings/localemodel.h2
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);