diff options
author | Stephen Kelly <stephen.kelly@kdab.com> | 2011-12-30 12:00:09 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-01-24 15:27:25 +0100 |
commit | 4b8ceb41aed352f10d36db5284453f425dbc5f3f (patch) | |
tree | 6362bc3353107a7d35b7bb1cefb7f1751fe473fe /src/sql/drivers | |
parent | 6efefb3fe5c7c392bc4857d979dee51042a4f043 (diff) |
Store the is-a QObject fact with the metatype declaration.
This is a source incompatible change for Q_DECLARE_METATYPE(T*),
which now requires T to be fully defined.
The consequences of this are:
* Forward declared types can no longer be declared as a metatype.
(though this is a very uncommon thing to do).
There is a trivial workaround where necessary.
Change-Id: Id74c40088b8c0b466fcd7c55abd616f69acc82c8
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Diffstat (limited to 'src/sql/drivers')
-rw-r--r-- | src/sql/drivers/psql/qsql_psql.cpp | 11 | ||||
-rw-r--r-- | src/sql/drivers/sqlite/qsql_sqlite.cpp | 11 | ||||
-rw-r--r-- | src/sql/drivers/tds/qsql_tds.cpp | 12 |
3 files changed, 34 insertions, 0 deletions
diff --git a/src/sql/drivers/psql/qsql_psql.cpp b/src/sql/drivers/psql/qsql_psql.cpp index de18178514..ba9db5f51e 100644 --- a/src/sql/drivers/psql/qsql_psql.cpp +++ b/src/sql/drivers/psql/qsql_psql.cpp @@ -107,7 +107,18 @@ template <typename T> inline void PQfreemem(T *t, int = 0) { free(t); } +QT_BEGIN_NAMESPACE namespace QtPrivate { +template <> struct IsPointerToTypeDerivedFromQObject<PGconn*> { + enum { Value = false }; +}; +} QT_END_NAMESPACE Q_DECLARE_METATYPE(PGconn*) + +QT_BEGIN_NAMESPACE namespace QtPrivate { +template <> struct IsPointerToTypeDerivedFromQObject<PGresult*> { + enum { Value = false }; +}; +} QT_END_NAMESPACE Q_DECLARE_METATYPE(PGresult*) QT_BEGIN_NAMESPACE diff --git a/src/sql/drivers/sqlite/qsql_sqlite.cpp b/src/sql/drivers/sqlite/qsql_sqlite.cpp index eef9499dde..900e81f828 100644 --- a/src/sql/drivers/sqlite/qsql_sqlite.cpp +++ b/src/sql/drivers/sqlite/qsql_sqlite.cpp @@ -59,7 +59,18 @@ #include <sqlite3.h> +QT_BEGIN_NAMESPACE namespace QtPrivate { +template <> struct IsPointerToTypeDerivedFromQObject<sqlite3*> { + enum { Value = false }; +}; +} QT_END_NAMESPACE Q_DECLARE_METATYPE(sqlite3*) + +QT_BEGIN_NAMESPACE namespace QtPrivate { +template <> struct IsPointerToTypeDerivedFromQObject<sqlite3_stmt*> { + enum { Value = false }; +}; +} QT_END_NAMESPACE Q_DECLARE_METATYPE(sqlite3_stmt*) QT_BEGIN_NAMESPACE diff --git a/src/sql/drivers/tds/qsql_tds.cpp b/src/sql/drivers/tds/qsql_tds.cpp index 6a31574ae8..c7bb964f35 100644 --- a/src/sql/drivers/tds/qsql_tds.cpp +++ b/src/sql/drivers/tds/qsql_tds.cpp @@ -127,6 +127,18 @@ QT_BEGIN_NAMESPACE #define CS_PUBLIC #endif +namespace QtPrivate { +template <> struct IsPointerToTypeDerivedFromQObject<LOGINREC*> { + enum { Value = false }; +}; +} + +namespace QtPrivate { +template <> struct IsPointerToTypeDerivedFromQObject<DBPROCESS*> { + enum { Value = false }; +}; +} + QSqlError qMakeError(const QString& err, QSqlError::ErrorType type, int errNo = -1) { return QSqlError(QLatin1String("QTDS: ") + err, QString(), type, errNo); |