Fix static plugins not working if - or . is used in pluginId
Those characters can't be part of the generated C++ class, but are used in pluginIds. To avoid this, we only save the unmodified pluginId in the internal list/target property. The replacement to get a valid C++ class name is done only for the plugin factory, which fixes this edgecase and makes the intention more clear. While at it, the way we get the file path/pluginId for static plugins was revamped. The StaticPluginMap contains the namespace + pluginId already, meaning we could concatenate them at runtime. This has the benefit of not having this information duplicated with the custom moc-value. To ensure if both compiles and works at runtime, the autotest was extended.
Please register or sign in to comment