make device name filter case insensitive

This commit is contained in:
Michael Zanetti 2019-12-11 11:26:34 +01:00
parent dd56f57205
commit 1ea57cedee
3 changed files with 14 additions and 6 deletions

View File

@ -140,7 +140,7 @@ void CodeCompletion::update()
} }
blockText.remove(QRegExp(".*deviceId: \"")); blockText.remove(QRegExp(".*deviceId: \""));
m_model->update(entries); m_model->update(entries);
m_proxy->setFilter(blockText); m_proxy->setFilter(blockText, false);
emit hint(); emit hint();
return; return;
} }

View File

@ -75,10 +75,11 @@ QString CompletionProxyModel::filter() const
return m_filter; return m_filter;
} }
void CompletionProxyModel::setFilter(const QString &filter) void CompletionProxyModel::setFilter(const QString &filter, bool caseSensitive)
{ {
if (m_filter != filter) { if (m_filter != filter || m_filterCaseSensitive != caseSensitive) {
m_filter = filter; m_filter = filter;
m_filterCaseSensitive = caseSensitive;
emit filterChanged(); emit filterChanged();
invalidateFilter(); invalidateFilter();
emit countChanged(); emit countChanged();
@ -89,8 +90,14 @@ bool CompletionProxyModel::filterAcceptsRow(int source_row, const QModelIndex &)
{ {
if (!m_filter.isEmpty()) { if (!m_filter.isEmpty()) {
CompletionModel::Entry entry = m_model->get(source_row); CompletionModel::Entry entry = m_model->get(source_row);
if (!entry.displayText.startsWith(m_filter) && !entry.text.startsWith(m_filter)) { if (m_filterCaseSensitive) {
return false; if (!entry.displayText.startsWith(m_filter) && !entry.text.startsWith(m_filter)) {
return false;
}
} else {
if (!entry.displayText.toLower().startsWith(m_filter.toLower()) && !entry.text.toLower().startsWith(m_filter.toLower())) {
return false;
}
} }
} }
return true; return true;

View File

@ -48,7 +48,7 @@ public:
CompletionModel::Entry get(int index); CompletionModel::Entry get(int index);
QString filter() const; QString filter() const;
void setFilter(const QString &filter); void setFilter(const QString &filter, bool caseSensitive = true);
protected: protected:
bool filterAcceptsRow(int source_row, const QModelIndex &/*source_parent*/) const override; bool filterAcceptsRow(int source_row, const QModelIndex &/*source_parent*/) const override;
@ -62,6 +62,7 @@ signals:
private: private:
CompletionModel *m_model = nullptr; CompletionModel *m_model = nullptr;
QString m_filter; QString m_filter;
bool m_filterCaseSensitive = true;
}; };