| 45 | } |
| 46 | |
| 47 | std::vector<std::unique_ptr<BindingNode>> BindingAggregator::findDependenciesFor(BindingNode *node) |
| 48 | { |
| 49 | std::vector<std::unique_ptr<BindingNode>> allDependencies; |
| 50 | if (node->isPartOfBindingLoop()) |
| 51 | return allDependencies; |
| 52 | |
| 53 | for (const auto &provider : *s_providers()) { |
| 54 | auto providerDependencies = provider->findDependenciesFor(node); |
| 55 | for (auto &&providerDependency : providerDependencies) { |
| 56 | providerDependency->dependencies() = findDependenciesFor(providerDependency.get()); |
| 57 | allDependencies.push_back(std::move(providerDependency)); |
| 58 | } |
| 59 | } |
| 60 | std::sort( |
| 61 | allDependencies.begin(), |
| 62 | allDependencies.end(), |
| 63 | [](const std::unique_ptr<BindingNode> &a, const std::unique_ptr<BindingNode> &b) { |
| 64 | return a->object() < b->object() || (a->object() == b->object() && a->propertyIndex() < b->propertyIndex()); |
| 65 | }); |
| 66 | return allDependencies; |
| 67 | } |
| 68 | |
| 69 | std::vector<std::unique_ptr<BindingNode>> BindingAggregator::bindingTreeForObject(QObject *obj) |
| 70 | { |
nothing calls this directly
no test coverage detected