void ServerInfoStorage::HandleItems (const QXmppDiscoveryIq& iq) { for (const auto& item : iq.items ()) Conn_->GetDiscoManagerWrapper ()->RequestInfo (item.jid (), [this] (const QXmppDiscoveryIq& iq) { HandleItemInfo (iq); }, false, item.node ()); }
void ChatClient::_q_discoveryItemsReceived(const QXmppDiscoveryIq &disco) { // we only want results if (!d->discoQueue.removeAll(disco.id()) || disco.type() != QXmppIq::Result) return; if (disco.from() == configuration().domain() && disco.queryNode().isEmpty()) { // root items foreach (const QXmppDiscoveryIq::Item &item, disco.items()) { if (!item.jid().isEmpty() && item.node().isEmpty()) { // get info for item const QString id = d->discoManager->requestInfo(item.jid(), item.node()); if (!id.isEmpty()) d->discoQueue.append(id); } } }