diff options
author | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2012-08-30 11:27:36 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-08-30 13:51:22 +0200 |
commit | 861786bb502570b12f5d50c0d48cb4ecbe6d0238 (patch) | |
tree | 6d1c46704a32b39f7a7f058c429ee788b5972131 | |
parent | 1cebd906af95e2c8ae37f1eae4a1c5019640b3b3 (diff) |
Fix static plugins for classes in namespaces.
Breakage introduced by 819d0203e6fd9d27dc4c22e8c3cb8b437998f62a .
Extend QT_MOC_EXPORT to take the unqualified class name
as well for the function names.
Change-Id: I736097b564caa37c522d723780663d03341f9032
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Lukas Geyer <lgeyer@gmx.at>
-rw-r--r-- | src/corelib/plugin/qplugin.h | 12 | ||||
-rw-r--r-- | src/tools/moc/generator.cpp | 3 |
2 files changed, 8 insertions, 7 deletions
diff --git a/src/corelib/plugin/qplugin.h b/src/corelib/plugin/qplugin.h index 634663b18c..c6b761cada 100644 --- a/src/corelib/plugin/qplugin.h +++ b/src/corelib/plugin/qplugin.h @@ -107,18 +107,18 @@ void Q_CORE_EXPORT qRegisterStaticPluginFunction(QStaticPlugin staticPlugin); #if defined(QT_STATICPLUGIN) -# define QT_MOC_EXPORT_PLUGIN(PLUGINCLASS) \ - static QT_PREPEND_NAMESPACE(QObject) *qt_plugin_instance_##PLUGINCLASS() \ +# define QT_MOC_EXPORT_PLUGIN(PLUGINCLASS, PLUGINCLASSNAME) \ + static QT_PREPEND_NAMESPACE(QObject) *qt_plugin_instance_##PLUGINCLASSNAME() \ Q_PLUGIN_INSTANCE(PLUGINCLASS) \ - static const char *qt_plugin_query_metadata_##PLUGINCLASS() { return (const char *)qt_pluginMetaData; } \ - const QT_PREPEND_NAMESPACE(QStaticPlugin) qt_static_plugin_##PLUGINCLASS() { \ - QT_PREPEND_NAMESPACE(QStaticPlugin) plugin = { qt_plugin_instance_##PLUGINCLASS, qt_plugin_query_metadata_##PLUGINCLASS}; \ + static const char *qt_plugin_query_metadata_##PLUGINCLASSNAME() { return (const char *)qt_pluginMetaData; } \ + const QT_PREPEND_NAMESPACE(QStaticPlugin) qt_static_plugin_##PLUGINCLASSNAME() { \ + QT_PREPEND_NAMESPACE(QStaticPlugin) plugin = { qt_plugin_instance_##PLUGINCLASSNAME, qt_plugin_query_metadata_##PLUGINCLASSNAME}; \ return plugin; \ } #else -# define QT_MOC_EXPORT_PLUGIN(PLUGINCLASS) \ +# define QT_MOC_EXPORT_PLUGIN(PLUGINCLASS, PLUGINCLASSNAME) \ Q_EXTERN_C Q_DECL_EXPORT \ const char *qt_plugin_query_metadata() \ { return (const char *)qt_pluginMetaData; } \ diff --git a/src/tools/moc/generator.cpp b/src/tools/moc/generator.cpp index ccc73c1d4d..6aaefc452d 100644 --- a/src/tools/moc/generator.cpp +++ b/src/tools/moc/generator.cpp @@ -1452,7 +1452,8 @@ void Generator::generatePluginMetaData() int pos = cdef->qualified.indexOf("::"); for ( ; pos != -1 ; pos = cdef->qualified.indexOf("::", pos + 2) ) fprintf(out, "using namespace %s;\n", cdef->qualified.left(pos).constData()); - fprintf(out, "QT_MOC_EXPORT_PLUGIN(%s)\n\n", cdef->qualified.constData()); + fprintf(out, "QT_MOC_EXPORT_PLUGIN(%s, %s)\n\n", + cdef->qualified.constData(), cdef->classname.constData()); } QT_END_NAMESPACE |