Index: kpluginfactory.h =================================================================== --- kpluginfactory.h (revision 705903) +++ kpluginfactory.h (working copy) @@ -30,6 +30,7 @@ #include class KPluginFactoryPrivate; +namespace KParts { class Part; } #define K_PLUGIN_FACTORY_DECLARATION_WITH_BASEFACTORY(name, baseFactory) \ class name : public baseFactory \ @@ -315,8 +316,15 @@ } template + static QObject *createPartInstance(QWidget *parentWidget, QObject *parent, const QVariantList &args) + { + return new impl(parentWidget, parent, args); + } + + template struct InheritanceChecker { + static CreateInstanceFunction createInstanceFunction(KParts::Part *) { return &createPartInstance; } static CreateInstanceFunction createInstanceFunction(QWidget *) { return &createInstance; } static CreateInstanceFunction createInstanceFunction(...) { return &createInstance; } };