Пример #1
0
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();
}
Пример #3
0
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();
}