void EventsModel::updateServer(DVRServer *server) { if (!server && !(server = qobject_cast<DVRServer*>(sender()))) { ServerRequestManager *srm = qobject_cast<ServerRequestManager*>(sender()); if (srm) server = srm->server; else return; } if (!server->isOnline() || updatingServers.contains(server)) return; updatingServers.insert(server); if (updatingServers.size() == 1) emit loadingStarted(); EventsLoader *eventsLoader = new EventsLoader(server); eventsLoader->setLimit(serverEventsLimit); eventsLoader->setStartTime(m_filter.dateBegin); eventsLoader->setEndTime(m_filter.dateEnd); connect(eventsLoader, SIGNAL(eventsLoaded(bool,QList<EventData*>)), this, SLOT(eventsLoaded(bool,QList<EventData*>))); eventsLoader->loadEvents(); }
void EventsUpdater::updateServer(DVRServer *server) { if (!server->isOnline() || m_updatingServers.contains(server)) return; m_updatingServers.insert(server); if (m_updatingServers.size() == 1) emit loadingStarted(); EventsLoader *eventsLoader = new EventsLoader(server); connect(eventsLoader, SIGNAL(eventsLoaded(DVRServer*,bool,QList<QSharedPointer<EventData> >)), this, SLOT(eventsLoaded(DVRServer*,bool,QList<QSharedPointer<EventData> >))); eventsLoader->setLimit(m_limit); eventsLoader->setStartTime(m_startTime); eventsLoader->setEndTime(m_endTime); eventsLoader->loadEvents(); }
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(); }