34void QQmlCompositeFilterBase::update(
const QQmlSortFilterProxyModel *proxyModel)
36 Q_D(QQmlCompositeFilterBase);
37 auto *sfpm =
const_cast<QQmlSortFilterProxyModel *>(proxyModel);
39 if (d->m_sfpmModel != sfpm) {
41 disconnect(d->m_sfpmModel, &QQmlSortFilterProxyModel::modelReset,
42 this, &QQmlFilterCompositor::updateFilters);
43 for (
auto &filter: d->m_filters)
44 disconnect(filter, &QQmlFilterBase::invalidateModel,
45 d->m_sfpmModel, &QQmlSortFilterProxyModel::invalidate);
48 d->m_sfpmModel = sfpm;
51 connect(d->m_sfpmModel, &QQmlSortFilterProxyModel::modelReset,
52 this, &QQmlFilterCompositor::updateFilters);
53 for (
auto &filter: d->m_filters)
54 connect(filter, &QQmlFilterBase::invalidateModel,
55 d->m_sfpmModel, &QQmlSortFilterProxyModel::invalidate);
68void QQmlCompositeFilterBase::refreshCache()
70 Q_D(QQmlFilterCompositor);
71 const auto prevCount = d->m_effectiveFilters.count();
72 QQmlFilterCompositor::refreshCache();
73 if (d->m_effectiveFilters.count() != prevCount)
74 emit invalidateCache(
this);