void EventsModel::eventsLoaded(bool ok, const QList<EventData *> &events) { EventsLoader *eventsLoader = qobject_cast<EventsLoader *>(sender()); Q_ASSERT(eventsLoader); DVRServer *server = eventsLoader->server(); if (!server) return; if (ok) { QList<EventData*> &cache = cachedEvents[server]; qDeleteAll(cache); cache = events; applyFilters(); } if (updatingServers.remove(server) && updatingServers.isEmpty()) emit loadingFinished(); }