diff --git a/src/completion/kateargumenthintmodel.cpp b/src/completion/kateargumenthintmodel.cpp --- a/src/completion/kateargumenthintmodel.cpp +++ b/src/completion/kateargumenthintmodel.cpp @@ -83,7 +83,7 @@ } for (QMap >::const_iterator it = m_depths.constBegin(); it != m_depths.constEnd(); ++it) { - foreach (int row, *it) { + for (int row : *it) { m_rows.push_front(row); //Insert filtered in reversed order } m_rows.push_front(-it.key()); diff --git a/src/completion/katecompletionconfig.cpp b/src/completion/katecompletionconfig.cpp --- a/src/completion/katecompletionconfig.cpp +++ b/src/completion/katecompletionconfig.cpp @@ -105,9 +105,9 @@ QList mergedColumns; if (!m_model->columnMerges().isEmpty()) { - foreach (const QList &list, m_model->columnMerges()) { + for (const QList &list : m_model->columnMerges()) { bool first = true; - foreach (int column, list) { + for (int column : list) { QTreeWidgetItem *item = new QTreeWidgetItem(ui->columnMergeTree, column); item->setText(0, KateCompletionModel::columnName(column) + QStringLiteral(" %1").arg(column)); item->setCheckState(1, first ? Qt::Unchecked : Qt::Checked); diff --git a/src/completion/katecompletionmodel.cpp b/src/completion/katecompletionmodel.cpp --- a/src/completion/katecompletionmodel.cpp +++ b/src/completion/katecompletionmodel.cpp @@ -195,7 +195,7 @@ if ( role == Qt::TextAlignmentRole ) { if (isColumnMergingEnabled() && !m_columnMerges.isEmpty()) { int c = 0; - foreach (const QList &list, m_columnMerges) { + for (const QList &list : qAsConst(m_columnMerges)) { if (index.column() < c + list.size()) { c += list.size(); continue; @@ -216,7 +216,7 @@ // Merge text for column merging if (role == Qt::DisplayRole && !m_columnMerges.isEmpty() && isColumnMergingEnabled()) { QString text; - foreach (int column, m_columnMerges[index.column()]) { + for (int column : m_columnMerges[index.column()]) { QModelIndex sourceIndex = mapToSource(createIndex(index.row(), column, index.internalPointer())); text.append(sourceIndex.data(role).toString()); } @@ -226,7 +226,7 @@ if (role == CodeCompletionModel::HighlightingMethod) { //Return that we are doing custom-highlighting of one of the sub-strings does it. Unfortunately internal highlighting does not work for the other substrings. - foreach (int column, m_columnMerges[index.column()]) { + for (int column : m_columnMerges[index.column()]) { QModelIndex sourceIndex = mapToSource(createIndex(index.row(), column, index.internalPointer())); QVariant method = sourceIndex.data(CodeCompletionModel::HighlightingMethod); if (method.type() == QVariant::Int && method.toInt() == CodeCompletionModel::CustomHighlighting) { @@ -240,14 +240,17 @@ QStringList strings; //Collect strings - foreach (int column, m_columnMerges[index.column()]) { + const auto& columns = m_columnMerges[index.column()]; + strings.reserve(columns.size()); + for (int column : columns) { strings << mapToSource(createIndex(index.row(), column, index.internalPointer())).data(Qt::DisplayRole).toString(); } QList highlights; //Collect custom-highlightings - foreach (int column, m_columnMerges[index.column()]) { + highlights.reserve(columns.size()); + for (int column : columns) { highlights << mapToSource(createIndex(index.row(), column, index.internalPointer())).data(CodeCompletionModel::CustomHighlight).toList(); } @@ -1033,7 +1036,7 @@ groups += m_ungrouped; for (Group *g : qAsConst(groups)) { - foreach (const Item &item, g->filtered) { + for (const Item &item : qAsConst(g->filtered)) { uint startPos = m_currentMatch[item.sourceRow().first].length(); const QString candidate = item.name().mid(startPos); @@ -1244,7 +1247,7 @@ qCDebug(LOG_KTE) << "Model groupless, " << m_ungrouped->filtered.count() << " items."; } else { qCDebug(LOG_KTE) << "Model grouped (" << m_rowTable.count() << " groups):"; - foreach (Group *g, m_rowTable) { + for (Group *g : qAsConst(m_rowTable)) { qCDebug(LOG_KTE) << "Group" << g << "count" << g->filtered.count(); } } @@ -1347,19 +1350,19 @@ /* Debugging - dump column merge list QString columnMerge; - foreach (const QList& list, m_columnMerges) { + for (const QList &list : m_columnMerges) { columnMerge += '['; - foreach (int column, list) { + for (int column : list) { columnMerge += QString::number(column) + QLatin1Char(' '); } columnMerge += "] "; } qCDebug(LOG_KTE) << k_funcinfo << columnMerge;*/ int c = 0; - foreach (const QList &list, m_columnMerges) { - foreach (int column, list) { + for (const QList &list : m_columnMerges) { + for (int column : list) { if (column == sourceColumn) { return c; } @@ -1800,10 +1803,11 @@ void KateCompletionModel::Group::refilter() { filtered.clear(); - foreach (const Item &i, prefilter) + for (const Item &i : qAsConst(prefilter)) { if (!i.isFiltered()) { filtered.append(i); } + } } bool KateCompletionModel::Item::filter() @@ -1842,7 +1846,7 @@ uint KateCompletionModel::filteredItemCount() const { uint ret = 0; - foreach (Group *group, m_rowTable) { + for (Group *group : m_rowTable) { ret += group->filtered.size(); } @@ -1857,8 +1861,8 @@ bool doHide = false; CodeCompletionModel *hideModel = nullptr; - foreach (Group *group, m_rowTable) - foreach (const Item &item, group->filtered) + for (Group *group : qAsConst(m_rowTable)) { + for (const Item &item : qAsConst(group->filtered)) { if (item.haveExactMatch()) { KTextEditor::CodeCompletionModelControllerInterface *iface3 = dynamic_cast(item.sourceRow().first); bool hide = false; @@ -1873,14 +1877,18 @@ hideModel = item.sourceRow().first; } } + } + } if (doHide) { // Check if all other visible items are from the same model - foreach (Group *group, m_rowTable) - foreach (const Item &item, group->filtered) + for (Group *group : qAsConst(m_rowTable)) { + for (const Item &item : qAsConst(group->filtered)) { if (item.sourceRow().first != hideModel) { return false; } + } + } } return doHide; @@ -1944,7 +1952,7 @@ // First, check if all letters are contained in the word in the right order. int atLetter = 0; - foreach (const QChar c, typed) { + for (const QChar c : typed) { while (toLowerIfInsensitive(c, caseSensitive) != toLowerIfInsensitive(word.at(atLetter), caseSensitive)) { atLetter += 1; if (atLetter >= word.size()) { @@ -2177,7 +2185,7 @@ m_completionModels = models; - foreach (KTextEditor::CodeCompletionModel *model, models) { + for (KTextEditor::CodeCompletionModel *model : models) { connect(model, SIGNAL(rowsInserted(QModelIndex,int,int)), SLOT(slotRowsInserted(QModelIndex,int,int))); connect(model, SIGNAL(rowsRemoved(QModelIndex,int,int)), SLOT(slotRowsRemoved(QModelIndex,int,int))); connect(model, SIGNAL(modelReset()), SLOT(slotModelReset())); @@ -2228,7 +2236,7 @@ void filter(QList &items) { QList temp; - foreach (const Item &item, items) { + for (const Item &item : qAsConst(items)) { QHash::const_iterator it = had.constFind(item.name()); if (it != had.constEnd() && *it != item.sourceRow().first && m_needShadowing.contains(item.sourceRow().first)) { continue; diff --git a/src/completion/katecompletionwidget.cpp b/src/completion/katecompletionwidget.cpp --- a/src/completion/katecompletionwidget.cpp +++ b/src/completion/katecompletionwidget.cpp @@ -355,10 +355,12 @@ QList models = (modelsToStart.isEmpty() ? m_sourceModels : modelsToStart); - foreach (KTextEditor::CodeCompletionModel *model, m_completionRanges.keys()) + for (auto it = m_completionRanges.keyBegin(), end = m_completionRanges.keyEnd(); it != end; ++it) { + KTextEditor::CodeCompletionModel *model = *it; if (!models.contains(model)) { models << model; } + } if (!m_filterInstalled) { if (!QApplication::activeWindow()) { @@ -944,10 +946,11 @@ KTextEditor::MovingRange *ret = m_completionRanges.begin()->range; - foreach (const CompletionRange &range, m_completionRanges) + for (const CompletionRange &range : m_completionRanges) { if (range.range->start() > ret->start()) { ret = range.range; } + } return ret; } if (m_completionRanges.contains(model)) { diff --git a/src/completion/katewordcompletion.cpp b/src/completion/katewordcompletion.cpp --- a/src/completion/katewordcompletion.cpp +++ b/src/completion/katewordcompletion.cpp @@ -553,7 +553,7 @@ { QString partial = matches.first(); - foreach (const QString ¤t, matches) { + for (const QString ¤t : matches) { if (!current.startsWith(partial)) { while (partial.length() > lead) { partial.remove(partial.length() - 1, 1);