/*! Inserts \a count columns into the model at position \a column. The \a parent parameter must always be an invalid QModelIndex, since the model does not support parent-child relationships. Returns true if \a column is within bounds; otherwise returns false. By default, inserted columns are empty. To fill them with data, reimplement data() and handle any inserted column separately: \snippet doc/src/snippets/sqldatabase/sqldatabase.cpp 23 \sa removeColumns() */ bool QSqlQueryModel::insertColumns(int column, int count, const QModelIndex &parent) { Q_D(QSqlQueryModel); if (count <= 0 || parent.isValid() || column < 0 || column > d->rec.count()) return false; beginInsertColumns(parent, column, column + count - 1); for (int c = 0; c < count; ++c) { QSqlField field; field.setReadOnly(true); field.setGenerated(false); d->rec.insert(column, field); if (d->colOffsets.size() < d->rec.count()) { int nVal = d->colOffsets.isEmpty() ? 0 : d->colOffsets[d->colOffsets.size() - 1]; d->colOffsets.append(nVal); Q_ASSERT(d->colOffsets.size() >= d->rec.count()); } for (int i = column + 1; i < d->colOffsets.count(); ++i) ++d->colOffsets[i]; } endInsertColumns(); return true; }