summaryrefslogtreecommitdiffstats
path: root/src/sql
diff options
context:
space:
mode:
authorMark Brand <mabrand@mabrand.nl>2012-02-06 23:41:27 +0100
committerQt by Nokia <qt-info@nokia.com>2012-02-07 22:05:51 +0100
commit1247683d40c3fbb4b7ce50cc5361e2398b45875e (patch)
tree93bbcdb151be7d6b261432abd3db757311d3ff47 /src/sql
parent7e4232f10a9c3bace9bf9864fac16d186d23bce7 (diff)
QSqlTableModelPrivate: deduplicate field stripping logic
Change-Id: Ic969a192644e84d78558da0f19e588033e4af43d Reviewed-by: Yunqiao Yin <charles.yin@nokia.com>
Diffstat (limited to 'src/sql')
-rw-r--r--src/sql/models/qsqlrelationaltablemodel.cpp4
-rw-r--r--src/sql/models/qsqltablemodel.cpp7
-rw-r--r--src/sql/models/qsqltablemodel_p.h1
3 files changed, 8 insertions, 4 deletions
diff --git a/src/sql/models/qsqlrelationaltablemodel.cpp b/src/sql/models/qsqlrelationaltablemodel.cpp
index e12976ef24..3a8c12085f 100644
--- a/src/sql/models/qsqlrelationaltablemodel.cpp
+++ b/src/sql/models/qsqlrelationaltablemodel.cpp
@@ -299,9 +299,7 @@ void QSqlRelationalTableModelPrivate::revertCachedRow(int row)
int QSqlRelationalTableModelPrivate::nameToIndex(const QString &name) const
{
- QString fieldname = name;
- if (db.driver()->isIdentifierEscaped(fieldname, QSqlDriver::FieldName))
- fieldname = db.driver()->stripDelimiters(fieldname, QSqlDriver::FieldName);
+ QString fieldname = strippedFieldName(name);
int idx = baseRec.indexOf(fieldname);
if (idx == -1) {
// If the name is an alias we can find it here.
diff --git a/src/sql/models/qsqltablemodel.cpp b/src/sql/models/qsqltablemodel.cpp
index ff32533440..0d062e250f 100644
--- a/src/sql/models/qsqltablemodel.cpp
+++ b/src/sql/models/qsqltablemodel.cpp
@@ -68,10 +68,15 @@ QSqlRecord QSqlTableModelPrivate::record(const QVector<QVariant> &values) const
int QSqlTableModelPrivate::nameToIndex(const QString &name) const
{
+ return rec.indexOf(strippedFieldName(name));
+}
+
+QString QSqlTableModelPrivate::strippedFieldName(const QString &name) const
+{
QString fieldname = name;
if (db.driver()->isIdentifierEscaped(fieldname, QSqlDriver::FieldName))
fieldname = db.driver()->stripDelimiters(fieldname, QSqlDriver::FieldName);
- return rec.indexOf(fieldname);
+ return fieldname;
}
void QSqlTableModelPrivate::initRecordAndPrimaryIndex()
diff --git a/src/sql/models/qsqltablemodel_p.h b/src/sql/models/qsqltablemodel_p.h
index 56fd839a0c..15cbe8ef7a 100644
--- a/src/sql/models/qsqltablemodel_p.h
+++ b/src/sql/models/qsqltablemodel_p.h
@@ -77,6 +77,7 @@ public:
const QSqlRecord &rec, const QSqlRecord &whereValues);
virtual void revertCachedRow(int row);
virtual int nameToIndex(const QString &name) const;
+ QString strippedFieldName(const QString &name) const;
void initRecordAndPrimaryIndex();
QSqlDatabase db;