Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-52012

QQmlImportsPrivate forces all plugins to be created in Qml thread

    XMLWordPrintable

Details

    Description

      When statically linking Qt, class QQmlImportsPrivate instantiates all static plugins.

      This forces all plugins, i.e. also all user plugins, to be instantiated in Qml thread, what may cause problems (and does in our application).

      bool QQmlImportsPrivate::populatePluginPairVector(...)
      {
          static QVector<QStaticPlugin> plugins;
          if (plugins.isEmpty()) {
              // To avoid traversing all static plugins for all imports, we cut down
              // the list the first time called to only contain QML plugins:
              foreach (const QStaticPlugin &plugin, QPluginLoader::staticPlugins()) {
                  if (qobject_cast<QQmlExtensionPlugin *>(plugin.instance()))
                     plugins.append(plugin);
              }
          }
      ...
      

      Attachments

        Activity

          People

            shausman Simon Hausmann
            sebastianloesch Sebastian Lösch
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: