| 673 | } |
| 674 | |
| 675 | QStringList PluginController::unresolvedDependencies(const KPluginMetaData& info) const |
| 676 | { |
| 677 | Q_D(const PluginController); |
| 678 | |
| 679 | const auto requiredList = info.value(KEY_Required(), QStringList()); |
| 680 | QSet<QString> required(requiredList.begin(), requiredList.end()); |
| 681 | if (!required.isEmpty()) { |
| 682 | d->foreachEnabledPlugin([&required](const KPluginMetaData& plugin) -> bool { |
| 683 | const auto interfaces = plugin.value(KEY_Interfaces(), QStringList()); |
| 684 | for (const QString& iface : interfaces) { |
| 685 | required.remove(iface); |
| 686 | required.remove(iface + QLatin1Char('@') + plugin.pluginId()); |
| 687 | } |
| 688 | return !required.isEmpty(); |
| 689 | }); |
| 690 | } |
| 691 | // if we found all dependencies required should be empty now |
| 692 | return required.values(); |
| 693 | } |
| 694 | |
| 695 | void PluginController::loadOptionalDependencies( const KPluginMetaData& info ) |
| 696 | { |
nothing calls this directly
no test coverage detected