diff options
Diffstat (limited to 'src/sql/models')
-rw-r--r-- | src/sql/models/qsqlquerymodel.cpp | 14 | ||||
-rw-r--r-- | src/sql/models/qsqlrelationaltablemodel.cpp | 21 | ||||
-rw-r--r-- | src/sql/models/qsqltablemodel.cpp | 35 | ||||
-rw-r--r-- | src/sql/models/qsqltablemodel_p.h | 6 |
4 files changed, 24 insertions, 52 deletions
diff --git a/src/sql/models/qsqlquerymodel.cpp b/src/sql/models/qsqlquerymodel.cpp index 0a7470d5c8..1aae088c64 100644 --- a/src/sql/models/qsqlquerymodel.cpp +++ b/src/sql/models/qsqlquerymodel.cpp @@ -139,8 +139,6 @@ QSqlQueryModel::~QSqlQueryModel() } /*! - \since 4.1 - Fetches more rows from a database. This only affects databases that don't report back the size of a query (see QSqlDriver::hasFeature()). @@ -162,8 +160,6 @@ void QSqlQueryModel::fetchMore(const QModelIndex &parent) } /*! - \since 4.1 - Returns \c true if it is possible to read more rows from the database. This only affects databases that don't report back the size of a query (see QSqlDriver::hasFeature()). @@ -295,7 +291,6 @@ void QSqlQueryModel::endResetModel() } /*! \fn int QSqlQueryModel::rowCount(const QModelIndex &parent) const - \since 4.1 If the database supports returning the size of a query (see QSqlDriver::hasFeature()), the number of rows of the current @@ -388,8 +383,6 @@ void QSqlQueryModel::queryChange() /*! \deprecated [6.2] Use the \c{setQuery(QSqlQuery &&query)} overload instead. \overload - \since 4.5 - */ void QSqlQueryModel::setQuery(const QSqlQuery &query) { @@ -625,7 +618,7 @@ bool QSqlQueryModel::insertColumns(int column, int count, const QModelIndex &par d->colOffsets.append(nVal); Q_ASSERT(d->colOffsets.size() >= d->rec.count()); } - for (int i = column + 1; i < d->colOffsets.size(); ++i) + for (qsizetype i = column + 1; i < d->colOffsets.size(); ++i) ++d->colOffsets[i]; } endInsertColumns(); @@ -651,10 +644,9 @@ bool QSqlQueryModel::removeColumns(int column, int count, const QModelIndex &par beginRemoveColumns(parent, column, column + count - 1); - int i; - for (i = 0; i < count; ++i) + for (int i = 0; i < count; ++i) d->rec.remove(column); - for (i = column; i < d->colOffsets.size(); ++i) + for (qsizetype i = column; i < d->colOffsets.size(); ++i) d->colOffsets[i] -= count; endRemoveColumns(); diff --git a/src/sql/models/qsqlrelationaltablemodel.cpp b/src/sql/models/qsqlrelationaltablemodel.cpp index 88a08516a3..1218514778 100644 --- a/src/sql/models/qsqlrelationaltablemodel.cpp +++ b/src/sql/models/qsqlrelationaltablemodel.cpp @@ -21,7 +21,7 @@ QT_BEGIN_NAMESPACE using namespace Qt::StringLiterals; -class QSqlRelationalTableModelSql: public QSqlTableModelSql +class QSqlRelationalTableModelSql: public QSqlQueryModelSql { public: inline const static QString relTablePrefix(int i) { return QString::number(i).prepend("relTblAl_"_L1); } @@ -108,12 +108,12 @@ struct QRelation void populateModel(); - bool isDictionaryInitialized(); + bool isDictionaryInitialized() const; void populateDictionary(); void clearDictionary(); void clear(); - bool isValid(); + bool isValid() const; QSqlRelation rel; QRelatedTableModel *model; @@ -158,7 +158,7 @@ void QRelation::populateModel() } } -bool QRelation::isDictionaryInitialized() +bool QRelation::isDictionaryInitialized() const { return m_dictInitialized; } @@ -204,7 +204,7 @@ void QRelation::clear() clearDictionary(); } -bool QRelation::isValid() +bool QRelation::isValid() const { return (rel.isValid() && m_parent != nullptr); } @@ -253,10 +253,8 @@ public: void QSqlRelationalTableModelPrivate::clearChanges() { - for (int i = 0; i < relations.size(); ++i) { - QRelation &rel = relations[i]; + for (auto &rel : relations) rel.clear(); - } } void QSqlRelationalTableModelPrivate::revertCachedRow(int row) @@ -277,8 +275,8 @@ int QSqlRelationalTableModelPrivate::nameToIndex(const QString &name) const void QSqlRelationalTableModelPrivate::clearCache() { - for (int i = 0; i < relations.size(); ++i) - relations[i].clearDictionary(); + for (auto &rel : relations) + rel.clearDictionary(); QSqlTableModelPrivate::clearCache(); } @@ -559,6 +557,7 @@ QString QSqlRelationalTableModel::selectStatement() const QString alias = QString::fromLatin1("%1_%2_%3") .arg(relTableName, displayColumn, QString::number(fieldNames.value(fieldList[i]))); alias.truncate(d->db.driver()->maximumIdentifierLength(QSqlDriver::FieldName)); + alias = d->db.driver()->escapeIdentifier(alias, QSqlDriver::FieldName); displayTableField = SqlrTm::as(displayTableField, alias); --fieldNames[fieldList[i]]; } @@ -643,7 +642,6 @@ void QSqlRelationalTableModel::clear() \value LeftJoin - Left join mode, returns all rows from the left table (table_name1), even if there are no matches in the right table (table_name2). \sa QSqlRelationalTableModel::setJoinMode() - \since 4.8 */ /*! @@ -652,7 +650,6 @@ void QSqlRelationalTableModel::clear() LeftJoin mode if you want to show them. \sa QSqlRelationalTableModel::JoinMode - \since 4.8 */ void QSqlRelationalTableModel::setJoinMode( QSqlRelationalTableModel::JoinMode joinMode ) { diff --git a/src/sql/models/qsqltablemodel.cpp b/src/sql/models/qsqltablemodel.cpp index 989904c8a1..0d17194287 100644 --- a/src/sql/models/qsqltablemodel.cpp +++ b/src/sql/models/qsqltablemodel.cpp @@ -19,12 +19,7 @@ QT_BEGIN_NAMESPACE using namespace Qt::StringLiterals; -using SqlTm = QSqlTableModelSql; - -QSqlTableModelPrivate::~QSqlTableModelPrivate() -{ - -} +using SqlTm = QSqlQueryModelSql; /*! \internal Populates our record with values. @@ -143,11 +138,10 @@ bool QSqlTableModelPrivate::exec(const QString &stmt, bool prepStatement, return false; } } - int i; - for (i = 0; i < rec.count(); ++i) + for (int i = 0; i < rec.count(); ++i) if (rec.isGenerated(i)) editQuery.addBindValue(rec.value(i)); - for (i = 0; i < whereValues.count(); ++i) + for (int i = 0; i < whereValues.count(); ++i) if (whereValues.isGenerated(i) && !whereValues.isNull(i)) editQuery.addBindValue(whereValues.value(i)); @@ -205,7 +199,7 @@ bool QSqlTableModelPrivate::exec(const QString &stmt, bool prepStatement, want to resolve foreign keys. \sa QSqlRelationalTableModel, QSqlQuery, {Model/View Programming}, - {Table Model Example}, {Cached Table Example} + {Table Model Example}, {Cached SQL Table} */ /*! @@ -475,10 +469,8 @@ QVariant QSqlTableModel::headerData(int section, Qt::Orientation orientation, in bool QSqlTableModel::isDirty() const { Q_D(const QSqlTableModel); - QSqlTableModelPrivate::CacheMap::ConstIterator i = d->cache.constBegin(); - const QSqlTableModelPrivate::CacheMap::ConstIterator e = d->cache.constEnd(); - for (; i != e; ++i) { - if (!i.value().submitted()) + for (const auto &val : std::as_const(d->cache)) { + if (!val.submitted()) return true; } return false; @@ -1360,8 +1352,7 @@ bool QSqlTableModel::setRecord(int row, const QSqlRecord &values) return false; // Check field names and remember mapping - typedef QMap<int, int> Map; - Map map; + QMap<int, int> map; for (int i = 0; i < values.count(); ++i) { int idx = d->nameToIndex(values.fieldName(i)); if (idx == -1) @@ -1374,18 +1365,16 @@ bool QSqlTableModel::setRecord(int row, const QSqlRecord &values) mrow = QSqlTableModelPrivate::ModifiedRow(QSqlTableModelPrivate::Update, QSqlQueryModel::record(row)); - Map::const_iterator i = map.constBegin(); - const Map::const_iterator e = map.constEnd(); - for ( ; i != e; ++i) { + for (const auto i : map.asKeyValueRange()) { // have to use virtual setData() here rather than mrow.setValue() EditStrategy strategy = d->strategy; d->strategy = OnManualSubmit; - QModelIndex cIndex = createIndex(row, i.value()); - setData(cIndex, values.value(i.key())); + QModelIndex cIndex = createIndex(row, i.second); + setData(cIndex, values.value(i.first)); d->strategy = strategy; // setData() sets generated to TRUE, but source record should prevail. - if (!values.isGenerated(i.key())) - mrow.recRef().setGenerated(i.value(), false); + if (!values.isGenerated(i.first)) + mrow.recRef().setGenerated(i.second, false); } if (d->strategy != OnManualSubmit) diff --git a/src/sql/models/qsqltablemodel_p.h b/src/sql/models/qsqltablemodel_p.h index 9c6425ded4..864c977ebb 100644 --- a/src/sql/models/qsqltablemodel_p.h +++ b/src/sql/models/qsqltablemodel_p.h @@ -35,7 +35,6 @@ public: strategy(QSqlTableModel::OnRowChange), busyInsertingRows(false) {} - ~QSqlTableModelPrivate(); void clear(); virtual void clearCache(); @@ -154,11 +153,6 @@ public: CacheMap cache; }; -class QSqlTableModelSql: public QSqlQueryModelSql -{ -public: -}; - QT_END_NAMESPACE #endif // QSQLTABLEMODEL_P_H |