diff options
Diffstat (limited to 'src/printsupport/kernel/qplatformprintplugin.cpp')
-rw-r--r-- | src/printsupport/kernel/qplatformprintplugin.cpp | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/src/printsupport/kernel/qplatformprintplugin.cpp b/src/printsupport/kernel/qplatformprintplugin.cpp index ec068d87d1..854d8810cc 100644 --- a/src/printsupport/kernel/qplatformprintplugin.cpp +++ b/src/printsupport/kernel/qplatformprintplugin.cpp @@ -70,13 +70,9 @@ QPlatformPrinterSupport *QPlatformPrinterSupportPlugin::get() { static QPlatformPrinterSupport *singleton = 0; if (!singleton) { - QStringList k = loader()->keys(); - if (k.isEmpty()) - return 0; - QPlatformPrinterSupportPlugin *plugin = qobject_cast<QPlatformPrinterSupportPlugin *>(loader()->instance(k.first())); - if (!plugin) - return 0; - singleton = plugin->create(k.first()); + const QMultiMap<int, QString> keyMap = loader()->keyMap(); + if (!keyMap.isEmpty()) + singleton = qLoadPlugin<QPlatformPrinterSupport, QPlatformPrinterSupportPlugin>(loader(), keyMap.constBegin().value()); } return singleton; } |