Static plugins don't break QFactoryLoader::keys()
authorLincoln Ramsay <lincoln.ramsay@nokia.com>
Fri, 17 Feb 2012 06:31:06 +0000 (16:31 +1000)
committerQt by Nokia <qt-info@nokia.com>
Fri, 17 Feb 2012 07:46:06 +0000 (08:46 +0100)
The = means that a single, static, compat plugin replaces the list of
keys (eg. from previously checked static plugins or from dynamic plugins).

Using += prevents this undesirable behaviour.

Change-Id: I3a40752c08dddbfe81444ca9c782b633e9742ab9
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
src/corelib/plugin/qfactoryloader.cpp

index ce988fa..2d31e1d 100644 (file)
@@ -244,7 +244,7 @@ QStringList QFactoryLoader::keys() const
             QObject *instance = staticPlugins.at(i).instance();
             QFactoryInterface *factory = qobject_cast<QFactoryInterface*>(instance);
             if (instance && factory && instance->qt_metacast(d->iid))
-                keys = factory->keys();
+                keys += factory->keys();
         }
     }
     return keys;